Sha256: 28ef4640a12e31a0866dac9651656ec32f7931229a2f6278202e531dfea21827

Contents?: true

Size: 568 Bytes

Versions: 3

Compression:

Stored size: 568 Bytes

Contents

module TableCloth
  module Columns
    class Action < Column
      def value(object, view_context, table)
        actions_html = actions.each_with_object('') do |action, links|
          if action.available?(table)
            links << "\n"
            links << view_context.instance_exec(object, view_context, &action.options[:proc])
          end
        end

        view_context.raw(actions_html)
      end

      def actions
        @actions ||= []
      end

      def available?(table)
        actions.any? {|a| a.available?(table) }
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
table_cloth-0.2.2 lib/table_cloth/columns/action.rb
table_cloth-0.2.1 lib/table_cloth/columns/action.rb
table_cloth-0.2.0 lib/table_cloth/columns/action.rb