Class: CellSet::Position
- Inherits:
-
Object
show all
- Includes:
- ActiveModel::Serializers::JSON, ActiveModel::Serializers::Xml, Attributes, Comparable
- Defined in:
- lib/cell_set/position.rb
Constant Summary
collapse
- ATTRIBUTES =
[:members, :ordinal]
Instance Method Summary
collapse
Methods included from Attributes
#attributes, #attributes=, #clear_attribute, #has_attribute?, #read_attribute_for_validation
Constructor Details
Returns a new instance of Position.
29
30
31
32
|
# File 'lib/cell_set/position.rb', line 29
def initialize(*)
@members = []
super
end
|
Instance Method Details
#<=>(other) ⇒ Object
13
14
15
16
17
18
19
|
# File 'lib/cell_set/position.rb', line 13
def <=>(other)
if other.is_a?(self.class)
@ordinal <=> other.ordinal
else
nil
end
end
|
#between?(min, max) ⇒ Boolean
21
22
23
|
# File 'lib/cell_set/position.rb', line 21
def between?(min, max)
@ordinal <= min || @ordinal >= max
end
|
#from_json ⇒ Object
25
26
27
|
# File 'lib/cell_set/position.rb', line 25
def from_json(*)
super.tap{|obj| obj.freeze}
end
|
#members=(members) ⇒ Object
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
# File 'lib/cell_set/position.rb', line 34
def members=(members)
if members.is_a?(Array)
@members = members.map do |member|
if member.is_a?(Member)
member
elsif member.is_a?(Hash)
Member.new(member)
else
raise ArgumentError
end
end
else
raise ArgumentError
end
end
|
#ordinal=(ordinal) ⇒ Object
50
51
52
53
54
55
56
57
58
|
# File 'lib/cell_set/position.rb', line 50
def ordinal=(ordinal)
@ordinal = if ordinal.is_a?(Fixnum)
ordinal
elsif ordinal.is_a?(String)
Integer(ordinal)
else
raise ArgumentError
end
end
|