bootstrap_help 0.0.30 → 0.0.31

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: 9d02e968a9e8b70153b445056abbb27f19bf9447
4
- data.tar.gz: 87f05dbbefaee06d3d4b4bc50c5b1451134ce55e
3
+ metadata.gz: b189fd43be426fec7b3a2c59aa7a72716766b55e
4
+ data.tar.gz: 9e5a646e55f8b3570a459360056914da54c4a337
5
5
  SHA512:
6
- metadata.gz: 1b09604c1bc66fd435bfe7262fbfbc5af95d7df9a34fbc6bc2571acc128f8e10670fa887b8264328f936874e9edc417ba506b2cf5cac27bd41068668f10ee043
7
- data.tar.gz: b4646b1aa16ea3806f230f5b00533158a4eb99fbfdb6794dd292a912898bdfede7064d16df110fe1c4315a68a6c0df514d181edbc6beb06e450fb895bced653f
6
+ metadata.gz: 406d733aa5e7a56f8eeea66b2b8379260d1da394b97e4c24130fc079474b4144517855aecaf071c11ee4c7dc4f1a0d6539f9b113aaa385bebc4aeec2c6504cd8
7
+ data.tar.gz: e906938b5d722b3007b3a146d45cc385896bd79787e759019f42ea90c876b1a7a27a0b0299d37b9dd88a4c764c462c71dfd958198a6fcde1b86cf026027dbf41
data/README.md CHANGED
@@ -40,7 +40,7 @@ The Nav Helper helps you quickly build a fixed navigation bar in Bootstrap. For
40
40
  The Table Helper helps you quickly build Bootstrap tables with collections of instances. For example:
41
41
 
42
42
  ```haml
43
- = table_for(@apples) do
43
+ = table_for(@apples, row_decorators: { error: :has_worm?) do
44
44
  = column "Hex Color" do |apple|
45
45
  - apple.color.to_hex
46
46
  = column 'Type of Apple', :type
@@ -7,6 +7,7 @@ module BootstrapHelp
7
7
 
8
8
  def table_for(collection, args={}, &block)
9
9
  @columns = []
10
+ @row_decorators = args[:row_decorators]
10
11
  block.call
11
12
  content_tag :table, class: "table table-striped table-bordered" do
12
13
  thead + tbody(collection)
@@ -24,7 +25,7 @@ module BootstrapHelp
24
25
  def tbody(collection)
25
26
  draw_body do
26
27
  collection.each do |item|
27
- concat(draw_row {
28
+ concat(draw_row(item) {
28
29
  @columns.each do |c|
29
30
  parse_column(c, item)
30
31
  end
@@ -47,8 +48,12 @@ module BootstrapHelp
47
48
  content_tag(:tbody, &block)
48
49
  end
49
50
 
50
- def draw_row(&block)
51
- content_tag(:tr, &block)
51
+ def draw_row(item=nil, &block)
52
+ if item.present?
53
+ content_tag(:tr, class: get_row_css_classes(item), &block)
54
+ else
55
+ content_tag(:tr, &block)
56
+ end
52
57
  end
53
58
 
54
59
  def draw_column(&block)
@@ -57,13 +62,21 @@ module BootstrapHelp
57
62
 
58
63
  def parse_column(column, item)
59
64
  if column[:block].present?
60
- puts "block"
61
65
  output = capture(item, &column[:block])
62
66
  else
63
- puts "test"
64
67
  output = item.send(column.fetch(:value)).to_s
65
68
  end
66
69
  concat(draw_column { output })
67
70
  end
71
+
72
+ def get_row_css_classes(item)
73
+ css_classes = []
74
+ if @row_decorators.present?
75
+ @row_decorators.each do |css_class, method|
76
+ css_classes << css_class if item.send(method)
77
+ end
78
+ end
79
+ return css_classes
80
+ end
68
81
  end
69
82
  end
@@ -1,3 +1,3 @@
1
1
  module BootstrapHelp
2
- VERSION = "0.0.30"
2
+ VERSION = "0.0.31"
3
3
  end
@@ -9,13 +9,13 @@ describe BootstrapHelp::TableHelpers do
9
9
  end
10
10
 
11
11
  collection = []
12
- Customer = Struct.new(:name, :address)
13
- collection << Customer.new('Josh', '111')
14
- collection << Customer.new('Dave', '222')
12
+ Customer = Struct.new(:name, :address, :good?, :bad?, :not_right?, :informative?)
13
+ collection << Customer.new('Josh', '111', true, true, true, true)
14
+ collection << Customer.new('Dave', '222', true, true, true, true)
15
15
 
16
16
  describe '#table_for' do
17
17
  it 'returns a bootstrap table for a given collection' do
18
- 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>"
18
+ expected_result = "<table class=\"table table-striped table-bordered\"><thead><tr><th>Name</th><th>Address</th></tr></thead><tbody><tr class=\"\"><td>JOSH</td><td>111</td></tr><tr class=\"\"><td>DAVE</td><td>222</td></tr></tbody></table>"
19
19
 
20
20
  block = Proc.new {
21
21
  helpers.column 'name' do |customer|
@@ -28,7 +28,7 @@ describe BootstrapHelp::TableHelpers do
28
28
  end
29
29
 
30
30
  it "has the ability to add manageable links to the end of the table" do
31
- expected_result = "<table class=\"table table-striped table-bordered\"><thead><tr><th>Name</th><th>Address</th><th>Any Old Name</th></tr></thead><tbody><tr><td>JOSH</td><td>111</td><td>hello</td></tr><tr><td>DAVE</td><td>222</td><td>hello</td></tr></tbody></table>"
31
+ expected_result = "<table class=\"table table-striped table-bordered\"><thead><tr><th>Name</th><th>Address</th><th>Any Old Name</th></tr></thead><tbody><tr class=\"\"><td>JOSH</td><td>111</td><td>hello</td></tr><tr class=\"\"><td>DAVE</td><td>222</td><td>hello</td></tr></tbody></table>"
32
32
 
33
33
  block = Proc.new {
34
34
  helpers.column 'name' do |customer|
@@ -43,5 +43,26 @@ describe BootstrapHelp::TableHelpers do
43
43
  expect(helpers.table_for(collection, &block)).to eq(expected_result)
44
44
 
45
45
  end
46
+
47
+ it "well let you assign classes to rows based off item methods" do
48
+ expected_result = "<table class=\"table table-striped table-bordered\"><thead><tr><th>Name</th><th>Address</th></tr></thead><tbody><tr class=\"success error warning info\"><td>JOSH</td><td>111</td></tr><tr class=\"success error warning info\"><td>DAVE</td><td>222</td></tr></tbody></table>"
49
+
50
+ block = Proc.new {
51
+ helpers.column 'name' do |customer|
52
+ customer.name.upcase
53
+ end
54
+ helpers.column 'address'
55
+ }
56
+
57
+ row_class_map = {
58
+ success: :good?,
59
+ error: :bad?,
60
+ warning: :not_right?,
61
+ info: :informative?
62
+ }
63
+
64
+ expect(helpers.table_for(collection, row_decorators: row_class_map, &block)).to eq(expected_result)
65
+
66
+ end
46
67
  end
47
68
  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.30
4
+ version: 0.0.31
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-10-05 00:00:00.000000000 Z
11
+ date: 2013-10-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler