Sha256: c3f10f152d3ffdeac9b91d16b801ac2be77867d91b26a3bc4b8afa6447f1bad9

Contents?: true

Size: 844 Bytes

Versions: 10

Compression:

Stored size: 844 Bytes

Contents

module Formotion
  module RowType
    module ItemsMapper
      def items
        if !row.items
          []
        elsif row.items[0].is_a?(Enumerable)
          row.items
        else
          row.items.map {|i| [i, i]}
        end
      end

      def item_names
        self.items.map { |name, value| name }
      end

      def item_names_hash
        hash = {}
        self.items.each do |name, value|
          hash[name] = value
        end
        hash
      end

      def name_index_of_value(value)
        item_names.index(item_names_hash.invert[value])
      end

      def value_for_name_index(index)
        item_names_hash[item_names[index]]
      end

      def value_for_name(name)
        item_names_hash[name]
      end

      def name_for_value(value)
        item_names_hash.invert[value].to_s
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
formotion-1.8 lib/formotion/row_type/items_mapper.rb
formotion-1.7 lib/formotion/row_type/items_mapper.rb
formotion-1.6 lib/formotion/row_type/items_mapper.rb
formotion-1.5.1 lib/formotion/row_type/items_mapper.rb
formotion-1.5.0 lib/formotion/row_type/items_mapper.rb
formotion-1.4.0 lib/formotion/row_type/items_mapper.rb
formotion-1.3.1 lib/formotion/row_type/items_mapper.rb
formotion-1.3 lib/formotion/row_type/items_mapper.rb
formotion-1.2 lib/formotion/row_type/items_mapper.rb
formotion-1.1.5 lib/formotion/row_type/items_mapper.rb