Sha256: 5a679aeb095a52d0e7a6235b8bb3ae8f0ebcfa9026ae6ef44dec295b0d65dce8

Contents?: true

Size: 751 Bytes

Versions: 1

Compression:

Stored size: 751 Bytes

Contents

module Frappuccino
  class Property
  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

      if stream
        stream.on_value do |value|
          @value = value
        end
      end
    end

    def now
      @value
    end

    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

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
frappuccino-0.3.0 lib/frappuccino/property.rb