gridion 0.0.1 → 0.0.2
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/lib/gridion/grid_helper.rb +45 -20
- data/lib/gridion/version.rb +1 -1
- metadata +17 -6
data/lib/gridion/grid_helper.rb
CHANGED
@@ -20,6 +20,11 @@ module Gridion
|
|
20
20
|
@footer=block if block_given?
|
21
21
|
@footer
|
22
22
|
end
|
23
|
+
|
24
|
+
def paginator(&block)
|
25
|
+
@paginator=block if block_given?
|
26
|
+
@paginator
|
27
|
+
end
|
23
28
|
|
24
29
|
|
25
30
|
end
|
@@ -27,12 +32,39 @@ module Gridion
|
|
27
32
|
def grid(collection, options={}, &block)
|
28
33
|
grid_binding=GridBinding.new
|
29
34
|
|
35
|
+
initialize_grid_binding(grid_binding)
|
36
|
+
|
37
|
+
content=with_output_buffer {block.call(grid_binding) } if block_given?
|
38
|
+
|
39
|
+
# we need to initialize the procs in the helper context otherwise other helpers inside the proc object (e.g. link_to) wont work
|
40
|
+
|
41
|
+
|
42
|
+
|
43
|
+
unless collection.blank?
|
44
|
+
grid_binding.header.call(collection.first.class, collection, options)
|
45
|
+
|
46
|
+
collection.each {|object| grid_binding.row.call(object.class, object, options) }
|
47
|
+
|
48
|
+
grid_binding.paginator.call(collection.first.class, collection, options) if collection.respond_to?(:current_page) && defined?(Kaminari) # we assume only Kaminari is supported
|
49
|
+
|
50
|
+
|
51
|
+
grid_binding.footer.call(collection.first.class, collection, options)
|
52
|
+
|
53
|
+
end
|
54
|
+
|
55
|
+
return nil
|
56
|
+
|
57
|
+
end
|
58
|
+
def initialize_grid_binding(grid_binding)
|
30
59
|
with_output_buffer do
|
31
60
|
grid_binding.header do |klass, collection, options={}|
|
32
61
|
safe_concat("<table class=\"#{klass.name.downcase}\">")
|
33
62
|
safe_concat("<tr>")
|
63
|
+
|
34
64
|
(options[:columns]||klass.column_names).each do |col|
|
35
|
-
|
65
|
+
col_label=klass.human_attribute_name(col)
|
66
|
+
col_label = sort_link(options[:q], col, col_label) if defined?(:sort_link) && options.has_key?(:q)
|
67
|
+
safe_concat("<th>#{col_label}</th>")
|
36
68
|
end
|
37
69
|
safe_concat("<th>Actions</th>")
|
38
70
|
safe_concat("</tr>")
|
@@ -51,33 +83,26 @@ module Gridion
|
|
51
83
|
|
52
84
|
end
|
53
85
|
|
86
|
+
grid_binding.paginator do |klass, collection, options|
|
87
|
+
colspans=(options[:columns]||klass.column_names).count + 2 #TODO: change this to number of action columns
|
88
|
+
result = ""
|
89
|
+
result << "<tr class=\"footer\">"
|
90
|
+
result << "<td colspan=\"#{colspans}\">"
|
91
|
+
result << paginate(collection)
|
92
|
+
result << "</td>"
|
93
|
+
result << "</tr>"
|
94
|
+
safe_concat(result)
|
95
|
+
end
|
96
|
+
|
54
97
|
grid_binding.footer do |klass, collection, options={}|
|
55
98
|
safe_concat("</table>")
|
56
99
|
end
|
100
|
+
|
57
101
|
|
58
102
|
end
|
59
|
-
|
60
|
-
content=with_output_buffer {block.call(grid_binding) } if block_given?
|
61
|
-
|
62
|
-
# we need to initialize the procs in the helper context otherwise other helpers inside the proc object (e.g. link_to) wont work
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
unless collection.blank?
|
67
|
-
grid_binding.header.call(collection.first.class, collection, options)
|
68
|
-
|
69
|
-
collection.each {|object| grid_binding.row.call(object.class, object, options) }
|
70
|
-
|
71
|
-
grid_binding.footer.call(collection.first.class, collection, options)
|
72
|
-
|
73
|
-
end
|
74
|
-
|
75
|
-
return nil
|
76
|
-
|
77
103
|
end
|
78
104
|
|
79
105
|
|
80
106
|
|
81
|
-
|
82
107
|
end
|
83
108
|
end
|
data/lib/gridion/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gridion
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-09-
|
12
|
+
date: 2011-09-20 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: sqlite3
|
16
|
-
requirement: &
|
16
|
+
requirement: &70140114563720 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,7 +21,18 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70140114563720
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: kaminari
|
27
|
+
requirement: &70140114563280 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
33
|
+
type: :development
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *70140114563280
|
25
36
|
description: Simple grid helper for rails
|
26
37
|
email:
|
27
38
|
- william@tofugear.com
|
@@ -79,7 +90,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
79
90
|
version: '0'
|
80
91
|
segments:
|
81
92
|
- 0
|
82
|
-
hash:
|
93
|
+
hash: 1779692905437522479
|
83
94
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
84
95
|
none: false
|
85
96
|
requirements:
|
@@ -88,7 +99,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
88
99
|
version: '0'
|
89
100
|
segments:
|
90
101
|
- 0
|
91
|
-
hash:
|
102
|
+
hash: 1779692905437522479
|
92
103
|
requirements: []
|
93
104
|
rubyforge_project:
|
94
105
|
rubygems_version: 1.8.10
|