Sha256: 1ba93c1a0bcbd01885073ba6fa181228e3bec457d4be8e9d05ddbc2a2e7def33

Contents?: true

Size: 517 Bytes

Versions: 1

Compression:

Stored size: 517 Bytes

Contents

module EagleLabels
  class Category
    attr_reader :name, :code

    def initialize(name, spec)
      @name = name
      @code = spec['code'].to_s
      @features = spec['features'] || {}
    end

    def features
      @features.map { |k, v| Feature.new(k, v) }
    end

    def all_labels
      features.inject([]) do |labels, feature|
        labels.any? ? labels.product(feature.codes) : feature.codes
      end.map { |l| "#{code}#{l.is_a?(String) ? l : l.flatten.join}" }
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
eagle_labels-0.0.1 lib/eagle_labels/category.rb