Sha256: a8e36b6dd0f38fb3a771460050e68ca38d4f71f90c9817b67836e4cb53eb994c

Contents?: true

Size: 751 Bytes

Versions: 6

Compression:

Stored size: 751 Bytes

Contents

require 'set_builder/trait'
require 'set_builder/modifier_collection'


module SetBuilder
  class Traits < Array
    
    
    
    def [](index)
      case index
      when Symbol, String
        index = index.to_s
        self.find {|trait| trait.name == index}
      else
        super
      end
    end
    
    
    
    def to_json
      "[#{collect(&:to_json).join(",")}]"
    end
    
    
    
    def modifiers
      # !nb: not sure why inject was failing but it was modifying trait.modifiers!
      @modifiers = ModifierCollection.new
      each do |trait|
        trait.modifiers.each do |modifier|
          @modifiers << modifier unless @modifiers.member?(modifier)
        end
      end
      @modifiers
    end
    
    
    
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
set_builder-2.0.0.beta1 lib/set_builder/traits.rb
set_builder-1.2.0.beta3 lib/set_builder/traits.rb
set_builder-1.2.0.beta2 lib/set_builder/traits.rb
set_builder-1.2.0.beta1 lib/set_builder/traits.rb
set_builder-1.1.0 lib/set_builder/traits.rb
set_builder-1.0.2 lib/set_builder/traits.rb