Sha256: 031f79e137cac12297026e3f4a9db07dca7fda345b1c4164f5ab5b11b7e22565

Contents?: true

Size: 1.16 KB

Versions: 4

Compression:

Stored size: 1.16 KB

Contents

module ExcelTemplating
  # Represents a data source list used for validation of cell information
  class Document::DataSourceRegistry::RegistryList
    # @param [Integer] order
    # @param [Symbol] symbol
    # @param [String] title
    # @param [Array<String>|Symbol] list
    # @param [TrueClass|FalseClass] inline
    def initialize(order, symbol, title, list, inline)
      @title = title
      @list = list
      @inline = inline
      @order = order
      @symbol = symbol
      pre_validate!
    end

    attr_reader :title, :order, :symbol, :list

    # @return [Boolean] Is this to be rendered inline?
    def inline?
      @inline
    end

    # @return [Boolean] Is this to be rendered on the data sheet?
    def data_sheet?
      !inline?
    end

    # @param [Hash] data The data object from which the document is being rendered
    # @return [Array<String>] The validation objects
    def items(data)
      if list == :from_data
        data[symbol]
      else
        list
      end
    end

    private

    def pre_validate!
      unless list.is_a?(Array) || list == :from_data
        raise ArgumentError, "List must be an array or :from_data"
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
excel_templating-0.4.2 lib/excel_templating/document/data_source_registry/registry_list.rb
excel_templating-0.4.1 lib/excel_templating/document/data_source_registry/registry_list.rb
excel_templating-0.4.0 lib/excel_templating/document/data_source_registry/registry_list.rb
excel_templating-0.3.2 lib/excel_templating/document/data_source_registry/registry_list.rb