datagrid 0.6.2 → 0.6.3
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 -1
- data/VERSION +1 -1
- data/app/views/datagrid/_head.html.erb +1 -1
- data/app/views/datagrid/_row.html.erb +1 -1
- data/app/views/datagrid/_table.html.erb +4 -0
- data/datagrid.gemspec +2 -2
- data/lib/datagrid/columns.rb +21 -7
- data/lib/datagrid/columns/column.rb +3 -1
- data/lib/datagrid/core.rb +20 -14
- data/lib/datagrid/drivers/abstract_driver.rb +3 -0
- data/lib/datagrid/drivers/active_record.rb +7 -1
- data/lib/datagrid/drivers/mongo_mapper.rb +5 -1
- data/lib/datagrid/drivers/mongoid.rb +5 -1
- data/lib/datagrid/filters.rb +17 -7
- data/lib/datagrid/filters/boolean_enum_filter.rb +5 -6
- data/spec/datagrid/columns_spec.rb +15 -0
- data/spec/datagrid/filters/boolean_enum_filter_spec.rb +1 -1
- data/spec/datagrid/filters_spec.rb +27 -1
- data/spec/datagrid/form_builder_spec.rb +3 -3
- data/spec/datagrid/helper_spec.rb +39 -0
- data/spec/support/matchers.rb +4 -0
- metadata +31 -31
data/Gemfile
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.6.
|
1
|
+
0.6.3
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<tr class="<%= options[:cycle] && cycle(*options[:cycle]) %>">
|
2
|
-
<% grid.columns.each do |column| %>
|
2
|
+
<% grid.columns(*options[:columns]).each do |column| %>
|
3
3
|
<td class="<%= datagrid_column_classes(grid, column) %>"><%= datagrid_format_value(grid, column, asset) %></td>
|
4
4
|
<% end %>
|
5
5
|
</tr>
|
@@ -9,6 +9,10 @@ Local variables:
|
|
9
9
|
<%= datagrid_header(grid, options) %>
|
10
10
|
</thead>
|
11
11
|
<tbody>
|
12
|
+
<% if grid.rows.empty? %>
|
13
|
+
<tr><td class="noresults" colspan="100%"><%= I18n.t 'datagrid.no_results', :default => '——'.html_safe %></td></tr>
|
14
|
+
<% else %>
|
12
15
|
<%= datagrid_rows(grid, assets, options) %>
|
16
|
+
<% end %>
|
13
17
|
</tbody>
|
14
18
|
<% end %>
|
data/datagrid.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "datagrid"
|
8
|
-
s.version = "0.6.
|
8
|
+
s.version = "0.6.3"
|
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 = "2012-
|
12
|
+
s.date = "2012-08-28"
|
13
13
|
s.description = "This allows you to easily build datagrid aka data tables with sortable columns and filters"
|
14
14
|
s.email = "agresso@gmail.com"
|
15
15
|
s.extra_rdoc_files = [
|
data/lib/datagrid/columns.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require "datagrid/utils"
|
2
|
+
require "active_support/core_ext/class/attribute"
|
2
3
|
|
3
4
|
module Datagrid
|
4
5
|
|
@@ -10,6 +11,8 @@ module Datagrid
|
|
10
11
|
base.class_eval do
|
11
12
|
|
12
13
|
include Datagrid::Core
|
14
|
+
class_attribute :columns_array
|
15
|
+
self.columns_array = []
|
13
16
|
|
14
17
|
end
|
15
18
|
base.send :include, InstanceMethods
|
@@ -17,9 +20,12 @@ module Datagrid
|
|
17
20
|
|
18
21
|
module ClassMethods
|
19
22
|
|
20
|
-
def columns(
|
21
|
-
|
22
|
-
|
23
|
+
def columns(*args)
|
24
|
+
options = args.extract_options!
|
25
|
+
args.compact!
|
26
|
+
args.map!(&:to_sym)
|
27
|
+
columns_array.select do |column|
|
28
|
+
(!options[:data] || column.data?) && (args.empty? || args.include?(column.name))
|
23
29
|
end
|
24
30
|
end
|
25
31
|
|
@@ -28,8 +34,7 @@ module Datagrid
|
|
28
34
|
block ||= lambda do |model|
|
29
35
|
model.send(name)
|
30
36
|
end
|
31
|
-
|
32
|
-
@columns << Datagrid::Columns::Column.new(self, name, options, &block)
|
37
|
+
columns_array << Datagrid::Columns::Column.new(self, name, options, &block)
|
33
38
|
end
|
34
39
|
|
35
40
|
def column_by_name(name)
|
@@ -37,6 +42,12 @@ module Datagrid
|
|
37
42
|
col.name.to_sym == name.to_sym
|
38
43
|
end
|
39
44
|
end
|
45
|
+
|
46
|
+
def inherited(child_class)
|
47
|
+
super(child_class)
|
48
|
+
child_class.columns_array = self.columns_array.clone
|
49
|
+
end
|
50
|
+
|
40
51
|
end # ClassMethods
|
41
52
|
|
42
53
|
module InstanceMethods
|
@@ -62,16 +73,19 @@ module Datagrid
|
|
62
73
|
result
|
63
74
|
end
|
64
75
|
|
76
|
+
# Returns Array of Arrays with data for each row in datagrid assets without header.
|
65
77
|
def rows
|
66
78
|
self.assets.map do |asset|
|
67
79
|
self.row_for(asset)
|
68
80
|
end
|
69
81
|
end
|
70
82
|
|
83
|
+
# Returns Array of Arrays with data for each row in datagrid assets with header.
|
71
84
|
def data
|
72
85
|
self.rows.unshift(self.header)
|
73
86
|
end
|
74
87
|
|
88
|
+
# Return Array of Hashes where keys are column names and values are column values for each row in datagrid <tt>#assets</tt>
|
75
89
|
def data_hash
|
76
90
|
self.assets.map do |asset|
|
77
91
|
hash_for(asset)
|
@@ -95,8 +109,8 @@ module Datagrid
|
|
95
109
|
end
|
96
110
|
end
|
97
111
|
|
98
|
-
def columns(
|
99
|
-
self.class.columns(
|
112
|
+
def columns(*args)
|
113
|
+
self.class.columns(*args)
|
100
114
|
end
|
101
115
|
|
102
116
|
def data_columns
|
data/lib/datagrid/core.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require "datagrid/drivers"
|
2
|
+
require "active_support/core_ext/class/attribute"
|
2
3
|
|
3
4
|
module Datagrid
|
4
5
|
module Core
|
@@ -6,7 +7,9 @@ module Datagrid
|
|
6
7
|
def self.included(base)
|
7
8
|
base.extend ClassMethods
|
8
9
|
base.class_eval do
|
9
|
-
|
10
|
+
class_attribute :scope_value
|
11
|
+
class_attribute :datagrid_attributes
|
12
|
+
self.datagrid_attributes = []
|
10
13
|
end
|
11
14
|
base.send :include, InstanceMethods
|
12
15
|
end # self.included
|
@@ -29,16 +32,12 @@ module Datagrid
|
|
29
32
|
end
|
30
33
|
end
|
31
34
|
|
32
|
-
def datagrid_attributes
|
33
|
-
@datagrid_attributes ||= []
|
34
|
-
end
|
35
|
-
|
36
35
|
def scope(&block)
|
37
36
|
if block
|
38
|
-
|
37
|
+
self.scope_value = block
|
39
38
|
else
|
40
39
|
check_scope_defined!
|
41
|
-
|
40
|
+
scope_value.call
|
42
41
|
end
|
43
42
|
end
|
44
43
|
|
@@ -47,8 +46,14 @@ module Datagrid
|
|
47
46
|
end
|
48
47
|
|
49
48
|
protected
|
50
|
-
def check_scope_defined!(message =
|
51
|
-
|
49
|
+
def check_scope_defined!(message = nil)
|
50
|
+
message ||= "Scope not defined"
|
51
|
+
raise(Datagrid::ConfigurationError, message) unless scope_value
|
52
|
+
end
|
53
|
+
|
54
|
+
def inherited(child_class)
|
55
|
+
super(child_class)
|
56
|
+
child_class.datagrid_attributes = self.datagrid_attributes.clone
|
52
57
|
end
|
53
58
|
|
54
59
|
end # ClassMethods
|
@@ -65,7 +70,7 @@ module Datagrid
|
|
65
70
|
|
66
71
|
def attributes
|
67
72
|
result = {}
|
68
|
-
self.
|
73
|
+
self.datagrid_attributes.each do |name|
|
69
74
|
result[name] = self[name]
|
70
75
|
end
|
71
76
|
result
|
@@ -96,9 +101,10 @@ module Datagrid
|
|
96
101
|
|
97
102
|
def scope(&block)
|
98
103
|
if block_given?
|
99
|
-
|
104
|
+
self.scope_value = block
|
100
105
|
else
|
101
|
-
|
106
|
+
check_scope_defined!
|
107
|
+
scope_value.call
|
102
108
|
end
|
103
109
|
end
|
104
110
|
|
@@ -106,8 +112,8 @@ module Datagrid
|
|
106
112
|
self.class.driver
|
107
113
|
end
|
108
114
|
|
109
|
-
def check_scope_defined!(message)
|
110
|
-
self.class.check_scope_defined
|
115
|
+
def check_scope_defined!(message = nil)
|
116
|
+
self.class.send :check_scope_defined!, message
|
111
117
|
end
|
112
118
|
|
113
119
|
end # InstanceMethods
|
@@ -30,7 +30,7 @@ module Datagrid
|
|
30
30
|
end
|
31
31
|
|
32
32
|
def default_order(scope, column_name)
|
33
|
-
|
33
|
+
has_column?(scope, column_name) ? [scope.table_name, column_name].join(".") : nil
|
34
34
|
end
|
35
35
|
|
36
36
|
def greater_equal(scope, field, value)
|
@@ -40,6 +40,12 @@ module Datagrid
|
|
40
40
|
def less_equal(scope, field, value)
|
41
41
|
scope.where(["#{field} <= ?", value])
|
42
42
|
end
|
43
|
+
|
44
|
+
def has_column?(scope, column_name)
|
45
|
+
scope.column_names.include?(column_name.to_s)
|
46
|
+
rescue ::ActiveRecord::StatementInvalid
|
47
|
+
false
|
48
|
+
end
|
43
49
|
end
|
44
50
|
end
|
45
51
|
end
|
@@ -28,7 +28,7 @@ module Datagrid
|
|
28
28
|
end
|
29
29
|
|
30
30
|
def default_order(scope, column_name)
|
31
|
-
|
31
|
+
has_column?(scope, column_name) ? column_name : nil
|
32
32
|
end
|
33
33
|
|
34
34
|
def greater_equal(scope, field, value)
|
@@ -38,6 +38,10 @@ module Datagrid
|
|
38
38
|
def less_equal(scope, field, value)
|
39
39
|
scope.where(field => {"$lte" => value})
|
40
40
|
end
|
41
|
+
|
42
|
+
def has_column?(scope, column_name)
|
43
|
+
scope.key?(column_name)
|
44
|
+
end
|
41
45
|
end
|
42
46
|
end
|
43
47
|
end
|
@@ -28,7 +28,7 @@ module Datagrid
|
|
28
28
|
end
|
29
29
|
|
30
30
|
def default_order(scope, column_name)
|
31
|
-
|
31
|
+
has_column?(scope, column_name) ? column_name : nil
|
32
32
|
end
|
33
33
|
|
34
34
|
def greater_equal(scope, field, value)
|
@@ -38,6 +38,10 @@ module Datagrid
|
|
38
38
|
def less_equal(scope, field, value)
|
39
39
|
scope.where(field => {"$lte" => value})
|
40
40
|
end
|
41
|
+
|
42
|
+
def has_column?(scope, column_name)
|
43
|
+
to_scope(scope).klass.fields.keys.include?(column_name.to_s)
|
44
|
+
end
|
41
45
|
end
|
42
46
|
end
|
43
47
|
end
|
data/lib/datagrid/filters.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
require "active_support/core_ext/class/attribute"
|
2
|
+
|
1
3
|
module Datagrid
|
2
4
|
module Filters
|
3
5
|
|
@@ -29,6 +31,8 @@ module Datagrid
|
|
29
31
|
|
30
32
|
include Datagrid::Core
|
31
33
|
include Datagrid::Filters::CompositeFilters
|
34
|
+
class_attribute :filters
|
35
|
+
self.filters = []
|
32
36
|
|
33
37
|
end
|
34
38
|
base.send :include, InstanceMethods
|
@@ -36,17 +40,12 @@ module Datagrid
|
|
36
40
|
|
37
41
|
module ClassMethods
|
38
42
|
|
39
|
-
def filters
|
40
|
-
@filters ||= []
|
41
|
-
end
|
42
|
-
|
43
43
|
def filter_by_name(attribute)
|
44
44
|
self.filters.find do |filter|
|
45
45
|
filter.name.to_sym == attribute.to_sym
|
46
46
|
end
|
47
47
|
end
|
48
48
|
|
49
|
-
|
50
49
|
def filter(attribute, *args, &block)
|
51
50
|
options = args.extract_options!
|
52
51
|
type = args.shift || :default
|
@@ -68,11 +67,22 @@ module Datagrid
|
|
68
67
|
protected
|
69
68
|
def default_filter(attribute)
|
70
69
|
check_scope_defined!("Scope should be defined before filters")
|
71
|
-
|
72
|
-
|
70
|
+
if !driver.has_column?(scope, attribute) && driver.to_scope(scope).respond_to?(attribute)
|
71
|
+
lambda do |value, scope, grid|
|
72
|
+
grid.driver.to_scope(scope).send(attribute, value)
|
73
|
+
end
|
74
|
+
else
|
75
|
+
lambda do |value, scope, grid|
|
76
|
+
grid.driver.where(scope, attribute => value)
|
77
|
+
end
|
73
78
|
end
|
74
79
|
end
|
75
80
|
|
81
|
+
def inherited(child_class)
|
82
|
+
super(child_class)
|
83
|
+
child_class.filters = self.filters.clone
|
84
|
+
end
|
85
|
+
|
76
86
|
end # ClassMethods
|
77
87
|
|
78
88
|
module InstanceMethods
|
@@ -2,21 +2,20 @@ class Datagrid::Filters::BooleanEnumFilter < Datagrid::Filters::EnumFilter
|
|
2
2
|
|
3
3
|
YES = "YES"
|
4
4
|
NO = "NO"
|
5
|
-
VALUES = ActiveSupport::OrderedHash.new
|
6
|
-
VALUES[YES] = YES
|
7
|
-
VALUES[NO] = NO
|
8
5
|
|
9
6
|
def initialize(report, attribute, options = {}, &block)
|
10
|
-
options[:select] =
|
7
|
+
options[:select] = [YES, NO].map do |key, value|
|
8
|
+
[I18n.t("datagrid.filters.eboolean.#{key.downcase}", :default => key.humanize), key]
|
9
|
+
end
|
11
10
|
super(report, attribute, options, &block)
|
12
11
|
end
|
13
12
|
|
14
13
|
def apply(grid_object, scope, value)
|
15
|
-
super(grid_object, scope,
|
14
|
+
super(grid_object, scope, value)
|
16
15
|
end
|
17
16
|
|
18
17
|
def to_boolean(value)
|
19
|
-
|
18
|
+
#TODO decide what to do with conversion
|
20
19
|
end
|
21
20
|
|
22
21
|
end
|
@@ -60,5 +60,20 @@ describe Datagrid::Columns do
|
|
60
60
|
report.rows.last.first.should be_false
|
61
61
|
end
|
62
62
|
|
63
|
+
it "should inherit columns correctly" do
|
64
|
+
parent = Class.new do
|
65
|
+
include Datagrid
|
66
|
+
scope { Entry }
|
67
|
+
column(:name)
|
68
|
+
end
|
69
|
+
|
70
|
+
child = Class.new(parent) do
|
71
|
+
column(:group_id)
|
72
|
+
end
|
73
|
+
parent.column_by_name(:name).should_not be_nil
|
74
|
+
parent.column_by_name(:group_id).should be_nil
|
75
|
+
child.column_by_name(:name).should_not be_nil
|
76
|
+
child.column_by_name(:group_id).should_not be_nil
|
77
|
+
end
|
63
78
|
|
64
79
|
end
|
@@ -33,7 +33,7 @@ describe Datagrid::Filters do
|
|
33
33
|
report = test_report do
|
34
34
|
scope {Entry}
|
35
35
|
filter(:group_id, :integer) do |value, scope|
|
36
|
-
scope.where(group_id
|
36
|
+
scope.where(:group_id => value)
|
37
37
|
end
|
38
38
|
end
|
39
39
|
lambda {
|
@@ -55,6 +55,19 @@ describe Datagrid::Filters do
|
|
55
55
|
TheReport.new(:name => 'hello')
|
56
56
|
end
|
57
57
|
|
58
|
+
it "should support inheritence" do
|
59
|
+
parent = Class.new do
|
60
|
+
include Datagrid
|
61
|
+
scope {Entry}
|
62
|
+
filter(:name)
|
63
|
+
end
|
64
|
+
child = Class.new(parent) do
|
65
|
+
filter(:group_id)
|
66
|
+
end
|
67
|
+
parent.filters.size.should == 1
|
68
|
+
child.filters.size.should == 2
|
69
|
+
end
|
70
|
+
|
58
71
|
describe "allow_blank and allow_nil options" do
|
59
72
|
|
60
73
|
def check_performed(value, result, options)
|
@@ -87,4 +100,17 @@ describe Datagrid::Filters do
|
|
87
100
|
check_performed(nil, true, :allow_nil => true, :allow_blank => false)
|
88
101
|
end
|
89
102
|
end
|
103
|
+
|
104
|
+
describe "default filter as scope" do
|
105
|
+
it "should create default filter if scope respond to filter name method" do
|
106
|
+
Entry.create!
|
107
|
+
Entry.create!
|
108
|
+
grid = test_report(:limit => 1) do
|
109
|
+
scope {Entry}
|
110
|
+
filter(:limit)
|
111
|
+
end
|
112
|
+
grid.assets.to_a.size.should == 1
|
113
|
+
end
|
114
|
+
|
115
|
+
end
|
90
116
|
end
|
@@ -21,7 +21,7 @@ describe Datagrid::FormBuilder do
|
|
21
21
|
|
22
22
|
it "should work for every filter type" do
|
23
23
|
Datagrid::Filters::FILTER_TYPES.each do |type, klass|
|
24
|
-
Datagrid::FormBuilder.instance_methods.should include(klass.form_builder_helper_name)
|
24
|
+
Datagrid::FormBuilder.instance_methods.map(&:to_sym).should include(klass.form_builder_helper_name)
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
@@ -103,8 +103,8 @@ describe Datagrid::FormBuilder do
|
|
103
103
|
end
|
104
104
|
it { should equal_to_dom(
|
105
105
|
'<select class="disabled boolean_enum_filter" id="report_disabled" name="report[disabled]"><option value=""></option>
|
106
|
-
<option value="YES">
|
107
|
-
<option value="NO">
|
106
|
+
<option value="YES">Yes</option>
|
107
|
+
<option value="NO">No</option></select>'
|
108
108
|
)}
|
109
109
|
end
|
110
110
|
context "with string filter" do
|
@@ -26,6 +26,22 @@ describe Datagrid::Helper do
|
|
26
26
|
) }
|
27
27
|
let(:grid) { SimpleReport.new }
|
28
28
|
|
29
|
+
context "when grid has no records" do
|
30
|
+
let(:grid) do
|
31
|
+
test_report do
|
32
|
+
scope { Entry.where("1 != 1") }
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
it "should show an empty table with dashes" do
|
37
|
+
datagrid_table = subject.datagrid_table(grid)
|
38
|
+
|
39
|
+
datagrid_table.should match_css_pattern(
|
40
|
+
"table.datagrid tr td.noresults" => 1
|
41
|
+
)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
29
45
|
describe ".datagrid_table" do
|
30
46
|
it "should have grid class as html class on table" do
|
31
47
|
subject.datagrid_table(grid).should match_css_pattern(
|
@@ -71,6 +87,15 @@ describe Datagrid::Helper do
|
|
71
87
|
subject.datagrid_table(grid, [entry], :order => false).should match_css_pattern("table.datagrid th .order" => 0)
|
72
88
|
end
|
73
89
|
|
90
|
+
it "should support columns option" do
|
91
|
+
subject.datagrid_table(grid, [entry], :columns => [:name]).should match_css_pattern(
|
92
|
+
"table.datagrid th.name" => 1,
|
93
|
+
"table.datagrid td.name" => 1,
|
94
|
+
"table.datagrid th.group" => 0,
|
95
|
+
"table.datagrid td.group" => 0
|
96
|
+
)
|
97
|
+
end
|
98
|
+
|
74
99
|
describe ".datagrid_rows" do
|
75
100
|
|
76
101
|
it "should support urls" do
|
@@ -137,6 +162,20 @@ describe Datagrid::Helper do
|
|
137
162
|
)
|
138
163
|
end
|
139
164
|
|
165
|
+
it "should support columns option" do
|
166
|
+
rp = test_report do
|
167
|
+
scope { Entry }
|
168
|
+
column(:name)
|
169
|
+
column(:category)
|
170
|
+
end
|
171
|
+
subject.datagrid_rows(rp, [entry], :columns => [:name]).should match_css_pattern(
|
172
|
+
"tr td.name" => "Star"
|
173
|
+
)
|
174
|
+
subject.datagrid_rows(rp, [entry], :columns => [:name]).should match_css_pattern(
|
175
|
+
"tr td.category" => 0
|
176
|
+
)
|
177
|
+
end
|
178
|
+
|
140
179
|
end
|
141
180
|
|
142
181
|
describe ".datagrid_order_for" do
|
data/spec/support/matchers.rb
CHANGED
@@ -27,6 +27,7 @@ class IncludeDom
|
|
27
27
|
def failure_message
|
28
28
|
"Expected dom \n#{@matcher.inspect}\n to include \n#{@expectation.inspect}\n, but it wasn't"
|
29
29
|
end
|
30
|
+
|
30
31
|
end
|
31
32
|
|
32
33
|
|
@@ -90,4 +91,7 @@ class CssPattern
|
|
90
91
|
end
|
91
92
|
end
|
92
93
|
|
94
|
+
def negative_failure_message
|
95
|
+
"Expected do not match dom pattern. But it was"
|
96
|
+
end
|
93
97
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: datagrid
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.3
|
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: 2012-
|
12
|
+
date: 2012-08-28 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
16
|
-
requirement: &
|
16
|
+
requirement: &19221460 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '3.0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *19221460
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rake
|
27
|
-
requirement: &
|
27
|
+
requirement: &19219460 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *19219460
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: bundler
|
38
|
-
requirement: &
|
38
|
+
requirement: &19214100 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: 1.1.0
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *19214100
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: jeweler
|
49
|
-
requirement: &
|
49
|
+
requirement: &19239940 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ~>
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: 1.6.0
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *19239940
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: debugger
|
60
|
-
requirement: &
|
60
|
+
requirement: &19235660 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: '0'
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *19235660
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rspec
|
71
|
-
requirement: &
|
71
|
+
requirement: &19248680 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
@@ -76,10 +76,10 @@ dependencies:
|
|
76
76
|
version: '0'
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *19248680
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: accept_values_for
|
82
|
-
requirement: &
|
82
|
+
requirement: &19245240 !ruby/object:Gem::Requirement
|
83
83
|
none: false
|
84
84
|
requirements:
|
85
85
|
- - ! '>='
|
@@ -87,10 +87,10 @@ dependencies:
|
|
87
87
|
version: '0'
|
88
88
|
type: :development
|
89
89
|
prerelease: false
|
90
|
-
version_requirements: *
|
90
|
+
version_requirements: *19245240
|
91
91
|
- !ruby/object:Gem::Dependency
|
92
92
|
name: nokogiri
|
93
|
-
requirement: &
|
93
|
+
requirement: &19268860 !ruby/object:Gem::Requirement
|
94
94
|
none: false
|
95
95
|
requirements:
|
96
96
|
- - ! '>='
|
@@ -98,10 +98,10 @@ dependencies:
|
|
98
98
|
version: '0'
|
99
99
|
type: :development
|
100
100
|
prerelease: false
|
101
|
-
version_requirements: *
|
101
|
+
version_requirements: *19268860
|
102
102
|
- !ruby/object:Gem::Dependency
|
103
103
|
name: sqlite3-ruby
|
104
|
-
requirement: &
|
104
|
+
requirement: &19277160 !ruby/object:Gem::Requirement
|
105
105
|
none: false
|
106
106
|
requirements:
|
107
107
|
- - ! '>='
|
@@ -109,10 +109,10 @@ dependencies:
|
|
109
109
|
version: '0'
|
110
110
|
type: :development
|
111
111
|
prerelease: false
|
112
|
-
version_requirements: *
|
112
|
+
version_requirements: *19277160
|
113
113
|
- !ruby/object:Gem::Dependency
|
114
114
|
name: mongoid
|
115
|
-
requirement: &
|
115
|
+
requirement: &19299280 !ruby/object:Gem::Requirement
|
116
116
|
none: false
|
117
117
|
requirements:
|
118
118
|
- - =
|
@@ -120,10 +120,10 @@ dependencies:
|
|
120
120
|
version: 2.2.2
|
121
121
|
type: :development
|
122
122
|
prerelease: false
|
123
|
-
version_requirements: *
|
123
|
+
version_requirements: *19299280
|
124
124
|
- !ruby/object:Gem::Dependency
|
125
125
|
name: mongo_mapper
|
126
|
-
requirement: &
|
126
|
+
requirement: &19317860 !ruby/object:Gem::Requirement
|
127
127
|
none: false
|
128
128
|
requirements:
|
129
129
|
- - ! '>='
|
@@ -131,10 +131,10 @@ dependencies:
|
|
131
131
|
version: 0.11.0
|
132
132
|
type: :development
|
133
133
|
prerelease: false
|
134
|
-
version_requirements: *
|
134
|
+
version_requirements: *19317860
|
135
135
|
- !ruby/object:Gem::Dependency
|
136
136
|
name: bson
|
137
|
-
requirement: &
|
137
|
+
requirement: &19315320 !ruby/object:Gem::Requirement
|
138
138
|
none: false
|
139
139
|
requirements:
|
140
140
|
- - =
|
@@ -142,10 +142,10 @@ dependencies:
|
|
142
142
|
version: 1.4.0
|
143
143
|
type: :development
|
144
144
|
prerelease: false
|
145
|
-
version_requirements: *
|
145
|
+
version_requirements: *19315320
|
146
146
|
- !ruby/object:Gem::Dependency
|
147
147
|
name: bson_ext
|
148
|
-
requirement: &
|
148
|
+
requirement: &19313340 !ruby/object:Gem::Requirement
|
149
149
|
none: false
|
150
150
|
requirements:
|
151
151
|
- - =
|
@@ -153,10 +153,10 @@ dependencies:
|
|
153
153
|
version: 1.4.0
|
154
154
|
type: :development
|
155
155
|
prerelease: false
|
156
|
-
version_requirements: *
|
156
|
+
version_requirements: *19313340
|
157
157
|
- !ruby/object:Gem::Dependency
|
158
158
|
name: fastercsv
|
159
|
-
requirement: &
|
159
|
+
requirement: &19334040 !ruby/object:Gem::Requirement
|
160
160
|
none: false
|
161
161
|
requirements:
|
162
162
|
- - ! '>='
|
@@ -164,7 +164,7 @@ dependencies:
|
|
164
164
|
version: '0'
|
165
165
|
type: :development
|
166
166
|
prerelease: false
|
167
|
-
version_requirements: *
|
167
|
+
version_requirements: *19334040
|
168
168
|
description: This allows you to easily build datagrid aka data tables with sortable
|
169
169
|
columns and filters
|
170
170
|
email: agresso@gmail.com
|
@@ -251,7 +251,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
251
251
|
version: '0'
|
252
252
|
segments:
|
253
253
|
- 0
|
254
|
-
hash:
|
254
|
+
hash: 717556836869026164
|
255
255
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
256
256
|
none: false
|
257
257
|
requirements:
|