Class: NRSER::Types::ArrayOfType
- Defined in:
- lib/nrser/types/array.rb
Overview
Constant Summary
Constants inherited from ArrayType
NRSER::Types::ArrayType::DEFAULT_SPLIT_WITH
Instance Attribute Summary collapse
-
#item_type ⇒ NRSER::Types::Type
readonly
Type that all items must satisfy for an array to be a member of this type.
Attributes inherited from IsA
Instance Method Summary collapse
- #==(other) ⇒ Object
-
#default_name ⇒ Object
Instance Methods ======================================================================.
-
#has_from_s? ⇒ Boolean
ArrayOfType can convert values from strings if it’s #item_type can convert values from strings.
-
#initialize(item_type, **options) ⇒ ArrayOfType
constructor
Instantiate a new ‘ArrayOfType`.
- #items_from_strings(items) ⇒ Object
- #test(value) ⇒ Object
Methods inherited from ArrayType
Methods inherited from IsA
Methods inherited from Type
#check, #from_data, #from_s, #has_from_data?, #has_to_data?, #name, #respond_to?, short_name, #to_data, #to_s
Constructor Details
#initialize(item_type, **options) ⇒ ArrayOfType
Instantiate a new ‘ArrayOfType`.
129 130 131 132 |
# File 'lib/nrser/types/array.rb', line 129 def initialize item_type, ** super ** @item_type = NRSER::Types.make item_type end |
Instance Attribute Details
#item_type ⇒ NRSER::Types::Type (readonly)
Type that all items must satisfy for an array to be a member of this type.
122 123 124 |
# File 'lib/nrser/types/array.rb', line 122 def item_type @item_type end |
Instance Method Details
#==(other) ⇒ Object
I’m not even sure why this is implemented… was it used somewhere?
It doesn’t seems too well thought out… seems like the reality of comparing types is much more complicated?
174 175 176 177 178 |
# File 'lib/nrser/types/array.rb', line 174 def == other equal?(other) || ( other.class == self.class && @item_type == other.item_type ) end |
#default_name ⇒ Object
Instance Methods
138 139 140 |
# File 'lib/nrser/types/array.rb', line 138 def default_name "#{ super() }<#{ @item_type }>" end |
#has_from_s? ⇒ Boolean
NRSER::Types::ArrayOfType can convert values from strings if it’s #item_type can convert values from strings.
158 159 160 |
# File 'lib/nrser/types/array.rb', line 158 def has_from_s? @item_type.has_from_s? end |
#items_from_strings(items) ⇒ Object
163 164 165 |
# File 'lib/nrser/types/array.rb', line 163 def items_from_strings items items.map &@item_type.method( :from_s ) end |
#test(value) ⇒ Object
143 144 145 146 147 148 149 150 |
# File 'lib/nrser/types/array.rb', line 143 def test value # Check the super method first, which will test if `value` is an Array # instance, and return `false` if it's not. return false unless super( value ) # Otherwise test all the items value.all? &@item_type.method( :test ) end |