Sha256: 7ed47ece7d3710e51419017339930a2aab66173ce31fb2c783b10f2640f7be5e

Contents?: true

Size: 1.04 KB

Versions: 16

Compression:

Stored size: 1.04 KB

Contents

module Lookbook
  class PreviewGroup < Entity
    attr_reader :name, :examples, :preview

    def initialize(name, preview, examples)
      @name = name
      @preview = preview
      @examples = examples
      super("#{@preview.path}/#{name}")
    end

    def url_path
      lookbook_inspect_path lookup_path
    end

    def label
      name.titleize
    end

    def type
      :group
    end

    def params
      examples.map(&:params).flatten.uniq { |param| param[:name] }
    end

    def display_params
      merged = {}
      examples.reverse.map do |example|
        merged.merge! example.display_params
      end
      merged
    end

    def hidden?
      false
    end

    def position
      10000
    end

    def matchers
      normalize_matchers(@preview.label, label)
    end

    def hierarchy_depth
      @preview.hierarchy_depth + 1
    end

    def tags(name = nil)
      examples.map { |example| example.tags(name) }.flatten
    end

    def tag(name = nil)
      tags(name).first
    end

    alias_method :lookup_path, :path
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
lookbook-1.1.1 lib/lookbook/preview_group.rb
lookbook-1.1.0 lib/lookbook/preview_group.rb
lookbook-1.0.8 lib/lookbook/preview_group.rb
lookbook-1.0.7 lib/lookbook/preview_group.rb
lookbook-1.0.6 lib/lookbook/preview_group.rb
lookbook-1.0.5 lib/lookbook/preview_group.rb
lookbook-1.0.4 lib/lookbook/preview_group.rb
lookbook-1.0.3 lib/lookbook/preview_group.rb
lookbook-1.0.2 lib/lookbook/preview_group.rb
lookbook-1.0.1 lib/lookbook/preview_group.rb
lookbook-1.0.0 lib/lookbook/preview_group.rb
lookbook-1.0.0.rc.3 lib/lookbook/preview_group.rb
lookbook-1.0.0.rc.2 lib/lookbook/preview_group.rb
lookbook-1.0.0.rc.1 lib/lookbook/preview_group.rb
lookbook-1.0.0.beta.8 lib/lookbook/preview_group.rb
lookbook-1.0.0.beta.7 lib/lookbook/preview_group.rb