Class: DataMapper::Support::TypedSet
- Includes:
- Enumerable
- Defined in:
- lib/data_mapper/support/typed_set.rb
Instance Method Summary collapse
- #+(other) ⇒ Object
- #<<(item) ⇒ Object
- #clear ⇒ Object
- #concat(values) ⇒ Object
- #delete?(item) ⇒ Boolean
- #each ⇒ Object
- #empty? ⇒ Boolean (also: #blank?)
-
#initialize(*types) ⇒ TypedSet
constructor
A new instance of TypedSet.
- #inspect ⇒ Object
- #size ⇒ Object (also: #length)
Constructor Details
#initialize(*types) ⇒ TypedSet
Returns a new instance of TypedSet.
9 10 11 12 |
# File 'lib/data_mapper/support/typed_set.rb', line 9 def initialize(*types) @types = types @set = SortedSet.new end |
Instance Method Details
#+(other) ⇒ Object
51 52 53 54 55 56 |
# File 'lib/data_mapper/support/typed_set.rb', line 51 def +(other) x = self.class.new(*@types) each { |entry| x << entry } other.each { |entry| x << entry } unless other.blank? return x end |
#<<(item) ⇒ Object
14 15 16 17 18 |
# File 'lib/data_mapper/support/typed_set.rb', line 14 def <<(item) raise ArgumentError.new("#{item.inspect} must be a kind of: #{@types.inspect}") unless @types.any? { |type| type === item } @set << item return self end |
#clear ⇒ Object
47 48 49 |
# File 'lib/data_mapper/support/typed_set.rb', line 47 def clear @set.clear end |
#concat(values) ⇒ Object
20 21 22 23 |
# File 'lib/data_mapper/support/typed_set.rb', line 20 def concat(values) [*values].each { |item| self << item } self end |
#delete?(item) ⇒ Boolean
33 34 35 |
# File 'lib/data_mapper/support/typed_set.rb', line 33 def delete?(item) @set.delete?(item) end |
#each ⇒ Object
29 30 31 |
# File 'lib/data_mapper/support/typed_set.rb', line 29 def each @set.each { |item| yield(item) } end |
#empty? ⇒ Boolean Also known as: blank?
42 43 44 |
# File 'lib/data_mapper/support/typed_set.rb', line 42 def empty? @set.empty? end |
#inspect ⇒ Object
25 26 27 |
# File 'lib/data_mapper/support/typed_set.rb', line 25 def inspect "#<DataMapper::Support::TypedSet#{@types.inspect}: {#{entries.inspect[1...-1]}}>" end |
#size ⇒ Object Also known as: length
37 38 39 |
# File 'lib/data_mapper/support/typed_set.rb', line 37 def size @set.size end |