Sha256: 72c4675984573ca1fb9977b746db1f5770f1943f238fc02e7b3d8a43630c620b

Contents?: true

Size: 1012 Bytes

Versions: 1

Compression:

Stored size: 1012 Bytes

Contents

module Mohawk
  module Accessors
    class TableRow
      include RAutomation::Adapter::MsUia

      attr_reader :row

      def initialize(table, row_index)
        @table = table
        @row = Row.new(@table.view, :index => row_index)
      end

      def selected?
        @table.view.selected? row.row
      end

      def select
        @table.view.select row.row
      end

      def cells
        row.cells.map &:text
      end

      def value_from_header(name)
        which_column = header_methods.index(name)
        raise ArgumentError, "#{name} column does not exist in #{header_methods}" if which_column.nil?
        Cell.new(row, :index => which_column).text
      end
      
      def method_missing(name, *args)
        value_from_header name
      end

      def to_hash
        {:text => row.text, :row => row.row }
      end

      private
      def header_methods
        @headers ||= @table.headers.map(&:to_method)
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
mohawk-0.0.4 lib/mohawk/accessors/table_row.rb