Sha256: 9023471f30eb8f1a97cb4df7686252ec8a23da395da5ad49b7804c541eced573

Contents?: true

Size: 552 Bytes

Versions: 2

Compression:

Stored size: 552 Bytes

Contents

require 'forwardable'

module FlipFab
  class FeaturesByName
    extend Forwardable

    def initialize features_by_name={}
      @features_by_name = features_by_name
    end

    def [] name
      raise "no feature has been defined with the name: #{name}" if @features_by_name[name].nil?
      @features_by_name[name]
    end

    def with_context context
      FeaturesByName.new Hash[@features_by_name.map{|name, feature| [name, (feature.with_context context)]}]
    end

    def_delegators :@features_by_name, :[]=, :clear, :count, :each
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
flip_fab-1.0.1 lib/flip_fab/features_by_name.rb
flip_fab-1.0.0 lib/flip_fab/features_by_name.rb