Sha256: e815624ed95f7ab96e8f19b3fdff193b37d16ac3f61e9617aeeb4b845bc3e97e

Contents?: true

Size: 1013 Bytes

Versions: 28

Compression:

Stored size: 1013 Bytes

Contents

module OpenStax::Utilities
  class ActionList

    def initialize(options={})
      @options = options

      raise IllegalArgument, "must supply data procs" if options[:data_procs].nil?

      if options[:headings].present? && options[:data_procs].size != options[:headings].size
        raise IllegalArgument, "if you supply headings, you must supply one for each column"
      end

      if options[:widths].present? && options[:data_procs].size != options[:widths].size
        raise IllegalArgument, "if you supply widths, you must supply one for each column"
      end

    end

    def num_columns
      @options[:data_procs].size
    end

    def has_headings?
      @options[:headings].present?
    end

    def get_heading(column)
      @options[:headings].nil? ? nil : @options[:headings][column]
    end

    def get_width(column)
      @options[:widths].nil? ? nil : @options[:widths][column]
    end

    def get_data(column, *args)
      @options[:data_procs][column].call(*args)
    end

  end
end

Version data entries

28 entries across 28 versions & 1 rubygems

Version Path
openstax_utilities-5.1.2 lib/openstax/utilities/action_list.rb
openstax_utilities-5.1.1 lib/openstax/utilities/action_list.rb
openstax_utilities-5.1.0 lib/openstax/utilities/action_list.rb
openstax_utilities-5.0.0 lib/openstax/utilities/action_list.rb
openstax_utilities-4.5.2 lib/openstax/utilities/action_list.rb
openstax_utilities-4.5.1 lib/openstax/utilities/action_list.rb
openstax_utilities-4.5.0 lib/openstax/utilities/action_list.rb
openstax_utilities-4.4.2 lib/openstax/utilities/action_list.rb
openstax_utilities-4.4.1 lib/openstax/utilities/action_list.rb
openstax_utilities-4.4.0 lib/openstax/utilities/action_list.rb
openstax_utilities-4.3.0 lib/openstax/utilities/action_list.rb
openstax_utilities-4.2.3 lib/openstax/utilities/action_list.rb
openstax_utilities-4.2.2 lib/openstax/utilities/action_list.rb
openstax_utilities-4.2.1 lib/openstax/utilities/action_list.rb
openstax_utilities-4.2.0 lib/openstax/utilities/action_list.rb
openstax_utilities-4.1.0 lib/openstax/utilities/action_list.rb
openstax_utilities-4.0.0 lib/openstax/utilities/action_list.rb
openstax_utilities-3.0.0 lib/openstax/utilities/action_list.rb
openstax_utilities-2.2.3 lib/openstax/utilities/action_list.rb
openstax_utilities-2.2.2 lib/openstax/utilities/action_list.rb