Class: ActiveRemote::AttributeDefinition
- Inherits:
-
Object
- Object
- ActiveRemote::AttributeDefinition
- Includes:
- Comparable
- Defined in:
- lib/active_remote/attribute_definition.rb
Overview
Represents an attribute for reflection
Instance Attribute Summary collapse
-
#name ⇒ Object
readonly
The attribute name.
Instance Method Summary collapse
-
#<=>(other) ⇒ -1, ...
Compare attribute definitions.
-
#[](key) ⇒ Object
Read an attribute option.
- #from_rpc(value) ⇒ Object
- #from_user(value) ⇒ Object
-
#initialize(name, type = :value, **options) ⇒ ActiveAttr::AttributeDefinition
constructor
Creates a new AttributeDefinition.
-
#inspect ⇒ String
Returns the code that would generate the attribute definition.
-
#to_s ⇒ String
The attribute name.
-
#to_sym ⇒ Symbol
The attribute name.
Constructor Details
#initialize(name, type = :value, **options) ⇒ ActiveAttr::AttributeDefinition
Creates a new AttributeDefinition
59 60 61 62 63 64 65 |
# File 'lib/active_remote/attribute_definition.rb', line 59 def initialize(name, type = :value, **) raise TypeError, "can't convert #{name.class} into Symbol" unless name.respond_to? :to_sym @name = name.to_sym @type = ::ActiveModel::Type.lookup(type) @options = end |
Instance Attribute Details
#name ⇒ Object (readonly)
The attribute name
15 16 17 |
# File 'lib/active_remote/attribute_definition.rb', line 15 def name @name end |
Instance Method Details
#<=>(other) ⇒ -1, ...
Compare attribute definitions
28 29 30 31 32 33 |
# File 'lib/active_remote/attribute_definition.rb', line 28 def <=>(other) return nil unless other.instance_of? self.class return nil if name == other.name && != other. self.name.to_s <=> other.name.to_s end |
#[](key) ⇒ Object
Read an attribute option
43 44 45 |
# File 'lib/active_remote/attribute_definition.rb', line 43 def [](key) @options[key] end |
#from_rpc(value) ⇒ Object
67 68 69 |
# File 'lib/active_remote/attribute_definition.rb', line 67 def from_rpc(value) type.deserialize(value) end |
#from_user(value) ⇒ Object
71 72 73 |
# File 'lib/active_remote/attribute_definition.rb', line 71 def from_user(value) type.cast(value) end |
#inspect ⇒ String
Returns the code that would generate the attribute definition
84 85 86 87 88 |
# File 'lib/active_remote/attribute_definition.rb', line 84 def inspect = .map { |key, value| "#{key.inspect} => #{value.inspect}" }.sort.join(", ") = ", #{}" unless .empty? "attribute :#{name}#{}" end |
#to_s ⇒ String
The attribute name
95 |
# File 'lib/active_remote/attribute_definition.rb', line 95 delegate :to_s, :to => :name |
#to_sym ⇒ Symbol
The attribute name
102 103 104 |
# File 'lib/active_remote/attribute_definition.rb', line 102 def to_sym name end |