Class: Kennel::Models::Record
Constant Summary collapse
- LOCK =
"\u{1F512}"
- READONLY_ATTRIBUTES =
[ :deleted, :id, :created, :created_at, :creator, :org_id, :modified, :modified_at, :api_resource ].freeze
- API_LIST_INCOMPLETE =
false
Constants inherited from Base
Base::SETTING_OVERRIDABLE_METHODS
Constants included from SettingsAsMethods
SettingsAsMethods::SETTING_OVERRIDABLE_METHODS
Instance Attribute Summary collapse
-
#project ⇒ Object
readonly
Returns the value of attribute project.
Class Method Summary collapse
Instance Method Summary collapse
- #diff(actual) ⇒ Object
-
#initialize(project, *args) ⇒ Record
constructor
A new instance of Record.
- #resolve_linked_tracking_ids ⇒ Object
- #tracking_id ⇒ Object
Methods inherited from Base
Methods included from SubclassTracking
#recursive_subclasses, #subclasses
Methods included from SettingsAsMethods
Constructor Details
#initialize(project, *args) ⇒ Record
Returns a new instance of Record.
41 42 43 44 45 |
# File 'lib/kennel/models/record.rb', line 41 def initialize(project, *args) raise ArgumentError, "First argument must be a project, not #{project.class}" unless project.is_a?(Project) @project = project super(*args) end |
Instance Attribute Details
#project ⇒ Object (readonly)
Returns the value of attribute project.
39 40 41 |
# File 'lib/kennel/models/record.rb', line 39 def project @project end |
Class Method Details
.parse_any_url(url) ⇒ Object
14 15 16 17 18 19 20 |
# File 'lib/kennel/models/record.rb', line 14 def parse_any_url(url) subclasses.detect do |s| if id = s.parse_url(url) break s.api_resource, id end end end |
Instance Method Details
#diff(actual) ⇒ Object
47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/kennel/models/record.rb', line 47 def diff(actual) expected = as_json expected.delete(:id) self.class.send(:normalize, expected, actual) # strict: ignore Integer vs Float # similarity: show diff when not 100% similar # use_lcs: saner output Hashdiff.diff(actual, expected, use_lcs: false, strict: false, similarity: 1) end |
#resolve_linked_tracking_ids ⇒ Object
63 64 |
# File 'lib/kennel/models/record.rb', line 63 def resolve_linked_tracking_ids(*) end |
#tracking_id ⇒ Object
59 60 61 |
# File 'lib/kennel/models/record.rb', line 59 def tracking_id "#{project.kennel_id}:#{kennel_id}" end |