Sha256: eba831d24a9f9aa33899382ecae84d3a70abf3030d28cad44d726599a865800a

Contents?: true

Size: 1.76 KB

Versions: 16

Compression:

Stored size: 1.76 KB

Contents

# encoding: utf-8
module LocalPac
  module ProxyPac
    class HTMLTableStyle
      private

      attr_reader :data, :main_container_css_class, :element_container_css_class

      public

      def initialize(options = {})
        @main_container_css_class    = options.fetch(:main_container_css_class)
        @element_container_css_class = options.fetch(:element_container_css_class)
        @data                        = []
      rescue KeyError => e
        raise ArgumentError, e.message
      end

      def add_data(data)
        @data << data
      end

      def to_s
        header_row = data.reduce([]) do |memo, element|
          if element.header
            memo << '    <th>'
            memo << "      <span class=\"#{element.header_css_class}\">" if element.header_css_class
            memo << "       #{element.header}"
            memo << '       </span>'                                  if element.header_css_class
            memo << '    </th>'
          end
        end

        data_row = data.reduce([]) do |memo, element|
          memo << '    <td>'
          memo << "      <span class=\"#{element.element_css_class}\">" if element.element_css_class
          memo << "       #{element.element}"
          memo << '       </span>'                                   if element.element_css_class
          memo << '    </td>'

          memo
        end

        content = ["<table class=\"#{main_container_css_class}\">"]
        content << "  <tr class=\"#{element_container_css_class}\">"
        content.concat header_row
        content << '  </tr>'
        content << "  <tr class=\"#{element_container_css_class}\">"
        content.concat data_row
        content << '  </tr>'
        content << '</table>'

        content.join("\n")
      end
    end
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
local_pac-0.10.2 lib/local_pac/proxy_pac/html_table_style.rb
local_pac-0.10.1 lib/local_pac/proxy_pac/html_table_style.rb
local_pac-0.10.0 lib/local_pac/proxy_pac/html_table_style.rb
local_pac-0.9.0 lib/local_pac/proxy_pac/html_table_style.rb
local_pac-0.7.0 lib/local_pac/proxy_pac/html_table_style.rb
local_pac-0.6.3 lib/local_pac/proxy_pac/html_table_style.rb
local_pac-0.6.2 lib/local_pac/proxy_pac/html_table_style.rb
local_pac-0.6.1 lib/local_pac/proxy_pac/html_table_style.rb
local_pac-0.5.0 lib/local_pac/proxy_pac/html_table_style.rb
local_pac-0.4.0 lib/local_pac/proxy_pac/html_table_style.rb
local_pac-0.3.0 lib/local_pac/proxy_pac/html_table_style.rb
local_pac-0.2.3 lib/local_pac/proxy_pac/html_table_style.rb
local_pac-0.2.2 lib/local_pac/proxy_pac/html_table_style.rb
local_pac-0.2.1 lib/local_pac/proxy_pac/html_table_style.rb
local_pac-0.2.0 lib/local_pac/proxy_pac/html_table_style.rb
local_pac-0.1.13 lib/local_pac/proxy_pac/html_table_style.rb