openhab-scripting 4.1.4 → 4.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/openhab/core/entity_lookup.rb +1 -57
- data/lib/openhab/dsl/dsl.rb +6 -12
- data/lib/openhab/dsl/group.rb +1 -5
- data/lib/openhab/dsl/items/comparable_item.rb +49 -0
- data/lib/openhab/dsl/items/contact_item.rb +41 -0
- data/lib/openhab/dsl/items/date_time_item.rb +64 -0
- data/lib/openhab/dsl/items/dimmer_item.rb +59 -0
- data/lib/openhab/dsl/items/generic_item.rb +197 -0
- data/lib/openhab/dsl/items/group_item.rb +56 -92
- data/lib/openhab/dsl/items/image_item.rb +5 -41
- data/lib/openhab/dsl/items/item_registry.rb +49 -0
- data/lib/openhab/dsl/items/items.rb +71 -35
- data/lib/openhab/dsl/items/metadata.rb +325 -0
- data/lib/openhab/dsl/items/number_item.rb +6 -312
- data/lib/openhab/dsl/items/numeric_item.rb +66 -0
- data/lib/openhab/dsl/items/persistence.rb +122 -0
- data/lib/openhab/dsl/items/player_item.rb +49 -40
- data/lib/openhab/dsl/items/rollershutter_item.rb +25 -77
- data/lib/openhab/dsl/items/string_item.rb +16 -58
- data/lib/openhab/dsl/items/switch_item.rb +62 -0
- data/lib/openhab/dsl/lazy_array.rb +8 -6
- data/lib/openhab/dsl/monkey_patch/events/events.rb +2 -2
- data/lib/openhab/dsl/monkey_patch/events/item_command.rb +67 -24
- data/lib/openhab/dsl/monkey_patch/events/item_event.rb +5 -5
- data/lib/openhab/dsl/monkey_patch/events/item_state.rb +10 -11
- data/lib/openhab/dsl/monkey_patch/events/item_state_changed.rb +10 -11
- data/lib/openhab/dsl/monkey_patch/ruby/number.rb +25 -2
- data/lib/openhab/dsl/monkey_patch/ruby/ruby.rb +0 -3
- data/lib/openhab/dsl/monkey_patch/ruby/string.rb +24 -24
- data/lib/openhab/dsl/states.rb +1 -1
- data/lib/openhab/dsl/time_of_day.rb +3 -5
- data/lib/openhab/dsl/types/comparable_type.rb +21 -0
- data/lib/openhab/dsl/types/date_time_type.rb +334 -0
- data/lib/openhab/dsl/types/decimal_type.rb +187 -0
- data/lib/openhab/dsl/types/increase_decrease_type.rb +23 -0
- data/lib/openhab/dsl/types/next_previous_type.rb +23 -0
- data/lib/openhab/dsl/types/numeric_type.rb +39 -0
- data/lib/openhab/dsl/types/on_off_type.rb +29 -0
- data/lib/openhab/dsl/types/open_closed_type.rb +29 -0
- data/lib/openhab/dsl/types/percent_type.rb +68 -0
- data/lib/openhab/dsl/types/play_pause_type.rb +27 -0
- data/lib/openhab/dsl/types/quantity_type.rb +275 -0
- data/lib/openhab/dsl/types/refresh_type.rb +18 -0
- data/lib/openhab/dsl/types/rewind_fastforward_type.rb +33 -0
- data/lib/openhab/dsl/types/stop_move_type.rb +23 -0
- data/lib/openhab/dsl/types/string_type.rb +88 -0
- data/lib/openhab/dsl/types/type.rb +72 -0
- data/lib/openhab/dsl/types/types.rb +77 -0
- data/lib/openhab/dsl/types/un_def_type.rb +22 -0
- data/lib/openhab/dsl/types/up_down_type.rb +32 -0
- data/lib/openhab/dsl/units.rb +11 -6
- data/lib/openhab/version.rb +1 -1
- data/lib/openhab.rb +0 -1
- metadata +31 -28
- data/lib/openhab/dsl/items/datetime_item.rb +0 -75
- data/lib/openhab/dsl/items/item_command.rb +0 -90
- data/lib/openhab/dsl/items/item_delegate.rb +0 -125
- data/lib/openhab/dsl/monkey_patch/items/contact_item.rb +0 -51
- data/lib/openhab/dsl/monkey_patch/items/dimmer_item.rb +0 -140
- data/lib/openhab/dsl/monkey_patch/items/items.rb +0 -142
- data/lib/openhab/dsl/monkey_patch/items/metadata.rb +0 -328
- data/lib/openhab/dsl/monkey_patch/items/persistence.rb +0 -123
- data/lib/openhab/dsl/monkey_patch/items/switch_item.rb +0 -71
- data/lib/openhab/dsl/monkey_patch/ruby/range.rb +0 -47
- data/lib/openhab/dsl/monkey_patch/ruby/time.rb +0 -32
- data/lib/openhab/dsl/monkey_patch/types/decimal_type.rb +0 -97
- data/lib/openhab/dsl/monkey_patch/types/increase_decrease_type.rb +0 -23
- data/lib/openhab/dsl/monkey_patch/types/next_previous_type.rb +0 -23
- data/lib/openhab/dsl/monkey_patch/types/on_off_type.rb +0 -79
- data/lib/openhab/dsl/monkey_patch/types/open_closed_type.rb +0 -71
- data/lib/openhab/dsl/monkey_patch/types/percent_type.rb +0 -77
- data/lib/openhab/dsl/monkey_patch/types/play_pause_type.rb +0 -23
- data/lib/openhab/dsl/monkey_patch/types/quantity_type.rb +0 -69
- data/lib/openhab/dsl/monkey_patch/types/refresh_type.rb +0 -23
- data/lib/openhab/dsl/monkey_patch/types/rewind_fastforward_type.rb +0 -23
- data/lib/openhab/dsl/monkey_patch/types/stop_move_type.rb +0 -23
- data/lib/openhab/dsl/monkey_patch/types/types.rb +0 -15
- data/lib/openhab/dsl/monkey_patch/types/up_down_type.rb +0 -72
- data/lib/openhab/dsl/types/datetime.rb +0 -338
- data/lib/openhab/dsl/types/quantity.rb +0 -300
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
3
|
+
require_relative 'item_event'
|
4
4
|
|
5
5
|
module OpenHAB
|
6
6
|
module DSL
|
@@ -9,32 +9,75 @@ module OpenHAB
|
|
9
9
|
# Patches OpenHAB events
|
10
10
|
#
|
11
11
|
module Events
|
12
|
-
java_import
|
13
|
-
|
14
|
-
#
|
15
|
-
# Monkey patch with ruby style accesors
|
16
|
-
#
|
17
|
-
class ItemCommandEvent
|
18
|
-
include Log
|
12
|
+
java_import org.openhab.core.items.events.ItemCommandEvent
|
19
13
|
|
14
|
+
# Adds methods to core OpenHAB ItemCommandEvent to make it more natural in Ruby
|
15
|
+
class ItemCommandEvent < ItemEvent
|
16
|
+
# @return [Type]
|
20
17
|
alias command item_command
|
21
18
|
|
22
|
-
#
|
23
|
-
#
|
24
|
-
#
|
25
|
-
|
26
|
-
#
|
27
|
-
#
|
28
|
-
#
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
19
|
+
# @!method refresh?
|
20
|
+
# Check if == +REFRESH+
|
21
|
+
# @return [Boolean]
|
22
|
+
|
23
|
+
# @!method on?
|
24
|
+
# Check if == +ON+
|
25
|
+
# @return [Boolean]
|
26
|
+
|
27
|
+
# @!method off?
|
28
|
+
# Check if == +OFF+
|
29
|
+
# @return [Boolean]
|
30
|
+
|
31
|
+
# @!method up?
|
32
|
+
# Check if == +UP+
|
33
|
+
# @return [Boolean]
|
34
|
+
|
35
|
+
# @!method down?
|
36
|
+
# Check if == +DOWN+
|
37
|
+
# @return [Boolean]
|
38
|
+
|
39
|
+
# @!method stop?
|
40
|
+
# Check if == +STOP+
|
41
|
+
# @return [Boolean]
|
42
|
+
|
43
|
+
# @!method move?
|
44
|
+
# Check if == +MOVE+
|
45
|
+
# @return [Boolean]
|
46
|
+
|
47
|
+
# @!method increase?
|
48
|
+
# Check if == +INCREASE+
|
49
|
+
# @return [Boolean]
|
50
|
+
|
51
|
+
# @!method decrease?
|
52
|
+
# Check if == +DECREASE+
|
53
|
+
# @return [Boolean]
|
54
|
+
|
55
|
+
# @!method play?
|
56
|
+
# Check if == +PLAY+
|
57
|
+
# @return [Boolean]
|
58
|
+
|
59
|
+
# @!method pause?
|
60
|
+
# Check if == +PAUSE+
|
61
|
+
# @return [Boolean]
|
62
|
+
|
63
|
+
# @!method rewind?
|
64
|
+
# Check if == +REWIND+
|
65
|
+
# @return [Boolean]
|
66
|
+
|
67
|
+
# @!method fast_forward?
|
68
|
+
# Check if == +FASTFORWARD+
|
69
|
+
# @return [Boolean]
|
70
|
+
|
71
|
+
# @deprecated
|
72
|
+
# @!parse alias fastforward? fast_forward?
|
73
|
+
|
74
|
+
# @!method next?
|
75
|
+
# Check if == +NEXT+
|
76
|
+
# @return [Boolean]
|
77
|
+
|
78
|
+
# @!method previous?
|
79
|
+
# Check if == +PREVIOUS+
|
80
|
+
# @return [Boolean]
|
38
81
|
end
|
39
82
|
end
|
40
83
|
end
|
@@ -1,7 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'java'
|
4
|
-
|
5
3
|
module OpenHAB
|
6
4
|
module DSL
|
7
5
|
module MonkeyPatch
|
@@ -9,14 +7,16 @@ module OpenHAB
|
|
9
7
|
# Patches OpenHAB events
|
10
8
|
#
|
11
9
|
module Events
|
12
|
-
java_import
|
10
|
+
java_import org.openhab.core.items.events.ItemEvent
|
13
11
|
|
14
12
|
#
|
15
|
-
#
|
13
|
+
# Adds methods to core OpenHAB ItemEvent to make it more natural in Ruby
|
16
14
|
#
|
17
15
|
class ItemEvent
|
18
16
|
#
|
19
|
-
#
|
17
|
+
# The triggering item
|
18
|
+
#
|
19
|
+
# @return [GenericItem]
|
20
20
|
#
|
21
21
|
def item
|
22
22
|
OpenHAB::Core::EntityLookup.lookup_item(item_name)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require '
|
3
|
+
require 'openhab/dsl/types/un_def_type'
|
4
4
|
|
5
5
|
module OpenHAB
|
6
6
|
module DSL
|
@@ -9,18 +9,17 @@ module OpenHAB
|
|
9
9
|
# Patches OpenHAB events
|
10
10
|
#
|
11
11
|
module Events
|
12
|
-
java_import
|
13
|
-
java_import Java::OrgOpenhabCoreTypes::UnDefType
|
12
|
+
java_import org.openhab.core.items.events.ItemStateEvent
|
14
13
|
|
15
14
|
# Helpers common to ItemStateEvent and ItemStateChangedEvent
|
16
|
-
module
|
15
|
+
module ItemState
|
17
16
|
#
|
18
17
|
# Check if the state == UNDEF
|
19
18
|
#
|
20
19
|
# @return [Boolean] True if the state is UNDEF, false otherwise
|
21
20
|
#
|
22
21
|
def undef?
|
23
|
-
item_state ==
|
22
|
+
item_state == UNDEF
|
24
23
|
end
|
25
24
|
|
26
25
|
#
|
@@ -28,7 +27,7 @@ module OpenHAB
|
|
28
27
|
#
|
29
28
|
# @return [Boolean] True if the state is NULL, false otherwise
|
30
29
|
def null?
|
31
|
-
item_state ==
|
30
|
+
item_state == NULL
|
32
31
|
end
|
33
32
|
|
34
33
|
#
|
@@ -37,13 +36,13 @@ module OpenHAB
|
|
37
36
|
# @return [Boolean] True if state is not UNDEF or NULL
|
38
37
|
#
|
39
38
|
def state?
|
40
|
-
|
39
|
+
!item_state.is_a?(Types::UnDefType)
|
41
40
|
end
|
42
41
|
|
43
42
|
#
|
44
43
|
# Get the item state
|
45
44
|
#
|
46
|
-
# @return [
|
45
|
+
# @return [Types::PrimitiveState] OpenHAB state if state is not UNDEF or NULL, nil otherwise
|
47
46
|
#
|
48
47
|
def state
|
49
48
|
item_state if state?
|
@@ -51,10 +50,10 @@ module OpenHAB
|
|
51
50
|
end
|
52
51
|
|
53
52
|
#
|
54
|
-
#
|
53
|
+
# Adds methods to core OpenHAB ItemStateEvent to make it more natural in Ruby
|
55
54
|
#
|
56
|
-
class ItemStateEvent
|
57
|
-
include
|
55
|
+
class ItemStateEvent < ItemEvent
|
56
|
+
include ItemState
|
58
57
|
end
|
59
58
|
end
|
60
59
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require '
|
3
|
+
require 'openhab/dsl/types/un_def_type'
|
4
4
|
|
5
5
|
module OpenHAB
|
6
6
|
module DSL
|
@@ -9,14 +9,13 @@ module OpenHAB
|
|
9
9
|
# Patches OpenHAB events
|
10
10
|
#
|
11
11
|
module Events
|
12
|
-
java_import
|
13
|
-
java_import Java::OrgOpenhabCoreTypes::UnDefType
|
12
|
+
java_import org.openhab.core.items.events.ItemStateChangedEvent
|
14
13
|
|
15
14
|
#
|
16
|
-
#
|
15
|
+
# Adds methods to core OpenHAB ItemStateChangedEvent to make it more natural in Ruby
|
17
16
|
#
|
18
|
-
class ItemStateChangedEvent
|
19
|
-
include
|
17
|
+
class ItemStateChangedEvent < ItemEvent
|
18
|
+
include ItemState
|
20
19
|
|
21
20
|
#
|
22
21
|
# Check if state was == UNDEF
|
@@ -24,7 +23,7 @@ module OpenHAB
|
|
24
23
|
# @return [Boolean] True if the state is UNDEF, false otherwise
|
25
24
|
#
|
26
25
|
def was_undef?
|
27
|
-
old_item_state ==
|
26
|
+
old_item_state == UNDEF
|
28
27
|
end
|
29
28
|
|
30
29
|
#
|
@@ -32,7 +31,7 @@ module OpenHAB
|
|
32
31
|
#
|
33
32
|
# @return [Boolean] True if the state is NULL, false otherwise
|
34
33
|
def was_null?
|
35
|
-
old_item_state ==
|
34
|
+
old_item_state == NULL
|
36
35
|
end
|
37
36
|
|
38
37
|
#
|
@@ -41,18 +40,18 @@ module OpenHAB
|
|
41
40
|
# @return [Boolean] True if state is not UNDEF or NULL
|
42
41
|
#
|
43
42
|
def was?
|
44
|
-
|
43
|
+
!old_item_state.is_a?(Types::UnDefType)
|
45
44
|
end
|
46
45
|
|
47
46
|
#
|
48
47
|
# Get the previous item state
|
49
48
|
#
|
50
|
-
# @return [
|
49
|
+
# @return [Types::Type] OpenHAB state if state was not UNDEF or NULL, nil otherwise
|
51
50
|
#
|
52
51
|
def was
|
53
52
|
old_item_state if was?
|
54
53
|
end
|
55
|
-
|
54
|
+
# @deprecated
|
56
55
|
alias last was
|
57
56
|
end
|
58
57
|
end
|
@@ -16,7 +16,7 @@ module OpenHAB
|
|
16
16
|
# @return [Java::JavaTime::Duration] Duration with number of units from self
|
17
17
|
#
|
18
18
|
%w[millis seconds minutes hours].each do |unit|
|
19
|
-
define_method(unit) {
|
19
|
+
define_method(unit) { java.time.Duration.public_send("of_#{unit}", self) }
|
20
20
|
end
|
21
21
|
|
22
22
|
alias second seconds
|
@@ -37,7 +37,7 @@ module OpenHAB
|
|
37
37
|
# @return [Java::JavaTime::Duration] Duration truncated to an integral number of milliseconds from self
|
38
38
|
#
|
39
39
|
def millis
|
40
|
-
|
40
|
+
java.time.Duration.of_millis(to_i)
|
41
41
|
end
|
42
42
|
|
43
43
|
#
|
@@ -74,6 +74,26 @@ module OpenHAB
|
|
74
74
|
alias minute minutes
|
75
75
|
alias hour hours
|
76
76
|
end
|
77
|
+
|
78
|
+
#
|
79
|
+
# Extend numeric to create quantity object
|
80
|
+
#
|
81
|
+
module NumericExtensions
|
82
|
+
#
|
83
|
+
# Convert Numeric to a QuantityType
|
84
|
+
#
|
85
|
+
# @param [Object] other String or Unit representing an OpenHAB Unit
|
86
|
+
#
|
87
|
+
# @return [Types::QuantityType] +self+ as a {Types::QuantityType} of the supplied Unit
|
88
|
+
#
|
89
|
+
def |(other)
|
90
|
+
other = org.openhab.core.types.util.UnitUtils.parse_unit(other.to_str) if other.respond_to?(:to_str)
|
91
|
+
|
92
|
+
return super unless other.is_a?(javax.measure.Unit)
|
93
|
+
|
94
|
+
QuantityType.new(to_d.to_java, other)
|
95
|
+
end
|
96
|
+
end
|
77
97
|
end
|
78
98
|
end
|
79
99
|
end
|
@@ -81,3 +101,6 @@ end
|
|
81
101
|
|
82
102
|
Integer.prepend(OpenHAB::DSL::MonkeyPatch::Ruby::IntegerExtensions)
|
83
103
|
Float.prepend(OpenHAB::DSL::MonkeyPatch::Ruby::FloatExtensions)
|
104
|
+
Numeric.include(OpenHAB::DSL::MonkeyPatch::Ruby::NumericExtensions)
|
105
|
+
# Integer already has #|, so we have to prepend it here
|
106
|
+
Integer.prepend(OpenHAB::DSL::MonkeyPatch::Ruby::NumericExtensions)
|
@@ -1,8 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
# Monkey patch ruby
|
4
|
-
require 'openhab/dsl/monkey_patch/ruby/range'
|
5
3
|
require 'openhab/dsl/monkey_patch/ruby/number'
|
6
4
|
require 'openhab/dsl/monkey_patch/ruby/string'
|
7
|
-
require 'openhab/dsl/monkey_patch/ruby/time'
|
8
5
|
require 'bigdecimal/util'
|
@@ -1,44 +1,44 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'openhab/dsl/types/quantity'
|
4
|
-
require 'openhab/dsl/types/datetime'
|
5
|
-
require 'openhab/dsl/items/datetime_item'
|
6
|
-
|
7
3
|
module OpenHAB
|
8
4
|
module DSL
|
5
|
+
# monkey patches
|
9
6
|
module MonkeyPatch
|
7
|
+
# extensions to core Ruby objects
|
10
8
|
module Ruby
|
11
|
-
#
|
12
|
-
#
|
13
|
-
#
|
9
|
+
# extend String class so that it will do semantic comparisons against
|
10
|
+
# DateTimeType and QuantityType, instead of converting the latter to
|
11
|
+
# String and doing an exact match
|
14
12
|
module StringExtensions
|
15
|
-
include
|
16
|
-
|
17
|
-
#
|
18
|
-
# Compares String to another object
|
19
|
-
#
|
20
|
-
# @param [Object] other object to compare to
|
21
|
-
#
|
22
|
-
# @return [Boolean] true if the two objects contain the same value, false otherwise
|
23
|
-
#
|
13
|
+
# {include:StringExtensions}
|
24
14
|
def ==(other)
|
25
15
|
case other
|
26
|
-
when
|
27
|
-
|
16
|
+
when Types::QuantityType,
|
17
|
+
Types::DateTimeType,
|
18
|
+
Items::DateTimeItem,
|
19
|
+
Items::NumericItem
|
28
20
|
other == self
|
29
21
|
else
|
30
22
|
super
|
31
23
|
end
|
32
24
|
end
|
25
|
+
|
26
|
+
# {include:StringExtensions}
|
27
|
+
def <=>(other)
|
28
|
+
case other
|
29
|
+
when Types::QuantityType,
|
30
|
+
Types::DateTimeType,
|
31
|
+
Items::DateTimeItem,
|
32
|
+
Items::NumericItem
|
33
|
+
(other <=> self)&.-@()
|
34
|
+
else
|
35
|
+
super
|
36
|
+
end
|
37
|
+
end
|
33
38
|
end
|
34
39
|
end
|
35
40
|
end
|
36
41
|
end
|
37
42
|
end
|
38
43
|
|
39
|
-
|
40
|
-
# Prepend String class with comparison extensions
|
41
|
-
#
|
42
|
-
class String
|
43
|
-
prepend OpenHAB::DSL::MonkeyPatch::Ruby::StringExtensions
|
44
|
-
end
|
44
|
+
String.prepend(OpenHAB::DSL::MonkeyPatch::Ruby::StringExtensions)
|
data/lib/openhab/dsl/states.rb
CHANGED
@@ -48,7 +48,7 @@ module OpenHAB
|
|
48
48
|
# @return [StateStorage] item states
|
49
49
|
#
|
50
50
|
def store_states(*items)
|
51
|
-
items = items.flatten
|
51
|
+
items = items.flatten
|
52
52
|
states = StateStorage.new(BusEvent.storeStates(*items).to_h)
|
53
53
|
if block_given?
|
54
54
|
yield
|
@@ -1,9 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'java'
|
4
3
|
require 'openhab/log/logger'
|
5
|
-
require 'openhab/dsl/
|
6
|
-
require 'openhab/dsl/types/datetime'
|
4
|
+
require 'openhab/dsl/types/date_time_type'
|
7
5
|
require 'time'
|
8
6
|
|
9
7
|
module OpenHAB
|
@@ -173,7 +171,7 @@ module OpenHAB
|
|
173
171
|
case object
|
174
172
|
when TimeOfDay then adjust_second_of_day(object.local_time.to_second_of_day)
|
175
173
|
when String then adjust_second_of_day(TimeOfDay.parse(object).local_time.to_second_of_day)
|
176
|
-
when Time, OpenHAB::DSL::Types::
|
174
|
+
when Time, OpenHAB::DSL::Types::DateTimeType, OpenHAB::DSL::Items::DateTimeItem
|
177
175
|
adjust_second_of_day(TimeOfDay.new(h: object.hour, m: object.min, s: object.sec)
|
178
176
|
.local_time.to_second_of_day)
|
179
177
|
when TimeOfDayRangeElement then object.sod
|
@@ -218,7 +216,7 @@ module OpenHAB
|
|
218
216
|
private_class_method def to_time_of_day(object)
|
219
217
|
case object
|
220
218
|
when String then TimeOfDay.parse(object)
|
221
|
-
when Time, OpenHAB::DSL::Types::
|
219
|
+
when Time, OpenHAB::DSL::Types::DateTimeType, OpenHAB::DSL::Items::DateTimeItem
|
222
220
|
TimeOfDay.new(h: object.hour, m: object.min, s: object.sec)
|
223
221
|
else object
|
224
222
|
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module OpenHAB
|
4
|
+
module DSL
|
5
|
+
# Comparable#== is overwritten by Type, because DecimalType etc.
|
6
|
+
# inherits from Comparable on the Java side, so it's in the wrong place
|
7
|
+
# in the ancestor list
|
8
|
+
# @!visibility private
|
9
|
+
module ComparableType
|
10
|
+
# re-implement
|
11
|
+
# @!visibility private
|
12
|
+
def ==(other)
|
13
|
+
r = self <=> other
|
14
|
+
|
15
|
+
return false if r.nil?
|
16
|
+
|
17
|
+
r.zero?
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|