Sha256: 046175628dd22883858c75842206405d68fc473b9c86a4dfd761fe88985985f5

Contents?: true

Size: 1011 Bytes

Versions: 11

Compression:

Stored size: 1011 Bytes

Contents

module OpenStax::Connect
  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

11 entries across 11 versions & 1 rubygems

Version Path
openstax_connect-0.1.0 lib/openstax/connect/action_list.rb
openstax_connect-0.0.10 lib/openstax/connect/action_list.rb
openstax_connect-0.0.9 lib/openstax/connect/action_list.rb
openstax_connect-0.0.8 lib/openstax/connect/action_list.rb
openstax_connect-0.0.7 lib/openstax/connect/action_list.rb
openstax_connect-0.0.6 lib/openstax/connect/action_list.rb
openstax_connect-0.0.5 lib/openstax/connect/action_list.rb
openstax_connect-0.0.4 lib/openstax/connect/action_list.rb
openstax_connect-0.0.3 lib/openstax/connect/action_list.rb
openstax_connect-0.0.2 lib/openstax/connect/action_list.rb
openstax_connect-0.0.1 lib/openstax/connect/action_list.rb