Collection of class methods that get defined on an including class via Hoodoo::ActiveRecord::Creator.included.

Methods
N
Instance Public methods
new_in( context, attributes = nil, &block )

Create an instance of this model with knowledge of the wider request context. This may lead to important things like support of inbound “dated_from” values, depending upon the Hoodoo mixins included (or not) by this class - see Hoodoo::ActiveRecord::Dated.

You use this exactly as you would for ActiveRecord::Core#new, but an additional, mandatory first parameter providing the request context must be supplied. For example, instead of this:

instance = SomeActiveRecordSubclass.new( attrs )

…do this inside a resource implementation:

instance = SomeActiveRecordSubclass.new_in( context, attrs )

See also:

Parameters:

context

Hoodoo::Services::Context instance describing a call context. This is typically a value passed to one of the Hoodoo::Services::Implementation instance methods that a resource subclass implements.

attributes

Optional model attributes Hash, passed through to ActiveRecord::Core#new.

&block

Optional block for initialisation, passed through to ActiveRecord::Core#new.

Returns a new model instance which may have context-derived values set for some attributes, in addition to anything set through the attributes or &block parameters, if present.

Note that context-dependent data is set AFTER attribute or block based values, so takes precedence over anything you might set up using those parameters.

# File lib/hoodoo/active/active_record/creator.rb, line 114
def new_in( context, attributes = nil, &block )

  instance = self.new( attributes, &block )

  # TODO: Refactor this to use the scope chain plugin approach in due
  #       course, but for now, pragmatic implementation does the only
  #       things we currently require - set "created_at"/"updated_at".
  #
  unless context.request.dated_from.nil?
    instance.created_at = instance.updated_at = context.request.dated_from
  end

  return instance
end