datagrid 1.1.2 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (37) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +20 -0
  3. data/Readme.markdown +2 -0
  4. data/VERSION +1 -1
  5. data/app/views/datagrid/_head.html.erb +1 -1
  6. data/datagrid.gemspec +9 -3
  7. data/lib/datagrid.rb +0 -4
  8. data/lib/datagrid/active_model.rb +2 -1
  9. data/lib/datagrid/column_names_attribute.rb +3 -6
  10. data/lib/datagrid/columns.rb +115 -27
  11. data/lib/datagrid/drivers.rb +1 -1
  12. data/lib/datagrid/drivers/abstract_driver.rb +1 -1
  13. data/lib/datagrid/drivers/active_record.rb +1 -1
  14. data/lib/datagrid/drivers/array.rb +1 -1
  15. data/lib/datagrid/drivers/mongo_mapper.rb +1 -1
  16. data/lib/datagrid/drivers/mongoid.rb +1 -1
  17. data/lib/datagrid/form_builder.rb +15 -1
  18. data/lib/datagrid/helper.rb +45 -11
  19. data/lib/datagrid/renderer.rb +27 -6
  20. data/spec/datagrid/column_names_attribute_spec.rb +6 -0
  21. data/spec/datagrid/columns_spec.rb +103 -0
  22. data/spec/datagrid/drivers/mongo_mapper_spec.rb +1 -1
  23. data/spec/datagrid/drivers/mongoid_spec.rb +1 -1
  24. data/spec/datagrid/filters/date_filter_spec.rb +1 -1
  25. data/spec/datagrid/filters/date_time_filter_spec.rb +2 -2
  26. data/spec/datagrid/form_builder_spec.rb +28 -3
  27. data/spec/datagrid/helper_spec.rb +31 -4
  28. data/spec/spec_helper.rb +33 -2
  29. data/spec/support/matchers.rb +8 -23
  30. data/spec/support/mongo_mapper.rb +0 -4
  31. data/spec/support/mongoid.rb +0 -9
  32. data/spec/support/test_partials/client/datagrid/_form.html.erb +13 -0
  33. data/spec/support/test_partials/client/datagrid/_head.html.erb +9 -0
  34. data/spec/support/test_partials/client/datagrid/_order_for.html.erb +11 -0
  35. data/spec/support/test_partials/client/datagrid/_row.html.erb +6 -0
  36. data/spec/support/test_partials/client/datagrid/_table.html.erb +19 -0
  37. metadata +34 -28
data/spec/spec_helper.rb CHANGED
@@ -1,5 +1,9 @@
1
1
  require 'rubygems'
2
2
  require 'bundler'
3
+ require 'mongoid'
4
+ require 'mongo_mapper'
5
+
6
+
3
7
 
4
8
  begin
5
9
  Bundler.setup(:default, :development)
@@ -35,7 +39,26 @@ end
35
39
 
36
40
  File.open('spec.log', "w").close
37
41
  TEST_LOGGER = Logger.new('spec.log')
42
+ NO_MONGO = ENV['NO_MONGO']
38
43
 
44
+ begin
45
+ Mongoid.from_hash({
46
+ "host" => "localhost",
47
+ "database" =>"datagrid_mongoid",
48
+ "autocreate_indexes" => true,
49
+ "logger" => nil,
50
+ })
51
+ MongoMapper.connection = Mongo::Connection.new('localhost', 27017)
52
+ MongoMapper.database = "datagrid_mongo_mapper"
53
+
54
+ rescue Mongo::ConnectionFailure
55
+ message = "Didn't find mongodb at localhost:27017."
56
+ if NO_MONGO
57
+ warn("MONGODB WARNING: #{message}. Skipping Mongoid and Mongomapper tests.")
58
+ else
59
+ raise "#{message}. Run with NO_MONGO=true env variable to skip mongodb tests"
60
+ end
61
+ end
39
62
 
40
63
  RSpec.configure do |config|
41
64
 
@@ -44,11 +67,19 @@ RSpec.configure do |config|
44
67
  #TODO better database truncation
45
68
  Group.delete_all
46
69
  Entry.delete_all
47
- MongoidEntry.delete_all
48
- MongoMapperEntry.delete_all
70
+ unless NO_MONGO
71
+ MongoidEntry.delete_all
72
+ MongoMapperEntry.delete_all
73
+ end
49
74
 
50
75
  end
51
76
 
77
+ config.treat_symbols_as_metadata_keys_with_true_values = true
78
+
79
+ if NO_MONGO
80
+ config.filter_run_excluding :mongoid => true
81
+ config.filter_run_excluding :mongomapper => true
82
+ end
52
83
 
53
84
  end
54
85
 
@@ -4,33 +4,10 @@ def equal_to_dom(text)
4
4
  EqualToDom.new(text)
