datagrid 0.3.4 → 0.3.5
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/Gemfile +1 -0
- data/Gemfile.lock +4 -0
- data/Readme.markdown +18 -12
- data/VERSION +1 -1
- data/datagrid.gemspec +9 -3
- data/lib/datagrid.rb +2 -2
- data/lib/datagrid/{conversion.rb → active_model.rb} +11 -5
- data/lib/datagrid/columns/column.rb +3 -3
- data/lib/datagrid/filters/base_filter.rb +15 -3
- data/lib/datagrid/filters/enum_filter.rb +2 -1
- data/lib/datagrid/filters/string_filter.rb +1 -1
- data/spec/datagrid/active_model_spec.rb +19 -0
- data/spec/datagrid/columns_spec.rb +0 -32
- data/spec/datagrid/filters/enum_filter_spec.rb +19 -0
- data/spec/datagrid/filters_spec.rb +35 -2
- data/spec/datagrid/ordering_spec.rb +59 -0
- data/spec/spec_helper.rb +1 -0
- metadata +22 -5
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -2,6 +2,9 @@ GEM
|
|
2
2
|
remote: http://rubygems.org/
|
3
3
|
specs:
|
4
4
|
abstract (1.0.0)
|
5
|
+
accept_values_for (0.4.3)
|
6
|
+
activemodel (>= 3.0.0)
|
7
|
+
rspec
|
5
8
|
actionmailer (3.0.7)
|
6
9
|
actionpack (= 3.0.7)
|
7
10
|
mail (~> 2.2.15)
|
@@ -97,6 +100,7 @@ PLATFORMS
|
|
97
100
|
ruby
|
98
101
|
|
99
102
|
DEPENDENCIES
|
103
|
+
accept_values_for
|
100
104
|
bundler (~> 1.0.0)
|
101
105
|
fastercsv
|
102
106
|
jeweler (~> 1.6.0)
|
data/Readme.markdown
CHANGED
@@ -20,15 +20,15 @@ In order to create a report, you need to define:
|
|
20
20
|
|
21
21
|
### Working grid example
|
22
22
|
|
23
|
+
[Datagrid DEMO application](https://github.com/bogdan/datagrid-demo) is available.
|
24
|
+
|
23
25
|
In order to create a grid:
|
24
26
|
|
25
27
|
``` ruby
|
26
|
-
|
27
28
|
class SimpleReport
|
28
29
|
|
29
30
|
include Datagrid
|
30
31
|
|
31
|
-
|
32
32
|
scope do
|
33
33
|
User.includes(:group)
|
34
34
|
end
|
@@ -42,7 +42,6 @@ class SimpleReport
|
|
42
42
|
self.joins(:group).where(:groups => {:name => value})
|
43
43
|
end
|
44
44
|
|
45
|
-
|
46
45
|
column(:name)
|
47
46
|
column(:group, :order => "groups.name") do |user|
|
48
47
|
user.name
|
@@ -51,11 +50,7 @@ class SimpleReport
|
|
51
50
|
!user.disabled
|
52
51
|
end
|
53
52
|
|
54
|
-
|
55
|
-
|
56
53
|
end
|
57
|
-
|
58
|
-
|
59
54
|
```
|
60
55
|
|
61
56
|
Basic grid api:
|
@@ -136,18 +131,18 @@ Each column is sortable.
|
|
136
131
|
|
137
132
|
|
138
133
|
In order to create form for your report you can use all set of rails built-in tools.
|
139
|
-
|
140
134
|
More over Datagrid provides you two additional form helpers:
|
141
135
|
|
142
136
|
* datagrid\_label
|
143
137
|
* datagrid\_filter
|
144
138
|
|
145
|
-
The easiest way to create a report form:
|
146
139
|
|
140
|
+
The easiest way to create a report form:
|
147
141
|
(haml for readablity)
|
148
142
|
|
149
143
|
``` haml
|
150
|
-
|
144
|
+
# Method `GET` is recommended for all report forms by default.
|
145
|
+
- form_for @report, :html => {:method => :get} do |f|
|
151
146
|
- @report.filters.each do |filter|
|
152
147
|
%div
|
153
148
|
= f.datagrid_label filter
|
@@ -155,14 +150,25 @@ The easiest way to create a report form:
|
|
155
150
|
= f.submit
|
156
151
|
```
|
157
152
|
|
158
|
-
|
153
|
+
Your controller:
|
159
154
|
|
155
|
+
``` ruby
|
156
|
+
map.resources :simple_reports, :only => [:index]
|
157
|
+
|
158
|
+
class SimpleReportsController < ApplicationController
|
159
|
+
def index
|
160
|
+
@report = SimpleReport.new(params[:simple_report])
|
161
|
+
end
|
162
|
+
end
|
163
|
+
```
|
164
|
+
|
165
|
+
There is a simple helper set of helpers that allows you display report:
|
160
166
|
(require will_paginate)
|
161
167
|
|
162
168
|
``` haml
|
163
169
|
- assets = @report.assets.paginate(:page => params[:page])
|
164
170
|
|
165
|
-
%div== Total #{assets.
|
171
|
+
%div== Total #{assets.total_entries}
|
166
172
|
= datagrid_table(@report, assets)
|
167
173
|
= will_paginate assets
|
168
174
|
```
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.3.
|
1
|
+
0.3.5
|
data/datagrid.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{datagrid}
|
8
|
-
s.version = "0.3.
|
8
|
+
s.version = "0.3.5"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Bogdan Gusiev"]
|
12
|
-
s.date = %q{2011-08-
|
12
|
+
s.date = %q{2011-08-15}
|
13
13
|
s.description = %q{This allows you to easily build datagrid aka data tables with sortable columns and filters}
|
14
14
|
s.email = %q{agresso@gmail.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -26,9 +26,9 @@ Gem::Specification.new do |s|
|
|
26
26
|
"VERSION",
|
27
27
|
"datagrid.gemspec",
|
28
28
|
"lib/datagrid.rb",
|
29
|
+
"lib/datagrid/active_model.rb",
|
29
30
|
"lib/datagrid/columns.rb",
|
30
31
|
"lib/datagrid/columns/column.rb",
|
31
|
-
"lib/datagrid/conversion.rb",
|
32
32
|
"lib/datagrid/core.rb",
|
33
33
|
"lib/datagrid/filters.rb",
|
34
34
|
"lib/datagrid/filters/base_filter.rb",
|
@@ -46,10 +46,13 @@ Gem::Specification.new do |s|
|
|
46
46
|
"lib/datagrid/ordering.rb",
|
47
47
|
"lib/datagrid/rspec.rb",
|
48
48
|
"lib/datagrid/utils.rb",
|
49
|
+
"spec/datagrid/active_model_spec.rb",
|
49
50
|
"spec/datagrid/columns_spec.rb",
|
51
|
+
"spec/datagrid/filters/enum_filter_spec.rb",
|
50
52
|
"spec/datagrid/filters_spec.rb",
|
51
53
|
"spec/datagrid/form_builder_spec.rb",
|
52
54
|
"spec/datagrid/helper_spec.rb",
|
55
|
+
"spec/datagrid/ordering_spec.rb",
|
53
56
|
"spec/datagrid_spec.rb",
|
54
57
|
"spec/spec_helper.rb",
|
55
58
|
"spec/support/equal_to_dom.rb",
|
@@ -79,6 +82,7 @@ Gem::Specification.new do |s|
|
|
79
82
|
s.add_development_dependency(%q<fastercsv>, [">= 0"])
|
80
83
|
s.add_development_dependency(%q<nokogiri>, [">= 0"])
|
81
84
|
s.add_development_dependency(%q<will_paginate>, ["= 2.3.15"])
|
85
|
+
s.add_development_dependency(%q<accept_values_for>, [">= 0"])
|
82
86
|
else
|
83
87
|
s.add_dependency(%q<rails>, [">= 0"])
|
84
88
|
s.add_dependency(%q<rake>, ["= 0.8.7"])
|
@@ -92,6 +96,7 @@ Gem::Specification.new do |s|
|
|
92
96
|
s.add_dependency(%q<fastercsv>, [">= 0"])
|
93
97
|
s.add_dependency(%q<nokogiri>, [">= 0"])
|
94
98
|
s.add_dependency(%q<will_paginate>, ["= 2.3.15"])
|
99
|
+
s.add_dependency(%q<accept_values_for>, [">= 0"])
|
95
100
|
end
|
96
101
|
else
|
97
102
|
s.add_dependency(%q<rails>, [">= 0"])
|
@@ -106,6 +111,7 @@ Gem::Specification.new do |s|
|
|
106
111
|
s.add_dependency(%q<fastercsv>, [">= 0"])
|
107
112
|
s.add_dependency(%q<nokogiri>, [">= 0"])
|
108
113
|
s.add_dependency(%q<will_paginate>, ["= 2.3.15"])
|
114
|
+
s.add_dependency(%q<accept_values_for>, [">= 0"])
|
109
115
|
end
|
110
116
|
end
|
111
117
|
|
data/lib/datagrid.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
require "datagrid/core"
|
2
|
-
require "datagrid/
|
2
|
+
require "datagrid/active_model"
|
3
3
|
require "datagrid/filters"
|
4
4
|
require "datagrid/columns"
|
5
5
|
require "datagrid/ordering"
|
@@ -14,7 +14,7 @@ module Datagrid
|
|
14
14
|
base.class_eval do
|
15
15
|
|
16
16
|
include ::Datagrid::Core
|
17
|
-
include ::Datagrid::
|
17
|
+
include ::Datagrid::ActiveModel
|
18
18
|
include ::Datagrid::Filters
|
19
19
|
include ::Datagrid::Columns
|
20
20
|
include ::Datagrid::Ordering
|
@@ -1,12 +1,17 @@
|
|
1
|
+
|
1
2
|
module Datagrid
|
2
3
|
|
3
4
|
# Required to be ActiveModel compatible
|
4
|
-
module
|
5
|
+
module ActiveModel
|
5
6
|
|
6
7
|
def self.included(base)
|
7
8
|
base.extend ClassMethods
|
8
9
|
base.class_eval do
|
9
|
-
|
10
|
+
begin
|
11
|
+
require 'active_model/naming'
|
12
|
+
extend ::ActiveModel::Naming
|
13
|
+
rescue LoadError
|
14
|
+
end
|
10
15
|
end
|
11
16
|
base.send :include, InstanceMethods
|
12
17
|
end # self.included
|
@@ -17,9 +22,6 @@ module Datagrid
|
|
17
22
|
self.to_s.underscore.split('/').last
|
18
23
|
end
|
19
24
|
|
20
|
-
def model_name
|
21
|
-
self.param_name
|
22
|
-
end
|
23
25
|
|
24
26
|
end # ClassMethods
|
25
27
|
|
@@ -29,6 +31,10 @@ module Datagrid
|
|
29
31
|
self.class.param_name
|
30
32
|
end
|
31
33
|
|
34
|
+
def param_key
|
35
|
+
param_name
|
36
|
+
end
|
37
|
+
|
32
38
|
def to_key
|
33
39
|
[self.class.param_name]
|
34
40
|
end
|
@@ -5,7 +5,7 @@ class Datagrid::Columns::Column
|
|
5
5
|
|
6
6
|
def initialize(grid, name, options = {}, &block)
|
7
7
|
self.grid = grid
|
8
|
-
self.name = name
|
8
|
+
self.name = name.to_sym
|
9
9
|
self.options = options
|
10
10
|
self.block = block
|
11
11
|
end
|
@@ -45,9 +45,9 @@ class Datagrid::Columns::Column
|
|
45
45
|
end
|
46
46
|
end
|
47
47
|
|
48
|
-
def
|
48
|
+
def order_desc
|
49
49
|
return nil unless order
|
50
|
-
self.options[:
|
50
|
+
self.options[:order_desc]
|
51
51
|
end
|
52
52
|
|
53
53
|
end
|
@@ -16,8 +16,11 @@ class Datagrid::Filters::BaseFilter
|
|
16
16
|
end
|
17
17
|
|
18
18
|
def apply(scope, value)
|
19
|
-
|
20
|
-
|
19
|
+
if value.nil?
|
20
|
+
return scope if !allow_nil?
|
21
|
+
else
|
22
|
+
return scope if value.blank? && !allow_blank?
|
23
|
+
end
|
21
24
|
::Datagrid::Filters::FilterEval.new(self, scope, value).run
|
22
25
|
end
|
23
26
|
|
@@ -25,7 +28,7 @@ class Datagrid::Filters::BaseFilter
|
|
25
28
|
if !self.multiple && value.is_a?(Array)
|
26
29
|
raise Datagrid::ArgumentError, "#{grid.class}.#{name} filter can not accept Array argument. Use :multiple option."
|
27
30
|
end
|
28
|
-
values = Array(value)
|
31
|
+
values = Array.wrap(value)
|
29
32
|
values.map! do |value|
|
30
33
|
self.format(value)
|
31
34
|
end
|
@@ -45,5 +48,14 @@ class Datagrid::Filters::BaseFilter
|
|
45
48
|
def multiple
|
46
49
|
self.options[:multiple]
|
47
50
|
end
|
51
|
+
|
52
|
+
def allow_nil?
|
53
|
+
options.has_key?(:allow_nil) ? options[:allow_nil] : options[:allow_blank]
|
54
|
+
end
|
55
|
+
|
56
|
+
def allow_blank?
|
57
|
+
options[:allow_blank]
|
58
|
+
end
|
59
|
+
|
48
60
|
end
|
49
61
|
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Datagrid::ActiveModel do
|
4
|
+
|
5
|
+
class ActiveReport
|
6
|
+
include Datagrid::ActiveModel
|
7
|
+
end
|
8
|
+
|
9
|
+
describe ".model_name" do
|
10
|
+
it "should be generate from class name " do
|
11
|
+
ActiveReport.model_name.should == "ActiveReport"
|
12
|
+
end
|
13
|
+
it "should have ActiveModel naming conventions" do
|
14
|
+
ActiveReport.model_name.i18n_key.should == :active_report
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
|
19
|
+
end
|
@@ -49,37 +49,5 @@ describe Datagrid::Columns do
|
|
49
49
|
report.rows.last.first.should be_false
|
50
50
|
end
|
51
51
|
|
52
|
-
describe "ordering" do
|
53
|
-
|
54
|
-
|
55
|
-
it "should raise error if ordered by not existing column" do
|
56
|
-
lambda {
|
57
|
-
test_report(:order => :hello)
|
58
|
-
}.should raise_error(Datagrid::OrderUnsupported)
|
59
|
-
end
|
60
|
-
|
61
|
-
it "should raise error if ordered by column without order" do
|
62
|
-
lambda do
|
63
|
-
test_report(:order => :category) do
|
64
|
-
filter(:category, :default, :order => false) do |value|
|
65
|
-
self
|
66
|
-
end
|
67
|
-
end
|
68
|
-
end.should raise_error(Datagrid::OrderUnsupported)
|
69
|
-
end
|
70
|
-
|
71
|
-
it "should override default order" do
|
72
|
-
Entry.all.should be_empty
|
73
|
-
e1 = Entry.create!
|
74
|
-
e2 = Entry.create!
|
75
|
-
test_report(:order => :id) do
|
76
|
-
scope { Entry.order("id desc")}
|
77
|
-
column(:id) do
|
78
|
-
self.order("id asc")
|
79
|
-
end
|
80
|
-
end.assets.all.should == [e1, e2]
|
81
|
-
end
|
82
|
-
|
83
|
-
end
|
84
52
|
|
85
53
|
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Datagrid::Filters::EnumFilter do
|
4
|
+
|
5
|
+
it "should support select option" do
|
6
|
+
test_report do
|
7
|
+
scope {Entry}
|
8
|
+
filter(:group_id, :enum, :select => [1,2] )
|
9
|
+
end.class.filter_by_name(:group_id).select.should == [1,2]
|
10
|
+
end
|
11
|
+
|
12
|
+
it "should support select option as proc" do
|
13
|
+
test_report do
|
14
|
+
scope {Entry}
|
15
|
+
filter(:group_id, :enum, :select => proc { [1,2] })
|
16
|
+
end.class.filter_by_name(:group_id).select.should == [1,2]
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
@@ -18,7 +18,7 @@ describe Datagrid::Filters do
|
|
18
18
|
report.group_id = [1,2]
|
19
19
|
}.should raise_error(Datagrid::ArgumentError)
|
20
20
|
end
|
21
|
-
|
21
|
+
|
22
22
|
|
23
23
|
it "should initialize report Scope table not exists" do
|
24
24
|
class ModelWithoutTable < ActiveRecord::Base; end
|
@@ -31,7 +31,40 @@ describe Datagrid::Filters do
|
|
31
31
|
filter(:name)
|
32
32
|
end
|
33
33
|
TheReport.new(:name => 'hello')
|
34
|
+
end
|
35
|
+
|
36
|
+
describe "allow_blank and allow_nil options" do
|
37
|
+
before(:each) do
|
38
|
+
$FILTER_PERFORMED = false
|
39
|
+
end
|
40
|
+
|
41
|
+
def check_performed(value, result, options)
|
42
|
+
report = test_report(:name => value) do
|
43
|
+
scope {Entry}
|
44
|
+
filter(:name, options) do |value|
|
45
|
+
$FILTER_PERFORMED = true
|
46
|
+
self
|
47
|
+
end
|
48
|
+
end
|
49
|
+
report.name.should == value
|
50
|
+
report.assets
|
51
|
+
$FILTER_PERFORMED.should == result
|
52
|
+
end
|
34
53
|
|
54
|
+
it "should support allow_blank argument" do
|
55
|
+
[nil, "", " "].each do |value|
|
56
|
+
check_performed(value, true, :allow_blank => true)
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
it "should support allow_blank argument" do
|
61
|
+
check_performed(nil, true, :allow_nil => true)
|
62
|
+
end
|
63
|
+
|
64
|
+
it "should support combination on allow_nil and allow_blank" do
|
65
|
+
check_performed(nil, false, :allow_nil => false, :allow_blank => true)
|
66
|
+
check_performed("", true, :allow_nil => false, :allow_blank => true)
|
67
|
+
check_performed(nil, true, :allow_nil => true, :allow_blank => false)
|
68
|
+
end
|
35
69
|
end
|
36
|
-
|
37
70
|
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Datagrid::Ordering do
|
4
|
+
|
5
|
+
|
6
|
+
let!(:first) { Entry.create!(:name => "aa")}
|
7
|
+
let!(:second) { Entry.create!(:name => "bb")}
|
8
|
+
let!(:third) { Entry.create!(:name => "cc")}
|
9
|
+
|
10
|
+
|
11
|
+
it "should support order" do
|
12
|
+
test_report(:order => "name") do
|
13
|
+
scope do
|
14
|
+
Entry
|
15
|
+
end
|
16
|
+
column :name
|
17
|
+
end.assets.should discover(first, second, third).with_exact_order
|
18
|
+
|
19
|
+
end
|
20
|
+
|
21
|
+
it "should support desc order" do
|
22
|
+
test_report(:order => "name", :descending => true) do
|
23
|
+
scope do
|
24
|
+
Entry
|
25
|
+
end
|
26
|
+
column :name
|
27
|
+
end.assets.should discover(third, second, first).with_exact_order
|
28
|
+
|
29
|
+
|
30
|
+
end
|
31
|
+
|
32
|
+
|
33
|
+
it "should raise error if ordered by not existing column" do
|
34
|
+
lambda {
|
35
|
+
test_report(:order => :hello)
|
36
|
+
}.should raise_error(Datagrid::OrderUnsupported)
|
37
|
+
end
|
38
|
+
|
39
|
+
it "should raise error if ordered by column without order" do
|
40
|
+
lambda do
|
41
|
+
test_report(:order => :category) do
|
42
|
+
filter(:category, :default, :order => false) do |value|
|
43
|
+
self
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end.should raise_error(Datagrid::OrderUnsupported)
|
47
|
+
end
|
48
|
+
|
49
|
+
it "should override default order" do
|
50
|
+
|
51
|
+
test_report(:order => :id) do
|
52
|
+
scope { Entry.order("id desc")}
|
53
|
+
column(:id) do
|
54
|
+
self.order("id asc")
|
55
|
+
end
|
56
|
+
end.assets.should discover(first, second, third).with_exact_order
|
57
|
+
end
|
58
|
+
|
59
|
+
end
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: datagrid
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 25
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 3
|
9
|
-
-
|
10
|
-
version: 0.3.
|
9
|
+
- 5
|
10
|
+
version: 0.3.5
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Bogdan Gusiev
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-08-
|
18
|
+
date: 2011-08-15 00:00:00 +03:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -196,6 +196,20 @@ dependencies:
|
|
196
196
|
type: :development
|
197
197
|
name: will_paginate
|
198
198
|
prerelease: false
|
199
|
+
- !ruby/object:Gem::Dependency
|
200
|
+
version_requirements: &id013 !ruby/object:Gem::Requirement
|
201
|
+
none: false
|
202
|
+
requirements:
|
203
|
+
- - ">="
|
204
|
+
- !ruby/object:Gem::Version
|
205
|
+
hash: 3
|
206
|
+
segments:
|
207
|
+
- 0
|
208
|
+
version: "0"
|
209
|
+
requirement: *id013
|
210
|
+
type: :development
|
211
|
+
name: accept_values_for
|
212
|
+
prerelease: false
|
199
213
|
description: This allows you to easily build datagrid aka data tables with sortable columns and filters
|
200
214
|
email: agresso@gmail.com
|
201
215
|
executables: []
|
@@ -215,9 +229,9 @@ files:
|
|
215
229
|
- VERSION
|
216
230
|
- datagrid.gemspec
|
217
231
|
- lib/datagrid.rb
|
232
|
+
- lib/datagrid/active_model.rb
|
218
233
|
- lib/datagrid/columns.rb
|
219
234
|
- lib/datagrid/columns/column.rb
|
220
|
-
- lib/datagrid/conversion.rb
|
221
235
|
- lib/datagrid/core.rb
|
222
236
|
- lib/datagrid/filters.rb
|
223
237
|
- lib/datagrid/filters/base_filter.rb
|
@@ -235,10 +249,13 @@ files:
|
|
235
249
|
- lib/datagrid/ordering.rb
|
236
250
|
- lib/datagrid/rspec.rb
|
237
251
|
- lib/datagrid/utils.rb
|
252
|
+
- spec/datagrid/active_model_spec.rb
|
238
253
|
- spec/datagrid/columns_spec.rb
|
254
|
+
- spec/datagrid/filters/enum_filter_spec.rb
|
239
255
|
- spec/datagrid/filters_spec.rb
|
240
256
|
- spec/datagrid/form_builder_spec.rb
|
241
257
|
- spec/datagrid/helper_spec.rb
|
258
|
+
- spec/datagrid/ordering_spec.rb
|
242
259
|
- spec/datagrid_spec.rb
|
243
260
|
- spec/spec_helper.rb
|
244
261
|
- spec/support/equal_to_dom.rb
|