Sha256: 5ea8d3556c36cf884b8d8306c26821509425e75f156c8d3714a28ec520810cdb

Contents?: true

Size: 1.08 KB

Versions: 2

Compression:

Stored size: 1.08 KB

Contents

module OcarinaOfTime

  Struct.new("EventData", :id, :label, :tags, :time, :created, :value)
  
  class Event 
    
    attr_reader :data
      
    def initialize(args={})
      @data = Struct::EventData.new 
      @data.id = SecureRandom.uuid
      @data.label = args[:label] || false
      @data.value = args[:value] || false
      @data.tags = Set.new
      creation_time = Time.now
      @data.time = args[:time] || creation_time 
      @data.created = args[:created] || creation_time 
      if args[:tags]
        add_tags(args[:tags])
      end
    end

    def id
      @data.id
    end

    def label
      @data.label
    end
    
    def time 
      @data.time
    end
    
    def created
      @data.created
    end
  
    def time?
      @data.tags.time ? true : false 
    end

    def tags
      @data.tags.to_a
    end

    def tags?
      @data.tags.empty? ? false : true
    end

    def add_tags(tags)
      if tags.is_a? Array
        tags.each do |tag|
          @data.tags << tag
        end
      elsif tags.is_a? String
        @data.tags << tags
      end
    end


  end

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
ocarina_of_time-1.0.1 lib/ocarina_of_time/event.rb
ocarina_of_time-1.0.0 lib/ocarina_of_time/event.rb