5
5
  end
6
6
 
7
-
8
- def include_dom(text)
9
- IncludeDom.new(text)
10
- end
11
-
12
7
  def match_css_pattern(pattern)
13
8
  CssPattern.new(pattern)
14
9
  end
15
10
 
16
-
17
- class IncludeDom
18
- def initialize(expectation)
19
- @expectation = Nokogiri::HTML::DocumentFragment.parse(expectation.strip).to_s
20
- end
21
-
22
- def matches?(text)
23
- @matcher = Nokogiri::HTML::DocumentFragment.parse(text.strip).to_s
24
- @matcher == @expectation
25
- end
26
-
27
- def failure_message
28
- "Expected dom \n#{@matcher.inspect}\n to include \n#{@expectation.inspect}\n, but it wasn't"
29
- end
30
-
31
- end
32
-
33
-
34
11
  class EqualToDom
35
12
 
36
13
  def initialize(expectation)
@@ -47,6 +24,10 @@ class EqualToDom
47
24
  "Expected dom \n#{@matcher}\n to match \n#{@expectation}\n, but it wasn't"
48
25
  end
49
26
 
27
+ def description
28
+ "equal to dom #{@expectation[0..20]}"
29
+ end
30
+
50
31
  private
51
32
 
52
33
  def force_encoding(text)
@@ -101,4 +82,8 @@ class CssPattern
101
82
  def negative_failure_message
102
83
  "Expected do not match dom pattern. But it was"
103
84
  end
85
+
86
+ def description
87
+ "match dom pattern"
88
+ end
104
89
  end
@@ -1,8 +1,4 @@
1
1
  require "rubygems"
2
- require 'mongo_mapper'
3
-
4
- MongoMapper.connection = Mongo::Connection.new('localhost', 27017)
5
- MongoMapper.database = "datagrid_mongo_mapper"
6
2
 
7
3
  class MongoMapperEntry
8
4
  include MongoMapper::Document
@@ -1,13 +1,4 @@
1
1
  require "rubygems"
2
- require 'mongoid'
3
-
4
-
5
- Mongoid.from_hash({
6
- "host" => "localhost",
7
- "database" =>"datagrid_mongoid",
8
- "autocreate_indexes" => true,
9
- "logger" => nil,
10
- })
11
2
 
12
3
  #Mongoid.logger = TEST_LOGGER #TODO: understand why still output to STDOUT
13
4
 
@@ -0,0 +1,13 @@
1
+ <%= form_for grid, options do |f| -%>
2
+ <p>Namespaced form partial.</p>
3
+ <% grid.filters.each do |filter| %>
4
+ <div class="datagrid-filter filter">
5
+ <%= f.datagrid_label filter %>
6
+ <%= f.datagrid_filter filter %>
7
+ </div>
8
+ <% end %>
9
+ <div class="datagrid-actions">
10
+ <%= f.submit I18n.t("datagrid.form.search").html_safe, :class => "datagrid-submit" %>
11
+ <%= link_to I18n.t('datagrid.form.reset').html_safe, url_for(grid.to_param => {}), :class => "datagrid-reset" %>
12
+ </div>
13
+ <% end -%>
@@ -0,0 +1,9 @@
1
+ <tr>
2
+ <p>Namespaced head partial.</p>
3
+ <% grid.html_columns(*options[:columns]).each do |column| %>
4
+ <th class="<%= datagrid_column_classes(grid, column) %>">
5
+ <%= column.header %>
6
+ <%= datagrid_order_for(grid, column, options) if column.order && options[:order]%>
7
+ </th>
8
+ <% end %>
9
+ </tr>
@@ -0,0 +1,11 @@
1
+ <div class="order">
2
+ <p>Namespaced order_for partial.</p>
3
+ <%= link_to(
4
+ I18n.t("datagrid.table.order.asc").html_safe,
5
+ url_for(grid.param_name => grid.as_query.merge(:order => column.name, :descending => false)),
6
+ :class => "asc") %>
7
+ <%= link_to(
8
+ I18n.t("datagrid.table.order.desc").html_safe,
9
+ url_for(grid.param_name => grid.as_query.merge(:order => column.name, :descending => true )),
10
+ :class => "desc") %>
11
+ </div>
@@ -0,0 +1,6 @@
1
+ <tr class="<%= options[:cycle] && cycle(*options[:cycle]) %>">
2
+ <p>Namespaced row partial.</p>
3
+ <% grid.html_columns(*options[:columns]).each do |column| %>
4
+ <td class="<%= datagrid_column_classes(grid, column) %>"><%= datagrid_value(grid, column, asset) %></td>
5
+ <% end %>
6
+ </tr>
@@ -0,0 +1,19 @@
1
+ <%#
2
+ Local variables:
3
+ * grid - instance of Datagrid
4
+ * assets - Array of database Entities
5
+ * options - passed options Hash
6
+ %>
7
+ <p>Namespaced table partial.</p>
8
+ <%= content_tag :table, options[:html] do %>
9
+ <thead>
10
+ <%= datagrid_header(grid, options) %>
11
+ </thead>
12
+ <tbody>
13
+ <% if assets.empty? %>
14
+ <tr><td class="noresults" colspan="100%"><%= I18n.t('datagrid.no_results').html_safe %></td></tr>
15
+ <% else %>
16
+ <%= datagrid_rows(grid, assets, options) %>
17
+ <% end %>
18
+ </tbody>
19
+ <% end %>
metadata CHANGED
@@ -1,139 +1,139 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: datagrid
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.2
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bogdan Gusiev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-03-17 00:00:00.000000000 Z
11
+ date: 2014-05-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '3.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - '>='
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '3.0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '>='
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: jeweler
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - '>='
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - '>='
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: debugger
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - '>='
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - '>='
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: byebug
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - '>='
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
75
  version: '0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - '>='
