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