bootstrap_help 0.0.13 → 0.0.16

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c37762f85c9cbb6ea2976b59053390120b5d6c01
4
- data.tar.gz: 160d002ce97ef4ad9b4c12ca356ca18b626b8a61
3
+ metadata.gz: c65b4b9da0581f61648ab8b54e9b60545aa82b0d
4
+ data.tar.gz: ec97fcaf5d88ff64527b54298a0b847b2a558c11
5
5
  SHA512:
6
- metadata.gz: f686ad4d1bde663c4795b8827e92f5e133b3d29e3434935154e037a0db8a3d67ca2dfae2c861998718435c8fe74b896121c64b58074e4be23dff19bd249fb8a9
7
- data.tar.gz: 439037ba36094af6bccec3f599fefaa4bc591dbac24eda375d081b68ad21117b1bcadc23f766fcd7bd8c9bb87a677c4e9e9aa54e93abf4f42276d0327bd4b650
6
+ metadata.gz: eb92522d078ee7ff3e2fe8cdb96e5bfb9ad9ccc7c3b8b0288d219740c789fd52366500db9ca1b9a0a31d987b8e710cee93fe58c54ca36f976ec37c16d3d57952
7
+ data.tar.gz: 9aa9f96c111a847cb27b161f1acef8085c096e42e941d72d67a01ba042ae7a0231e1849f411f7e300e29f53ac14d0d9a3cc7a1af403d924b3631519e5f77c3d3
data/README.md CHANGED
@@ -35,6 +35,16 @@ The Nav Helper helps you quickly build a fixed navigation bar in Bootstrap. For
35
35
  = menu_link_to "Sign In", "#"
36
36
  ```
37
37
 
38
+ ### Table Helper
39
+
40
+ The Table Helper helps you quickly build Bootstrap tables with collections of instances. For example:
41
+
42
+ ```haml
43
+ = table_for(@apples) do
44
+ = column :color
45
+ = column 'Type of Apple', :type
46
+ ```
47
+
38
48
  ## Contributing
39
49
 
40
50
  1. Fork it
@@ -2,6 +2,7 @@ module BootstrapHelp
2
2
  class Railtie < Rails::Railtie
3
3
  initializer "bootstrap_help.nav_helpers" do
4
4
  ActionView::Base.send :include, NavHelpers
5
+ ActionView::Base.send :include, TableHelpers
5
6
  end
6
7
  end
7
8
  end
@@ -0,0 +1,62 @@
1
+ module BootstrapHelp
2
+ module TableHelpers
3
+ include ActionView::Helpers::TagHelper
4
+ include ActionView::Helpers::TextHelper
5
+ include ActionView::Helpers::UrlHelper
6
+ include ActionView::Context
7
+
8
+
9
+ def table_for(collection)
10
+ @columns = []
11
+ content_tag :table, class: "table table-striped table-bordered" do
12
+ yield
13
+ thead + tbody(collection)
14
+ end
15
+ end
16
+
17
+ def column(name, value = nil, sortable = true, &block)
18
+ value = name unless value
19
+ @columns << {:name => name, :value => value, :sortable => sortable, :block => block}
20
+ nil
21
+ end
22
+ private
23
+
24
+ def tbody(collection)
25
+ draw_body do
26
+ collection.each do |item|
27
+ concat(draw_row {
28
+ @columns.each do |c|
29
+ concat(draw_column {
30
+ concat(item.send(c.fetch(:value)))
31
+ })
32
+ end
33
+ })
34
+ end
35
+ end
36
+ end
37
+
38
+ def thead
39
+ content_tag :thead do
40
+ draw_row do
41
+ @columns.each do |c|
42
+ concat(content_tag(:th, c.fetch(:name).to_s.titleize))
43
+ end
44
+ end
45
+ end
46
+ end
47
+
48
+ def draw_body
49
+ content_tag(:tbody) { yield }
50
+ end
51
+
52
+ def draw_row
53
+ content_tag(:tr) { yield }
54
+ end
55
+
56
+ def draw_column
57
+ content_tag(:td) { yield }
58
+ end
59
+
60
+
61
+ end
62
+ end
@@ -1,3 +1,3 @@
1
1
  module BootstrapHelp
2
- VERSION = "0.0.13"
2
+ VERSION = "0.0.16"
3
3
  end
@@ -3,6 +3,7 @@ require 'action_view'
3
3
  require 'bootstrap_help/railtie'
4
4
  require "bootstrap_help/version"
5
5
  require 'bootstrap_help/nav_helpers'
6
+ require 'bootstrap_help/table_helpers'
6
7
 
7
8
  module BootstrapHelp
8
9
  end
@@ -0,0 +1,24 @@
1
+ require 'spec_helper'
2
+
3
+ describe BootstrapHelp::TableHelpers do
4
+ let(:helpers) do
5
+ class HelpersClass
6
+ include BootstrapHelp::TableHelpers
7
+ end
8
+ HelpersClass.new
9
+ end
10
+ describe '#table_for' do
11
+ it 'returns a bootstrap table for a given collection' do
12
+ collection = []
13
+ Customer = Struct.new(:name, :address)
14
+ collection << Customer.new('Josh', '111')
15
+ collection << Customer.new('Dave', '222')
16
+ expected_result = "<table class=\"table table-striped table-bordered\"><thead><tr><th>Name</th><th>Address</th></tr></thead><tbody><tr><td>Josh</td><td>111</td></tr><tr><td>Dave</td><td>222</td></tr></tbody></table>"
17
+ expect(
18
+ helpers.table_for(collection) {
19
+ helpers.column 'name'; helpers.column 'address' }
20
+ ).
21
+ to eq(expected_result)
22
+ end
23
+ end
24
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bootstrap_help
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.13
4
+ version: 0.0.16
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josh Klina
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-08-02 00:00:00.000000000 Z
11
+ date: 2013-08-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -96,8 +96,10 @@ files:
96
96
  - lib/bootstrap_help.rb
97
97
  - lib/bootstrap_help/nav_helpers.rb
98
98
  - lib/bootstrap_help/railtie.rb
99
+ - lib/bootstrap_help/table_helpers.rb
99
100
  - lib/bootstrap_help/version.rb
100
101
  - spec/bootstrap_helper/nav_helper_spec.rb
102
+ - spec/bootstrap_helper/table_helper_spec.rb
101
103
  - spec/spec_helper.rb
102
104
  homepage: https://github.com/jklina/bootstrap_help
103
105
  licenses:
@@ -125,4 +127,5 @@ specification_version: 4
125
127
  summary: Twitter Bootstrap makeup generators
126
128
  test_files:
127
129
  - spec/bootstrap_helper/nav_helper_spec.rb
130
+ - spec/bootstrap_helper/table_helper_spec.rb
128
131
  - spec/spec_helper.rb