easy-table 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.document +5 -0
- data/.gitignore +21 -0
- data/.rspec +1 -0
- data/LICENSE +20 -0
- data/README.markdown +167 -0
- data/Rakefile +24 -0
- data/VERSION +1 -0
- data/easy-table.gemspec +95 -0
- data/lib/easy-table.rb +2 -0
- data/lib/easy-table/cell.rb +38 -0
- data/lib/easy-table/namespaces.rb +8 -0
- data/lib/easy-table/rails_config.rb +7 -0
- data/lib/easy-table/row.rb +41 -0
- data/lib/easy-table/row/data.rb +36 -0
- data/lib/easy-table/table.rb +30 -0
- data/lib/easy-table/table/base.rb +29 -0
- data/lib/easy-table/table/data_table.rb +56 -0
- data/lib/easy-table/tag.rb +21 -0
- data/lib/easy-table/util.rb +27 -0
- data/lib/easy-table/view_extension.rb +19 -0
- data/spec/easy-table/cell_spec.rb +75 -0
- data/spec/easy-table/row/data_row_spec.rb +100 -0
- data/spec/easy-table/row/row_spec.rb +68 -0
- data/spec/easy-table/table/base_spec.rb +117 -0
- data/spec/easy-table/table/data_table_spec.rb +36 -0
- data/spec/easy-table/table/table_spec.rb +51 -0
- data/spec/easy-table/tag_spec.rb +38 -0
- data/spec/easy-table/util_spec.rb +67 -0
- data/spec/spec_helper.rb +8 -0
- metadata +193 -0
@@ -0,0 +1,117 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
require 'sugar-high/includes'
|
4
|
+
require 'easy-table/namespaces'
|
5
|
+
|
6
|
+
require 'easy-table/table'
|
7
|
+
|
8
|
+
describe EasyTable::ViewExt::Table::Base do
|
9
|
+
extend_view_with EasyTable::ViewExt, :table, :row, :cell, :tag
|
10
|
+
|
11
|
+
before :each do
|
12
|
+
@post = stub(:title => 'my post', :id => 1, :author => 'kristian' )
|
13
|
+
@post2 = stub(:title => 'my other post', :id => 2, :author => 'mike' )
|
14
|
+
|
15
|
+
@posts = [@post, @post2]
|
16
|
+
end
|
17
|
+
|
18
|
+
describe '#render_caption' do
|
19
|
+
it 'should display a table caption' do
|
20
|
+
with_engine(:erb) do |e|
|
21
|
+
res = e.run_template do %{
|
22
|
+
<%= render_caption 'my caption' %>
|
23
|
+
}
|
24
|
+
end
|
25
|
+
res.should match /<caption>my caption<\/caption>/
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
describe '#table_body' do
|
31
|
+
it 'should display a table body with rows' do
|
32
|
+
with_engine(:erb) do |e|
|
33
|
+
res = e.run_template_locals :posts => @posts do %{
|
34
|
+
<%= table_body posts do |post| %>
|
35
|
+
<%= data_row post, %w{id title} %>
|
36
|
+
<% end %>
|
37
|
+
}
|
38
|
+
end
|
39
|
+
res.should match /<tr>/
|
40
|
+
res.should match /<td>1<\/td>/
|
41
|
+
res.should match /<td>my post<\/td>/
|
42
|
+
# puts res
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
describe '#render_tbody' do
|
48
|
+
it 'should display a table body' do
|
49
|
+
with_engine(:erb) do |e|
|
50
|
+
res = e.run_template_locals :posts => @posts do %{
|
51
|
+
<%= render_tbody posts do |post| %>
|
52
|
+
<%= data_row post, %w{id title} %>
|
53
|
+
<% end %>
|
54
|
+
}
|
55
|
+
end
|
56
|
+
res.should match /<tbody>/
|
57
|
+
res.should match /<tr>/
|
58
|
+
res.should match /<td>1<\/td>/
|
59
|
+
res.should match /<td>my post<\/td>/
|
60
|
+
# puts res
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
describe '#render_table' do
|
66
|
+
it 'should display a table' do
|
67
|
+
with_engine(:erb) do |e|
|
68
|
+
res = e.run_template_locals :posts => @posts do %{
|
69
|
+
<%= render_table do %>
|
70
|
+
<%= render_tbody posts do |post| %>
|
71
|
+
<%= data_row post, %w{id title} %>
|
72
|
+
<% end %>
|
73
|
+
<% end %>
|
74
|
+
}
|
75
|
+
end
|
76
|
+
res.should match /<table>/
|
77
|
+
res.should match /<tbody>/
|
78
|
+
res.should match /<tr>/
|
79
|
+
res.should match /<td>1<\/td>/
|
80
|
+
res.should match /<td>my post<\/td>/
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
it 'should display a blank table' do
|
85
|
+
with_engine(:erb) do |e|
|
86
|
+
res = e.run_template_locals :posts => @posts do %{
|
87
|
+
<%= render_table do %>
|
88
|
+
hello
|
89
|
+
<% end %>
|
90
|
+
}
|
91
|
+
end
|
92
|
+
res.should match /<table>/
|
93
|
+
res.should match /hello/
|
94
|
+
puts res
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
it 'should display a table with attributes' do
|
99
|
+
with_engine(:erb) do |e|
|
100
|
+
res = e.run_template_locals :posts => @posts do %{
|
101
|
+
<%= render_table :class => 'tables#posts', :id => 'posts_table' do %>
|
102
|
+
<%= render_tbody posts do |post| %>
|
103
|
+
<%= data_row post, %w{id title} %>
|
104
|
+
<% end %>
|
105
|
+
<% end %>
|
106
|
+
}
|
107
|
+
end
|
108
|
+
res.should match /<table class="tables#posts" id="posts_table">/
|
109
|
+
res.should match /<tbody>/
|
110
|
+
res.should match /<tr>/
|
111
|
+
res.should match /<td>1<\/td>/
|
112
|
+
res.should match /<td>my post<\/td>/
|
113
|
+
# puts res
|
114
|
+
end
|
115
|
+
end
|
116
|
+
end
|
117
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
require 'sugar-high/includes'
|
4
|
+
require 'sugar-high/blank'
|
5
|
+
|
6
|
+
require 'easy-table/namespaces'
|
7
|
+
|
8
|
+
require 'easy-table/table'
|
9
|
+
require 'easy-table/row'
|
10
|
+
|
11
|
+
describe EasyTable::ViewExt::Table::Base do
|
12
|
+
extend_view_with EasyTable::ViewExt, :table, :row, :cell, :tag
|
13
|
+
|
14
|
+
before :each do
|
15
|
+
@post = stub(:title => 'my post', :id => 1, :author => 'kristian' )
|
16
|
+
@post2 = stub(:title => 'my other post', :id => 2, :author => 'mike' )
|
17
|
+
|
18
|
+
@posts = [@post, @post2]
|
19
|
+
end
|
20
|
+
|
21
|
+
describe '#data_table' do
|
22
|
+
it 'should display a data table' do
|
23
|
+
with_engine(:erb) do |e|
|
24
|
+
res = e.run_template_locals :posts => @posts do %{
|
25
|
+
<%= data_table posts, %w{Id Title}, :summary => 'many posts', :caption => 'posts table' %>
|
26
|
+
}
|
27
|
+
end
|
28
|
+
res.should match /<table summary="many posts">/
|
29
|
+
res.should match /<tr>/
|
30
|
+
res.should match /<td>1<\/td>/
|
31
|
+
res.should match /<td>my post<\/td>/
|
32
|
+
puts res
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
require 'sugar-high/includes'
|
4
|
+
require 'easy-table/namespaces'
|
5
|
+
|
6
|
+
require 'easy-table/table'
|
7
|
+
require 'easy-table/row'
|
8
|
+
|
9
|
+
describe EasyTable::ViewExt::Table::Base do
|
10
|
+
extend_view_with EasyTable::ViewExt, :table, :row, :cell, :tag
|
11
|
+
|
12
|
+
before :each do
|
13
|
+
@post = stub(:title => 'my post', :id => 1, :author => 'kristian' )
|
14
|
+
@post2 = stub(:title => 'my other post', :id => 2, :author => 'mike' )
|
15
|
+
|
16
|
+
@posts = [@post, @post2]
|
17
|
+
end
|
18
|
+
|
19
|
+
describe '#table' do
|
20
|
+
it 'should display a table' do
|
21
|
+
with_engine(:erb) do |e|
|
22
|
+
res = e.run_template_locals :posts => @posts do %{
|
23
|
+
<%= table posts, %w{id title} do |post| %>
|
24
|
+
<%= data_row post, %w{id title} %>
|
25
|
+
<% end %>
|
26
|
+
}
|
27
|
+
end
|
28
|
+
res.should match /<table>/
|
29
|
+
res.should match /<tr>/
|
30
|
+
res.should match /<td>1<\/td>/
|
31
|
+
res.should match /<td>my post<\/td>/
|
32
|
+
# puts res
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
it 'should display a blank table' do
|
37
|
+
with_engine(:erb) do |e|
|
38
|
+
res = e.run_template_locals :posts => @posts do %{
|
39
|
+
<%= table posts, %w{id title} do %>
|
40
|
+
hello
|
41
|
+
<% end %>
|
42
|
+
}
|
43
|
+
end
|
44
|
+
res.should match /<table>/
|
45
|
+
res.should match /hello/
|
46
|
+
# puts res
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
end
|
51
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'easy-table/namespaces'
|
3
|
+
require 'easy-table/tag'
|
4
|
+
|
5
|
+
describe EasyTable::ViewExt::Tag do
|
6
|
+
extend_view_with EasyTable::ViewExt::Tag
|
7
|
+
|
8
|
+
describe '#do_tag' do
|
9
|
+
it 'should display an tag with NO indent' do
|
10
|
+
with_engine(:erb) do |e|
|
11
|
+
res = e.run_template do %{
|
12
|
+
<%= do_tag :li, :class => 'mine' do %>
|
13
|
+
hello
|
14
|
+
<% end %>
|
15
|
+
}
|
16
|
+
end
|
17
|
+
res.should match(/mine/)
|
18
|
+
res.should match(/hello/)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
describe '#indent_tag' do
|
24
|
+
it 'should display a 2*2 space indented tag' do
|
25
|
+
with_engine(:erb) do |e|
|
26
|
+
res = e.run_template do %{
|
27
|
+
<%= indent_tag 2,:li, :class => 'mine' do %>
|
28
|
+
hello
|
29
|
+
<% end %>
|
30
|
+
}
|
31
|
+
end
|
32
|
+
# should make 4 spaces after new line!
|
33
|
+
res.should match(/\n\s{4}<li/)
|
34
|
+
puts res
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,67 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'easy-table/namespaces'
|
3
|
+
require 'easy-table/util'
|
4
|
+
|
5
|
+
describe EasyTable::ViewExt::Util do
|
6
|
+
extend_view_with EasyTable::ViewExt::Util
|
7
|
+
|
8
|
+
describe '#cycle' do
|
9
|
+
it 'should cycle classes' do
|
10
|
+
with_engine(:erb) do |e|
|
11
|
+
res = e.run_template_locals :options => {:row_classes => %w{class1 class2}} do %{
|
12
|
+
<%= class_option :row_classes, options %>
|
13
|
+
<%= class_option :row_classes, options %>
|
14
|
+
}
|
15
|
+
end
|
16
|
+
res.should match(/class1/)
|
17
|
+
res.should match(/class2/)
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
|
24
|
+
|
25
|
+
describe '#cycle' do
|
26
|
+
it 'should cycle classes' do
|
27
|
+
with_engine(:erb) do |e|
|
28
|
+
res = e.run_template_locals :classes => ["abc", "def"] do %{
|
29
|
+
<%= cycle("abc", "def") %>
|
30
|
+
<%= cycle("abc", "def") %>
|
31
|
+
<%= cycle(*classes) %>
|
32
|
+
<%= cycle(*classes) %>
|
33
|
+
}
|
34
|
+
end
|
35
|
+
res.should match(/abc/)
|
36
|
+
res.should match(/def/)
|
37
|
+
# puts res
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
describe '#get_class' do
|
43
|
+
it 'should cycle classes' do
|
44
|
+
with_engine(:erb) do |e|
|
45
|
+
res = e.run_template do %{
|
46
|
+
<%= get_class("abc", "def") %>
|
47
|
+
<%= get_class("abc", "def") %>
|
48
|
+
}
|
49
|
+
end
|
50
|
+
res.should match(/abc/)
|
51
|
+
res.should match(/def/)
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
it 'should default to odd/even classes when no args' do
|
56
|
+
with_engine(:erb) do |e|
|
57
|
+
res = e.run_template do %{
|
58
|
+
<%= get_class %>
|
59
|
+
<%= get_class %>
|
60
|
+
}
|
61
|
+
end
|
62
|
+
res.should match(/odd/)
|
63
|
+
res.should match(/even/)
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
data/spec/spec_helper.rb
ADDED
metadata
ADDED
@@ -0,0 +1,193 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: easy-table
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 0
|
7
|
+
- 2
|
8
|
+
- 0
|
9
|
+
version: 0.2.0
|
10
|
+
platform: ruby
|
11
|
+
authors:
|
12
|
+
- Kristian Mandrup
|
13
|
+
autorequire:
|
14
|
+
bindir: bin
|
15
|
+
cert_chain: []
|
16
|
+
|
17
|
+
date: 2010-08-26 00:00:00 +02:00
|
18
|
+
default_executable:
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
21
|
+
name: rspec
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
+
none: false
|
25
|
+
requirements:
|
26
|
+
- - ">="
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
segments:
|
29
|
+
- 2
|
30
|
+
- 0
|
31
|
+
- 0
|
32
|
+
- beta
|
33
|
+
- 19
|
34
|
+
version: 2.0.0.beta.19
|
35
|
+
type: :development
|
36
|
+
version_requirements: *id001
|
37
|
+
- !ruby/object:Gem::Dependency
|
38
|
+
name: rspec-action_view
|
39
|
+
prerelease: false
|
40
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ">="
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
segments:
|
46
|
+
- 0
|
47
|
+
- 3
|
48
|
+
- 0
|
49
|
+
version: 0.3.0
|
50
|
+
type: :development
|
51
|
+
version_requirements: *id002
|
52
|
+
- !ruby/object:Gem::Dependency
|
53
|
+
name: rails3_plugin_toolbox
|
54
|
+
prerelease: false
|
55
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
56
|
+
none: false
|
57
|
+
requirements:
|
58
|
+
- - ">="
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
segments:
|
61
|
+
- 0
|
62
|
+
- 3
|
63
|
+
- 4
|
64
|
+
version: 0.3.4
|
65
|
+
type: :runtime
|
66
|
+
version_requirements: *id003
|
67
|
+
- !ruby/object:Gem::Dependency
|
68
|
+
name: activesupport
|
69
|
+
prerelease: false
|
70
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
71
|
+
none: false
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
segments:
|
76
|
+
- 3
|
77
|
+
- 0
|
78
|
+
- 0
|
79
|
+
- rc
|
80
|
+
version: 3.0.0.rc
|
81
|
+
type: :runtime
|
82
|
+
version_requirements: *id004
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: sugar-high
|
85
|
+
prerelease: false
|
86
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
87
|
+
none: false
|
88
|
+
requirements:
|
89
|
+
- - ">="
|
90
|
+
- !ruby/object:Gem::Version
|
91
|
+
segments:
|
92
|
+
- 0
|
93
|
+
- 1
|
94
|
+
- 4
|
95
|
+
version: 0.1.4
|
96
|
+
type: :runtime
|
97
|
+
version_requirements: *id005
|
98
|
+
- !ruby/object:Gem::Dependency
|
99
|
+
name: sugar-high
|
100
|
+
prerelease: false
|
101
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
102
|
+
none: false
|
103
|
+
requirements:
|
104
|
+
- - ">="
|
105
|
+
- !ruby/object:Gem::Version
|
106
|
+
segments:
|
107
|
+
- 0
|
108
|
+
- 1
|
109
|
+
- 4
|
110
|
+
version: 0.1.4
|
111
|
+
type: :runtime
|
112
|
+
version_requirements: *id006
|
113
|
+
description: Makes it easy to add tables to your views using a nice DSL similar to the form helpers
|
114
|
+
email: kmandrup@gmail.com
|
115
|
+
executables: []
|
116
|
+
|
117
|
+
extensions: []
|
118
|
+
|
119
|
+
extra_rdoc_files:
|
120
|
+
- LICENSE
|
121
|
+
- README.markdown
|
122
|
+
files:
|
123
|
+
- .document
|
124
|
+
- .gitignore
|
125
|
+
- .rspec
|
126
|
+
- LICENSE
|
127
|
+
- README.markdown
|
128
|
+
- Rakefile
|
129
|
+
- VERSION
|
130
|
+
- easy-table.gemspec
|
131
|
+
- lib/easy-table.rb
|
132
|
+
- lib/easy-table/cell.rb
|
133
|
+
- lib/easy-table/namespaces.rb
|
134
|
+
- lib/easy-table/rails_config.rb
|
135
|
+
- lib/easy-table/row.rb
|
136
|
+
- lib/easy-table/row/data.rb
|
137
|
+
- lib/easy-table/table.rb
|
138
|
+
- lib/easy-table/table/base.rb
|
139
|
+
- lib/easy-table/table/data_table.rb
|
140
|
+
- lib/easy-table/tag.rb
|
141
|
+
- lib/easy-table/util.rb
|
142
|
+
- lib/easy-table/view_extension.rb
|
143
|
+
- spec/easy-table/cell_spec.rb
|
144
|
+
- spec/easy-table/row/data_row_spec.rb
|
145
|
+
- spec/easy-table/row/row_spec.rb
|
146
|
+
- spec/easy-table/table/base_spec.rb
|
147
|
+
- spec/easy-table/table/data_table_spec.rb
|
148
|
+
- spec/easy-table/table/table_spec.rb
|
149
|
+
- spec/easy-table/tag_spec.rb
|
150
|
+
- spec/easy-table/util_spec.rb
|
151
|
+
- spec/spec_helper.rb
|
152
|
+
has_rdoc: true
|
153
|
+
homepage: http://github.com/kristianmandrup/easy-table
|
154
|
+
licenses: []
|
155
|
+
|
156
|
+
post_install_message:
|
157
|
+
rdoc_options:
|
158
|
+
- --charset=UTF-8
|
159
|
+
require_paths:
|
160
|
+
- lib
|
161
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
162
|
+
none: false
|
163
|
+
requirements:
|
164
|
+
- - ">="
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
segments:
|
167
|
+
- 0
|
168
|
+
version: "0"
|
169
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
170
|
+
none: false
|
171
|
+
requirements:
|
172
|
+
- - ">="
|
173
|
+
- !ruby/object:Gem::Version
|
174
|
+
segments:
|
175
|
+
- 0
|
176
|
+
version: "0"
|
177
|
+
requirements: []
|
178
|
+
|
179
|
+
rubyforge_project:
|
180
|
+
rubygems_version: 1.3.7
|
181
|
+
signing_key:
|
182
|
+
specification_version: 3
|
183
|
+
summary: Simple table helper DSL similar to the well known form helpers
|
184
|
+
test_files:
|
185
|
+
- spec/easy-table/cell_spec.rb
|
186
|
+
- spec/easy-table/row/data_row_spec.rb
|
187
|
+
- spec/easy-table/row/row_spec.rb
|
188
|
+
- spec/easy-table/table/base_spec.rb
|
189
|
+
- spec/easy-table/table/data_table_spec.rb
|
190
|
+
- spec/easy-table/table/table_spec.rb
|
191
|
+
- spec/easy-table/tag_spec.rb
|
192
|
+
- spec/easy-table/util_spec.rb
|
193
|
+
- spec/spec_helper.rb
|