80
+ - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: ruby-debug
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - '>='
87
+ - - ">="
88
88
  - !ruby/object:Gem::Version
89
89
  version: '0'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - '>='
94
+ - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: rspec
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - '>='
101
+ - - ">="
102
102
  - !ruby/object:Gem::Version
103
103
  version: '0'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - '>='
108
+ - - ">="
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: nokogiri
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - '>='
115
+ - - ">="
116
116
  - !ruby/object:Gem::Version
117
117
  version: '0'
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - '>='
122
+ - - ">="
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: sqlite3-ruby
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
- - - '>='
129
+ - - ">="
130
130
  - !ruby/object:Gem::Version
131
131
  version: '0'
132
132
  type: :development
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
- - - '>='
136
+ - - ">="
137
137
  - !ruby/object:Gem::Version
138
138
  version: '0'
139
139
  - !ruby/object:Gem::Dependency
@@ -154,14 +154,14 @@ dependencies:
154
154
  name: mongo_mapper
155
155
  requirement: !ruby/object:Gem::Requirement
156
156
  requirements:
157
- - - '>='
157
+ - - ">="
158
158
  - !ruby/object:Gem::Version
159
159
  version: 0.11.0
160
160
  type: :development
161
161
  prerelease: false
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
164
- - - '>='
164
+ - - ">="
165
165
  - !ruby/object:Gem::Version
166
166
  version: 0.11.0
167
167
  - !ruby/object:Gem::Dependency
@@ -196,14 +196,14 @@ dependencies:
196
196
  name: fastercsv
197
197
  requirement: !ruby/object:Gem::Requirement
198
198
  requirements:
199
- - - '>='
199
+ - - ">="
200
200
  - !ruby/object:Gem::Version
201
201
  version: '0'
202
202
  type: :development
203
203
  prerelease: false
204
204
  version_requirements: !ruby/object:Gem::Requirement
205
205
  requirements:
206
- - - '>='
206
+ - - ">="
207
207
  - !ruby/object:Gem::Version
208
208
  version: '0'
209
209
  description: This allows you to easily build datagrid aka data tables with sortable
@@ -214,8 +214,9 @@ extensions: []
214
214
  extra_rdoc_files:
215
215
  - LICENSE.txt
216
216
  files:
217
- - .document
218
- - .rspec
217
+ - ".document"
218
+ - ".rspec"
219
+ - ".travis.yml"
219
220
  - Gemfile
220
221
  - LICENSE.txt
221
222
  - Rakefile
@@ -301,6 +302,11 @@ files:
301
302
  - spec/support/mongoid.rb
302
303
  - spec/support/simple_report.rb
303
304
  - spec/support/test_partials/_actions.html.erb
305
+ - spec/support/test_partials/client/datagrid/_form.html.erb
306
+ - spec/support/test_partials/client/datagrid/_head.html.erb
307
+ - spec/support/test_partials/client/datagrid/_order_for.html.erb
308
+ - spec/support/test_partials/client/datagrid/_row.html.erb
309
+ - spec/support/test_partials/client/datagrid/_table.html.erb
304
310
  - templates/controller.rb.erb
305
311
  - templates/grid.rb.erb
306
312
  - templates/index.html.erb
@@ -314,12 +320,12 @@ require_paths:
314
320
  - lib
315
321
  required_ruby_version: !ruby/object:Gem::Requirement
316
322
  requirements:
317
- - - '>='
323
+ - - ">="
318
324
  - !ruby/object:Gem::Version
319
325
  version: '0'
320
326
  required_rubygems_version: !ruby/object:Gem::Requirement
321
327
  requirements:
322
- - - '>='
328
+ - - ">="
323
329
  - !ruby/object:Gem::Version
324
330
  version: '0'
325
331
  requirements: []