lib/frappuccino/property.rb in frappuccino-0.2.0 vs lib/frappuccino/property.rb in frappuccino-0.3.0
- old
+ new
@@ -1,16 +1,44 @@
module Frappuccino
class Property
- def initialize(zero, stream)
+ end
+end
+
+require 'frappuccino/property/map_property'
+require 'frappuccino/property/until_property'
+require 'frappuccino/property/toggle_property'
+
+module Frappuccino
+ class Property
+ def initialize(zero, stream = nil)
@value = zero
- stream.add_observer(self)
+
+ if stream
+ stream.on_value do |value|
+ @value = value
+ end
+ end
end
def now
@value
end
- def update(value)
- @value = value
+ def sample(stream)
+ stream.map do
+ self.now
+ end
+ end
+
+ def until(stream, property)
+ UntilProperty.new(self, stream, property)
+ end
+
+ def toggle(stream, property)
+ ToggleProperty.new(self, stream, property)
+ end
+
+ def map(&blk)
+ MapProperty.new(self, &blk)
end
end
end