Module: Sequel::Plugins::ActiveModel::InstanceMethods

Defined in:
lib/sequel/plugins/active_model.rb

Constant Summary collapse

DEFAULT_TO_PARAM_JOINER =

The default string to join composite primary keys with in to_param.

'-'.freeze

Instance Method Summary collapse

Instance Method Details

#after_destroyObject

Record that an object was destroyed, for later use by destroyed?



42
43
44
45
# File 'lib/sequel/plugins/active_model.rb', line 42

def after_destroy
  super
  @destroyed = true
end

#before_createObject

Mark current instance as destroyed if the transaction in which this instance is created is rolled back.



49
50
51
52
# File 'lib/sequel/plugins/active_model.rb', line 49

def before_create
  db.after_rollback{@destroyed = true}
  super
end

#model_nameObject

Return ::ActiveModel::Name instance for the class.



55
56
57
# File 'lib/sequel/plugins/active_model.rb', line 55

def model_name
  model.model_name
end

#persisted?Boolean

False if the object is new? or has been destroyed, true otherwise.

Returns:

  • (Boolean)


60
61
62
# File 'lib/sequel/plugins/active_model.rb', line 60

def persisted?
  !new? && @destroyed != true
end

#to_keyObject

An array of primary key values, or nil if the object is not persisted.



65
66
67
68
69
70
71
# File 'lib/sequel/plugins/active_model.rb', line 65

def to_key
  if primary_key.is_a?(Symbol)
    [pk] if pk
  else
    pk if pk.all?
  end
end

#to_modelObject

With the ActiveModel plugin, Sequel model objects are already compliant, so this returns self.



75
76
77
# File 'lib/sequel/plugins/active_model.rb', line 75

def to_model
  self
end

#to_paramObject

An string representing the object’s primary key. For composite primary keys, joins them with to_param_joiner.



81
82
83
84
85
# File 'lib/sequel/plugins/active_model.rb', line 81

def to_param
  if persisted? and k = to_key
    k.join(to_param_joiner)
  end
end

#to_partial_pathObject

Returns a string identifying the path associated with the object.



88
89
90
# File 'lib/sequel/plugins/active_model.rb', line 88

def to_partial_path
  model._to_partial_path
end