Class: ExternalId::Value
- Inherits:
-
Object
- Object
- ExternalId::Value
- Includes:
- ActiveModel::Attributes, ActiveModel::Model
- Defined in:
- lib/external_id/models/value.rb
Overview
ID Value value object
Instance Attribute Summary collapse
-
#id ⇒ Object
Returns the value of attribute id.
-
#provider ⇒ Object
Returns the value of attribute provider.
Class Method Summary collapse
- .blank ⇒ Object
-
.from_array(array) ⇒ Object
Create from array format [provider, id].
-
.from_model(external_id_model) ⇒ Object
Create from ExternalId model.
Instance Method Summary collapse
- #==(other) ⇒ Object
- #blank? ⇒ Boolean
-
#initialize(provider: nil, id: nil) ⇒ Value
constructor
A new instance of Value.
- #present? ⇒ Boolean
- #to_a ⇒ Object
- #to_hash ⇒ Object (also: #attributes)
- #to_s ⇒ Object
Constructor Details
#initialize(provider: nil, id: nil) ⇒ Value
Returns a new instance of Value.
37 38 39 40 |
# File 'lib/external_id/models/value.rb', line 37 def initialize(provider: nil, id: nil) @provider = provider.present? ? provider.to_s : provider @id = id.present? ? id.to_s : id end |
Instance Attribute Details
#id ⇒ Object
Returns the value of attribute id.
9 10 11 |
# File 'lib/external_id/models/value.rb', line 9 def id @id end |
#provider ⇒ Object
Returns the value of attribute provider.
9 10 11 |
# File 'lib/external_id/models/value.rb', line 9 def provider @provider end |
Class Method Details
.blank ⇒ Object
14 15 16 |
# File 'lib/external_id/models/value.rb', line 14 def self.blank new end |
.from_array(array) ⇒ Object
Create from array format [provider, id]
29 30 31 32 33 34 35 |
# File 'lib/external_id/models/value.rb', line 29 def self.from_array(array) return blank if array.blank? || !array.is_a?(Array) || array.size != 2 provider, id = array new(provider: provider, id: id) end |
.from_model(external_id_model) ⇒ Object
Create from ExternalId model
19 20 21 22 23 24 25 26 |
# File 'lib/external_id/models/value.rb', line 19 def self.from_model(external_id_model) return blank if external_id_model.blank? new( provider: external_id_model.provider, id: external_id_model.external_id ) end |
Instance Method Details
#==(other) ⇒ Object
50 51 52 53 54 |
# File 'lib/external_id/models/value.rb', line 50 def ==(other) return false unless other.is_a?(::ExternalId::Value) provider == other.provider && id == other.id end |
#blank? ⇒ Boolean
46 47 48 |
# File 'lib/external_id/models/value.rb', line 46 def blank? !present? end |
#present? ⇒ Boolean
42 43 44 |
# File 'lib/external_id/models/value.rb', line 42 def present? provider.present? && id.present? end |
#to_a ⇒ Object
74 75 76 77 78 |
# File 'lib/external_id/models/value.rb', line 74 def to_a return [] if blank? [provider, id] end |
#to_hash ⇒ Object Also known as: attributes
62 63 64 65 66 67 68 69 |
# File 'lib/external_id/models/value.rb', line 62 def to_hash return {} if blank? { provider: provider, id: id } end |
#to_s ⇒ Object
56 57 58 59 60 |
# File 'lib/external_id/models/value.rb', line 56 def to_s return '' if blank? "#{provider}:#{id}" end |