class Enumerize::Set
Attributes
values[R]
Public Class Methods
new(obj, attr, values)
click to toggle source
# File lib/enumerize/set.rb, line 10 def initialize(obj, attr, values) @obj = obj @attr = attr @values = [] if values.respond_to?(:each) values.each do |input| value = @attr.find_value(input) if value && !@values.include?(value) @values << value end end end end
Public Instance Methods
<<(value)
click to toggle source
# File lib/enumerize/set.rb, line 26 def <<(value) @values << value mutate! end
Also aliased as: push
==(other)
click to toggle source
# File lib/enumerize/set.rb, line 41 def ==(other) other.size == size && other.all? { |v| @values.include?(@attr.find_value(v)) } end
Also aliased as: eql?
delete(value)
click to toggle source
# File lib/enumerize/set.rb, line 51 def delete(value) @values.delete(@attr.find_value(value)) mutate! end
encode_with(coder)
click to toggle source
# File lib/enumerize/set.rb, line 60 def encode_with(coder) coder.represent_object(Array, @values) end
include?(value)
click to toggle source
# File lib/enumerize/set.rb, line 47 def include?(value) @values.include?(@attr.find_value(value)) end
inspect()
click to toggle source
# File lib/enumerize/set.rb, line 56 def inspect "#<Enumerize::Set {#{join(', ')}}>" end
to_ary()
click to toggle source
# File lib/enumerize/set.rb, line 35 def to_ary @values.to_a end
Private Instance Methods
mutate!()
click to toggle source
# File lib/enumerize/set.rb, line 70 def mutate! @values = @obj.public_send("#{@attr.name}=", @values).values end
predicate_call(value)
click to toggle source
# File lib/enumerize/set.rb, line 66 def predicate_call(value) include?(value) end