Class: TestingRecord::Model
- Inherits:
-
Object
- Object
- TestingRecord::Model
- Extended by:
- DSL::Builder::Filters, DSL::Builder::Helpers, DSL::Builder::Settings
- Defined in:
- lib/testing_record/model.rb
Overview
The top level Model. Most of the behaviours specified here are fairly rudimentary ones that will then include other behaviour(s), from the included modules
Class Attribute Summary collapse
-
.current ⇒ Object
Returns the value of attribute current.
Instance Attribute Summary collapse
-
#attributes ⇒ Object
readonly
Returns the value of attribute attributes.
Class Method Summary collapse
-
.create(attributes) ⇒ TestingRecord::Model
Creates an instance of the model -> Ensures that the primary key is specified in the attribute payload -> Validates that a duplicate entity has not been made (If caching is enabled) -> Creates iVar values (Symbol format) and attr_reader’s for each attribute that was provided -> Adds helper methods (If the model has been configured to include helpers) -> Adds it to the cache (If caching is enabled).
-
.delete(entity) ⇒ TestingRecord::Model?
Deletes the instance of the model from the cache (Does nothing if caching is disabled).
-
.delete_by_id(id) ⇒ TestingRecord::Model?
Deletes the instance of the model from the cache (Does nothing if caching is disabled).
Instance Method Summary collapse
-
#initialize(attributes = {}) ⇒ Model
constructor
A new instance of Model.
-
#inspect ⇒ String
View the entity in question in a readable format.
-
#to_s ⇒ String
Functionally equivalent to ‘inspect`.
-
#update(attrs) ⇒ TestingRecord::Model
Updates an entity (instance), of a model -> Updating iVar values for each attribute that was provided (Converting to symbolized format) -> It will not create new reader methods for new variables added.
Methods included from DSL::Builder::Filters
exists?, with_email, with_id, with_id?, with_primary_key, with_primary_key?
Methods included from DSL::Builder::Helpers
Methods included from DSL::Builder::Settings
__primary_key, caching, primary_key
Methods included from DSL::Validation::Input
Constructor Details
#initialize(attributes = {}) ⇒ Model
Returns a new instance of Model.
112 113 114 |
# File 'lib/testing_record/model.rb', line 112 def initialize(attributes = {}) @attributes = attributes end |
Class Attribute Details
.current ⇒ Object
Returns the value of attribute current.
17 18 19 |
# File 'lib/testing_record/model.rb', line 17 def current @current end |
Instance Attribute Details
#attributes ⇒ Object (readonly)
Returns the value of attribute attributes.
14 15 16 |
# File 'lib/testing_record/model.rb', line 14 def attributes @attributes end |
Class Method Details
.create(attributes) ⇒ TestingRecord::Model
Creates an instance of the model
-> Ensures that the primary key is specified in the attribute payload
-> Validates that a duplicate entity has not been made (If caching is enabled)
-> Creates iVar values (Symbol format) and attr_reader's for each attribute that was provided
-> Adds helper methods (If the model has been configured to include helpers)
-> Adds it to the cache (If caching is enabled)
27 28 29 30 31 32 33 |
# File 'lib/testing_record/model.rb', line 27 def create(attributes) if respond_to?(:all) create_with_caching(attributes) else create_without_caching(attributes) end end |
.delete(entity) ⇒ TestingRecord::Model?
Deletes the instance of the model from the cache (Does nothing if caching is disabled)
50 51 52 53 54 55 |
# File 'lib/testing_record/model.rb', line 50 def delete(entity) return unless respond_to?(:all) self.current = nil if entity == current all.delete(entity) end |
.delete_by_id(id) ⇒ TestingRecord::Model?
Deletes the instance of the model from the cache (Does nothing if caching is disabled)
60 61 62 |
# File 'lib/testing_record/model.rb', line 60 def delete_by_id(id) delete(with_id(id)) if respond_to?(:all) end |
Instance Method Details
#inspect ⇒ String
View the entity in question in a readable format. Displays all iVars and their values (Primary Key first if set)
119 120 121 122 |
# File 'lib/testing_record/model.rb', line 119 def inspect reorder_attributes_for_inspect! "#<#{self.class.name} #{attributes.map { |k, v| "@#{k}=#{v.inspect}" }.join(', ')}>" end |
#to_s ⇒ String
Functionally equivalent to ‘inspect`
127 128 129 |
# File 'lib/testing_record/model.rb', line 127 def to_s inspect end |
#update(attrs) ⇒ TestingRecord::Model
Updates an entity (instance), of a model
-> Updating iVar values for each attribute that was provided (Converting to symbolized format)
-> It will **not** create new reader methods for new variables added
136 137 138 139 140 141 142 143 |
# File 'lib/testing_record/model.rb', line 136 def update(attrs) attrs.transform_keys(&:to_sym).each do |key, value| attributes[key] = value instance_variable_set("@#{key}", value) TestingRecord.logger.info("Updated '#{key}' on the #{self.class} entity to be '#{value}'") end self end |