Class: Value
- Inherits:
-
Object
- Object
- Value
- Defined in:
- lib/asdrubal/time_series.rb
Instance Attribute Summary collapse
-
#next ⇒ Object
Returns the value of attribute next.
-
#previous ⇒ Object
Returns the value of attribute previous.
-
#value ⇒ Object
readonly
Returns the value of attribute value.
Instance Method Summary collapse
- #any_after(value, steps) ⇒ Object
- #any_before(value, steps) ⇒ Object
-
#any_signal_ahead? ⇒ Boolean
Warning: recursion ahead.
-
#any_signal_behind? ⇒ Boolean
Warning: recursion ahead.
-
#initialize(parent, date, value, previous = nil) ⇒ Value
constructor
A new instance of Value.
- #signal ⇒ Object
- #smooth_signal ⇒ Object
- #to_s ⇒ Object
Constructor Details
#initialize(parent, date, value, previous = nil) ⇒ Value
Returns a new instance of Value.
85 86 87 88 89 |
# File 'lib/asdrubal/time_series.rb', line 85 def initialize(parent, date, value, previous = nil) @parent, @date, @value = parent, date, value || 0 @previous = previous previous.next = self if previous end |
Instance Attribute Details
#next ⇒ Object
Returns the value of attribute next.
83 84 85 |
# File 'lib/asdrubal/time_series.rb', line 83 def next @next end |
#previous ⇒ Object
Returns the value of attribute previous.
83 84 85 |
# File 'lib/asdrubal/time_series.rb', line 83 def previous @previous end |
#value ⇒ Object (readonly)
Returns the value of attribute value.
82 83 84 |
# File 'lib/asdrubal/time_series.rb', line 82 def value @value end |
Instance Method Details
#any_after(value, steps) ⇒ Object
119 120 121 122 |
# File 'lib/asdrubal/time_series.rb', line 119 def any_after(value, steps) return false if steps <= 0 || value.nil? value.signal == 1 || any_after(value.next, steps - 1) end |
#any_before(value, steps) ⇒ Object
108 109 110 111 |
# File 'lib/asdrubal/time_series.rb', line 108 def any_before(value, steps) return false if steps <= 0 || value.nil? value.signal == 1 || any_before(value.previous, steps - 1) end |
#any_signal_ahead? ⇒ Boolean
Warning: recursion ahead
117 118 119 120 121 122 123 124 125 |
# File 'lib/asdrubal/time_series.rb', line 117 def any_signal_ahead? def any_after(value, steps) return false if steps <= 0 || value.nil? value.signal == 1 || any_after(value.next, steps - 1) end any_after(self.next, @parent.smooth_window) end |
#any_signal_behind? ⇒ Boolean
Warning: recursion ahead
106 107 108 109 110 111 112 113 114 |
# File 'lib/asdrubal/time_series.rb', line 106 def any_signal_behind? def any_before(value, steps) return false if steps <= 0 || value.nil? value.signal == 1 || any_before(value.previous, steps - 1) end any_before(self.previous, @parent.smooth_window) end |
#signal ⇒ Object
91 92 93 |
# File 'lib/asdrubal/time_series.rb', line 91 def signal self.value > 0 ? 1 : 0 end |
#smooth_signal ⇒ Object
95 96 97 98 99 100 101 102 103 |
# File 'lib/asdrubal/time_series.rb', line 95 def smooth_signal return 1 if self.signal == 1 if any_signal_behind? && any_signal_ahead? 1 else 0 end end |
#to_s ⇒ Object
127 128 129 |
# File 'lib/asdrubal/time_series.rb', line 127 def to_s "#{@date.strftime('%Y-%m-%d')} = #{@value}" end |