datagrid 1.2.3 → 1.3.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.
- checksums.yaml +7 -0
- data/VERSION +1 -1
- data/datagrid.gemspec +6 -5
- data/lib/datagrid/columns.rb +76 -4
- data/lib/datagrid/columns/column.rb +5 -32
- data/lib/datagrid/drivers/abstract_driver.rb +4 -0
- data/lib/datagrid/drivers/active_record.rb +4 -0
- data/lib/datagrid/drivers/array.rb +4 -0
- data/lib/datagrid/drivers/mongo_mapper.rb +4 -0
- data/lib/datagrid/drivers/mongoid.rb +4 -0
- data/spec/datagrid/columns_spec.rb +18 -0
- data/spec/datagrid/helper_spec.rb +27 -4
- metadata +32 -65
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA1:
|
|
3
|
+
metadata.gz: 8de0a49e930204781d435c0511d30f851660187e
|
|
4
|
+
data.tar.gz: b078647180e79a1b9bbcb2f76af728f39c2af9ea
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: eaa488b20a9949bbb4e94876b376bdcdea83560ff1e254509e464f7087d6e3bc07e77f0b024bd758fa163f5e81fdd28732b26e68e4059dc460f2761015bd7a01
|
|
7
|
+
data.tar.gz: ad2ea23cbf87bb2ec73fdf776904c524b8444e16db9df85a7be20aed445c4e15be624ce9d198f66f4b84168dcff5a91f9df402a4872dbef2c572f0fb1ac9477c
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
1.
|
|
1
|
+
1.3.0
|
data/datagrid.gemspec
CHANGED
|
@@ -2,14 +2,16 @@
|
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
|
3
3
|
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
|
4
4
|
# -*- encoding: utf-8 -*-
|
|
5
|
+
# stub: datagrid 1.3.0 ruby lib
|
|
5
6
|
|
|
6
7
|
Gem::Specification.new do |s|
|
|
7
8
|
s.name = "datagrid"
|
|
8
|
-
s.version = "1.
|
|
9
|
+
s.version = "1.3.0"
|
|
9
10
|
|
|
10
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
|
12
|
+
s.require_paths = ["lib"]
|
|
11
13
|
s.authors = ["Bogdan Gusiev"]
|
|
12
|
-
s.date = "2014-07-
|
|
14
|
+
s.date = "2014-07-23"
|
|
13
15
|
s.description = "This allows you to easily build datagrid aka data tables with sortable columns and filters"
|
|
14
16
|
s.email = "agresso@gmail.com"
|
|
15
17
|
s.extra_rdoc_files = [
|
|
@@ -117,12 +119,11 @@ Gem::Specification.new do |s|
|
|
|
117
119
|
]
|
|
118
120
|
s.homepage = "http://github.com/bogdan/datagrid"
|
|
119
121
|
s.licenses = ["MIT"]
|
|
120
|
-
s.
|
|
121
|
-
s.rubygems_version = "1.8.25"
|
|
122
|
+
s.rubygems_version = "2.2.2"
|
|
122
123
|
s.summary = "Ruby gem to create datagrids"
|
|
123
124
|
|
|
124
125
|
if s.respond_to? :specification_version then
|
|
125
|
-
s.specification_version =
|
|
126
|
+
s.specification_version = 4
|
|
126
127
|
|
|
127
128
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
|
128
129
|
s.add_runtime_dependency(%q<rails>, [">= 3.0"])
|
data/lib/datagrid/columns.rb
CHANGED
|
@@ -21,6 +21,9 @@ module Datagrid
|
|
|
21
21
|
self.columns_array = []
|
|
22
22
|
|
|
23
23
|
class_attribute :dynamic_block, :instance_writer => false
|
|
24
|
+
|
|
25
|
+
class_attribute :cached
|
|
26
|
+
self.cached = false
|
|
24
27
|
|
|
25
28
|
end
|
|
26
29
|
base.send :include, InstanceMethods
|
|
@@ -302,7 +305,7 @@ module Datagrid
|
|
|
302
305
|
end
|
|
303
306
|
end
|
|
304
307
|
|
|
305
|
-
# Returns a CSV representation of the data in the
|
|
308
|
+
# Returns a CSV representation of the data in the grid
|
|
306
309
|
# You are able to specify which columns you want to see in CSV.
|
|
307
310
|
# All data columns are included by default
|
|
308
311
|
# Also you can specify options hash as last argument that is proxied to
|
|
@@ -382,7 +385,7 @@ module Datagrid
|
|
|
382
385
|
end
|
|
383
386
|
end
|
|
384
387
|
|
|
385
|
-
# Returns an object representing a
|
|
388
|
+
# Returns an object representing a grid row.
|
|
386
389
|
# Allows to access column values
|
|
387
390
|
#
|
|
388
391
|
# Example:
|
|
@@ -439,16 +442,71 @@ module Datagrid
|
|
|
439
442
|
|
|
440
443
|
# Return a cell data value for given column name and asset
|
|
441
444
|
def data_value(column_name, asset)
|
|
442
|
-
column_by_name(column_name)
|
|
445
|
+
column = column_by_name(column_name)
|
|
446
|
+
cache(column, asset, :data_value) do
|
|
447
|
+
raise "no data value for #{column.name} column" unless column.data?
|
|
448
|
+
result = generic_value(column, asset)
|
|
449
|
+
result.is_a?(Datagrid::Columns::Column::ResponseFormat) ? result.call_data : result
|
|
450
|
+
end
|
|
443
451
|
end
|
|
444
452
|
|
|
445
453
|
# Return a cell HTML value for given column name and asset and view context
|
|
446
454
|
def html_value(column_name, context, asset)
|
|
447
|
-
column_by_name(column_name)
|
|
455
|
+
column = column_by_name(column_name)
|
|
456
|
+
cache(column, asset, :html_value) do
|
|
457
|
+
if column.html? && column.html_block
|
|
458
|
+
value_from_html_block(context, asset, column)
|
|
459
|
+
else
|
|
460
|
+
result = generic_value(column, asset)
|
|
461
|
+
result.is_a?(Datagrid::Columns::Column::ResponseFormat) ? result.call_html(context) : result
|
|
462
|
+
end
|
|
463
|
+
end
|
|
464
|
+
end
|
|
465
|
+
|
|
466
|
+
|
|
467
|
+
def generic_value(column, model) #:nodoc:
|
|
468
|
+
cache(column, model, :generic_value) do
|
|
469
|
+
unless column.enabled?(self)
|
|
470
|
+
raise Datagrid::ColumnUnavailableError, "Column #{column.name} disabled for #{inspect}"
|
|
471
|
+
end
|
|
472
|
+
|
|
473
|
+
if column.data_block.arity >= 1
|
|
474
|
+
Datagrid::Utils.apply_args(model, self, data_row(model), &column.data_block)
|
|
475
|
+
else
|
|
476
|
+
model.instance_eval(&column.data_block)
|
|
477
|
+
end
|
|
478
|
+
end
|
|
479
|
+
|
|
448
480
|
end
|
|
449
481
|
|
|
450
482
|
protected
|
|
451
483
|
|
|
484
|
+
def cache(column, asset, type)
|
|
485
|
+
@cache ||= {}
|
|
486
|
+
unless cached?
|
|
487
|
+
@cache.clear
|
|
488
|
+
return yield
|
|
489
|
+
end
|
|
490
|
+
key = cache_key(asset)
|
|
491
|
+
unless key
|
|
492
|
+
raise(Datagrid::CacheKeyError, "Datagrid Cache key is #{key.inspect} for #{asset.inspect}.")
|
|
493
|
+
end
|
|
494
|
+
@cache[column.name] ||= {}
|
|
495
|
+
@cache[column.name][key] ||= {}
|
|
496
|
+
@cache[column.name][key][type] ||= yield
|
|
497
|
+
end
|
|
498
|
+
|
|
499
|
+
def cache_key(asset)
|
|
500
|
+
if cached.respond_to?(:call)
|
|
501
|
+
cached.call(asset)
|
|
502
|
+
else
|
|
503
|
+
driver.default_cache_key(asset)
|
|
504
|
+
end
|
|
505
|
+
rescue NotImplementedError
|
|
506
|
+
raise Datagrid::ConfigurationError, "#{self} is setup to use cache. But there was appropriate cache key found for #{asset.inspect}. Please set cached option to block with asset as argument and cache key as returning value to resolve the issue."
|
|
507
|
+
end
|
|
508
|
+
|
|
509
|
+
|
|
452
510
|
def map_with_batches(&block)
|
|
453
511
|
result = []
|
|
454
512
|
each_with_batches do |asset|
|
|
@@ -475,6 +533,20 @@ module Datagrid
|
|
|
475
533
|
end
|
|
476
534
|
end
|
|
477
535
|
|
|
536
|
+
def value_from_html_block(context, asset, column)
|
|
537
|
+
args = []
|
|
538
|
+
remaining_arity = column.html_block.arity
|
|
539
|
+
|
|
540
|
+
if column.data?
|
|
541
|
+
args << data_value(column, asset)
|
|
542
|
+
remaining_arity -= 1
|
|
543
|
+
end
|
|
544
|
+
|
|
545
|
+
args << asset if remaining_arity > 0
|
|
546
|
+
args << self if remaining_arity > 1
|
|
547
|
+
|
|
548
|
+
context.instance_exec(*args, &column.html_block)
|
|
549
|
+
end
|
|
478
550
|
end # InstanceMethods
|
|
479
551
|
|
|
480
552
|
class DataRow
|
|
@@ -46,9 +46,8 @@ class Datagrid::Columns::Column
|
|
|
46
46
|
end
|
|
47
47
|
|
|
48
48
|
def data_value(model, grid)
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
result.is_a?(ResponseFormat) ? result.call_data : result
|
|
49
|
+
# backward compatibility method
|
|
50
|
+
grid.data_value(name, model)
|
|
52
51
|
end
|
|
53
52
|
|
|
54
53
|
|
|
@@ -75,7 +74,7 @@ class Datagrid::Columns::Column
|
|
|
75
74
|
|
|
76
75
|
def order_by_value(model, grid)
|
|
77
76
|
if options[:order_by_value] == true
|
|
78
|
-
data_value(
|
|
77
|
+
grid.data_value(self, model)
|
|
79
78
|
else
|
|
80
79
|
Datagrid::Utils.apply_args(model, grid, &options[:order_by_value])
|
|
81
80
|
end
|
|
@@ -115,28 +114,9 @@ class Datagrid::Columns::Column
|
|
|
115
114
|
end
|
|
116
115
|
|
|
117
116
|
def html_value(context, asset, grid)
|
|
118
|
-
|
|
119
|
-
value_from_html_block(context, asset, grid)
|
|
120
|
-
else
|
|
121
|
-
result = generic_value(asset,grid)
|
|
122
|
-
result.is_a?(ResponseFormat) ? result.call_html(context) : result
|
|
123
|
-
end
|
|
117
|
+
grid.html_value(name, context, asset)
|
|
124
118
|
end
|
|
125
119
|
|
|
126
|
-
def value_from_html_block(context, asset, grid)
|
|
127
|
-
args = []
|
|
128
|
-
remaining_arity = html_block.arity
|
|
129
|
-
|
|
130
|
-
if data?
|
|
131
|
-
args << data_value(asset,grid)
|
|
132
|
-
remaining_arity -= 1
|
|
133
|
-
end
|
|
134
|
-
|
|
135
|
-
args << asset if remaining_arity > 0
|
|
136
|
-
args << grid if remaining_arity > 1
|
|
137
|
-
|
|
138
|
-
return context.instance_exec(*args, &html_block)
|
|
139
|
-
end
|
|
140
120
|
|
|
141
121
|
def block
|
|
142
122
|
Datagrid::Utils.warn_once("Datagrid::Columns::Column#block is deprecated. Use #html_block or #data_block instead")
|
|
@@ -144,14 +124,7 @@ class Datagrid::Columns::Column
|
|
|
144
124
|
end
|
|
145
125
|
|
|
146
126
|
def generic_value(model, grid)
|
|
147
|
-
|
|
148
|
-
raise Datagrid::ColumnUnavailableError, "Column #{name} disabled for #{grid.inspect}"
|
|
149
|
-
end
|
|
150
|
-
if self.data_block.arity >= 1
|
|
151
|
-
Datagrid::Utils.apply_args(model, grid, grid.data_row(model), &data_block)
|
|
152
|
-
else
|
|
153
|
-
model.instance_eval(&self.data_block)
|
|
154
|
-
end
|
|
127
|
+
grid.generic_value(self, model)
|
|
155
128
|
end
|
|
156
129
|
|
|
157
130
|
private
|
|
@@ -105,6 +105,10 @@ module Datagrid
|
|
|
105
105
|
scope.find_each(batch_size ? { :batch_size => batch_size} : {}, &block)
|
|
106
106
|
end
|
|
107
107
|
|
|
108
|
+
def default_cache_key(asset)
|
|
109
|
+
asset.id || raise(NotImplementedError)
|
|
110
|
+
end
|
|
111
|
+
|
|
108
112
|
protected
|
|
109
113
|
|
|
110
114
|
def prefix_table_name(scope, field)
|
|
@@ -406,4 +406,22 @@ describe Datagrid::Columns do
|
|
|
406
406
|
}.to raise_error(Datagrid::ColumnUnavailableError)
|
|
407
407
|
end
|
|
408
408
|
end
|
|
409
|
+
|
|
410
|
+
describe "caching" do
|
|
411
|
+
it "should work when enabled in class" do
|
|
412
|
+
grid = test_report do
|
|
413
|
+
scope {Entry}
|
|
414
|
+
self.cached = true
|
|
415
|
+
column(:random1) {rand(10**9)}
|
|
416
|
+
column(:random2) {rand(10**9)}
|
|
417
|
+
end
|
|
418
|
+
|
|
419
|
+
row = grid.data_row(Entry.create!)
|
|
420
|
+
expect(row.random1).to eq(row.random1)
|
|
421
|
+
expect(row.random2).to_not eq(row.random1)
|
|
422
|
+
grid.cached = false
|
|
423
|
+
expect(row.random2).to_not eq(row.random2)
|
|
424
|
+
expect(row.random2).to_not eq(row.random1)
|
|
425
|
+
end
|
|
426
|
+
end
|
|
409
427
|
end
|
|
@@ -16,7 +16,7 @@ describe Datagrid::Helper do
|
|
|
16
16
|
before(:each) do
|
|
17
17
|
allow(subject).to receive(:params).and_return({})
|
|
18
18
|
allow(subject).to receive(:url_for) do |options|
|
|
19
|
-
options.to_param
|
|
19
|
+
options.is_a?(String) ? options : ["/location", options.to_param.presence].compact.join('?')
|
|
20
20
|
end
|
|
21
21
|
|
|
22
22
|
end
|
|
@@ -341,8 +341,8 @@ describe Datagrid::Helper do
|
|
|
341
341
|
grid = OrderedGrid.new(:descending => true, :order => :category)
|
|
342
342
|
expect(subject.datagrid_order_for(grid, grid.column_by_name(:category))).to equal_to_dom(<<-HTML)
|
|
343
343
|
<div class="order">
|
|
344
|
-
<a href="ordered_grid%5Bdescending%5D=false&ordered_grid%5Border%5D=category" class="asc">↑</a>
|
|
345
|
-
<a href="ordered_grid%5Bdescending%5D=true&ordered_grid%5Border%5D=category" class="desc">↓</a>
|
|
344
|
+
<a href="/location?ordered_grid%5Bdescending%5D=false&ordered_grid%5Border%5D=category" class="asc">↑</a>
|
|
345
|
+
<a href="/location?ordered_grid%5Bdescending%5D=true&ordered_grid%5Border%5D=category" class="desc">↓</a>
|
|
346
346
|
</div>
|
|
347
347
|
HTML
|
|
348
348
|
end
|
|
@@ -368,7 +368,7 @@ describe Datagrid::Helper do
|
|
|
368
368
|
"form .filter label" => "Category",
|
|
369
369
|
"form .filter input.category.default_filter[name='form_for_grid[category]'][value=hello]" => 1,
|
|
370
370
|
"form input[name=commit][value=Search]" => 1,
|
|
371
|
-
"form a.datagrid-reset[href='']" => 1
|
|
371
|
+
"form a.datagrid-reset[href='/location']" => 1
|
|
372
372
|
)
|
|
373
373
|
end
|
|
374
374
|
it "should support html classes for grid class with namespace" do
|
|
@@ -459,5 +459,28 @@ describe Datagrid::Helper do
|
|
|
459
459
|
end
|
|
460
460
|
expect(subject.datagrid_value(report, :name, entry)).to eq("<a href=\"/profile\">Star</a>")
|
|
461
461
|
end
|
|
462
|
+
|
|
463
|
+
it "should use cache" do
|
|
464
|
+
grid = test_report do
|
|
465
|
+
scope {Entry}
|
|
466
|
+
self.cached = true
|
|
467
|
+
column(:random1, html: true) {rand(10**9)}
|
|
468
|
+
column(:random2) {|model| format(rand(10**9)) {|value| value}}
|
|
469
|
+
end
|
|
470
|
+
|
|
471
|
+
entry = Entry.create!
|
|
472
|
+
|
|
473
|
+
data_row = grid.data_row(entry)
|
|
474
|
+
html_row = subject.datagrid_row(grid, entry)
|
|
475
|
+
expect(html_row.random1).to eq(html_row.random1)
|
|
476
|
+
expect(html_row.random2).to_not eq(html_row.random1)
|
|
477
|
+
expect(data_row.random2).to eq(html_row.random2)
|
|
478
|
+
expect(data_row.random2).to_not eq(html_row.random1)
|
|
479
|
+
grid.cached = false
|
|
480
|
+
expect(html_row.random2).to_not eq(html_row.random2)
|
|
481
|
+
expect(html_row.random2).to_not eq(html_row.random1)
|
|
482
|
+
expect(data_row.random2).to_not eq(html_row.random2)
|
|
483
|
+
expect(data_row.random2).to_not eq(html_row.random1)
|
|
484
|
+
end
|
|
462
485
|
end
|
|
463
486
|
end
|
metadata
CHANGED
|
@@ -1,164 +1,144 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: datagrid
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
5
|
-
prerelease:
|
|
4
|
+
version: 1.3.0
|
|
6
5
|
platform: ruby
|
|
7
6
|
authors:
|
|
8
7
|
- Bogdan Gusiev
|
|
9
8
|
autorequire:
|
|
10
9
|
bindir: bin
|
|
11
10
|
cert_chain: []
|
|
12
|
-
date: 2014-07-
|
|
11
|
+
date: 2014-07-23 00:00:00.000000000 Z
|
|
13
12
|
dependencies:
|
|
14
13
|
- !ruby/object:Gem::Dependency
|
|
15
14
|
name: rails
|
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
|
17
|
-
none: false
|
|
18
16
|
requirements:
|
|
19
|
-
- -
|
|
17
|
+
- - ">="
|
|
20
18
|
- !ruby/object:Gem::Version
|
|
21
19
|
version: '3.0'
|
|
22
20
|
type: :runtime
|
|
23
21
|
prerelease: false
|
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
25
|
-
none: false
|
|
26
23
|
requirements:
|
|
27
|
-
- -
|
|
24
|
+
- - ">="
|
|
28
25
|
- !ruby/object:Gem::Version
|
|
29
26
|
version: '3.0'
|
|
30
27
|
- !ruby/object:Gem::Dependency
|
|
31
28
|
name: bundler
|
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
|
33
|
-
none: false
|
|
34
30
|
requirements:
|
|
35
|
-
- -
|
|
31
|
+
- - ">="
|
|
36
32
|
- !ruby/object:Gem::Version
|
|
37
33
|
version: '0'
|
|
38
34
|
type: :development
|
|
39
35
|
prerelease: false
|
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
41
|
-
none: false
|
|
42
37
|
requirements:
|
|
43
|
-
- -
|
|
38
|
+
- - ">="
|
|
44
39
|
- !ruby/object:Gem::Version
|
|
45
40
|
version: '0'
|
|
46
41
|
- !ruby/object:Gem::Dependency
|
|
47
42
|
name: jeweler
|
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
|
49
|
-
none: false
|
|
50
44
|
requirements:
|
|
51
|
-
- -
|
|
45
|
+
- - ">="
|
|
52
46
|
- !ruby/object:Gem::Version
|
|
53
47
|
version: '0'
|
|
54
48
|
type: :development
|
|
55
49
|
prerelease: false
|
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
57
|
-
none: false
|
|
58
51
|
requirements:
|
|
59
|
-
- -
|
|
52
|
+
- - ">="
|
|
60
53
|
- !ruby/object:Gem::Version
|
|
61
54
|
version: '0'
|
|
62
55
|
- !ruby/object:Gem::Dependency
|
|
63
56
|
name: debugger
|
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
|
65
|
-
none: false
|
|
66
58
|
requirements:
|
|
67
|
-
- -
|
|
59
|
+
- - ">="
|
|
68
60
|
- !ruby/object:Gem::Version
|
|
69
61
|
version: '0'
|
|
70
62
|
type: :development
|
|
71
63
|
prerelease: false
|
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
|
73
|
-
none: false
|
|
74
65
|
requirements:
|
|
75
|
-
- -
|
|
66
|
+
- - ">="
|
|
76
67
|
- !ruby/object:Gem::Version
|
|
77
68
|
version: '0'
|
|
78
69
|
- !ruby/object:Gem::Dependency
|
|
79
70
|
name: byebug
|
|
80
71
|
requirement: !ruby/object:Gem::Requirement
|
|
81
|
-
none: false
|
|
82
72
|
requirements:
|
|
83
|
-
- -
|
|
73
|
+
- - ">="
|
|
84
74
|
- !ruby/object:Gem::Version
|
|
85
75
|
version: '0'
|
|
86
76
|
type: :development
|
|
87
77
|
prerelease: false
|
|
88
78
|
version_requirements: !ruby/object:Gem::Requirement
|
|
89
|
-
none: false
|
|
90
79
|
requirements:
|
|
91
|
-
- -
|
|
80
|
+
- - ">="
|
|
92
81
|
- !ruby/object:Gem::Version
|
|
93
82
|
version: '0'
|
|
94
83
|
- !ruby/object:Gem::Dependency
|
|
95
84
|
name: ruby-debug
|
|
96
85
|
requirement: !ruby/object:Gem::Requirement
|
|
97
|
-
none: false
|
|
98
86
|
requirements:
|
|
99
|
-
- -
|
|
87
|
+
- - ">="
|
|
100
88
|
- !ruby/object:Gem::Version
|
|
101
89
|
version: '0'
|
|
102
90
|
type: :development
|
|
103
91
|
prerelease: false
|
|
104
92
|
version_requirements: !ruby/object:Gem::Requirement
|
|
105
|
-
none: false
|
|
106
93
|
requirements:
|
|
107
|
-
- -
|
|
94
|
+
- - ">="
|
|
108
95
|
- !ruby/object:Gem::Version
|
|
109
96
|
version: '0'
|
|
110
97
|
- !ruby/object:Gem::Dependency
|
|
111
98
|
name: rspec
|
|
112
99
|
requirement: !ruby/object:Gem::Requirement
|
|
113
|
-
none: false
|
|
114
100
|
requirements:
|
|
115
|
-
- -
|
|
101
|
+
- - ">="
|
|
116
102
|
- !ruby/object:Gem::Version
|
|
117
103
|
version: '3'
|
|
118
104
|
type: :development
|
|
119
105
|
prerelease: false
|
|
120
106
|
version_requirements: !ruby/object:Gem::Requirement
|
|
121
|
-
none: false
|
|
122
107
|
requirements:
|
|
123
|
-
- -
|
|
108
|
+
- - ">="
|
|
124
109
|
- !ruby/object:Gem::Version
|
|
125
110
|
version: '3'
|
|
126
111
|
- !ruby/object:Gem::Dependency
|
|
127
112
|
name: nokogiri
|
|
128
113
|
requirement: !ruby/object:Gem::Requirement
|
|
129
|
-
none: false
|
|
130
114
|
requirements:
|
|
131
|
-
- -
|
|
115
|
+
- - ">="
|
|
132
116
|
- !ruby/object:Gem::Version
|
|
133
117
|
version: '0'
|
|
134
118
|
type: :development
|
|
135
119
|
prerelease: false
|
|
136
120
|
version_requirements: !ruby/object:Gem::Requirement
|
|
137
|
-
none: false
|
|
138
121
|
requirements:
|
|
139
|
-
- -
|
|
122
|
+
- - ">="
|
|
140
123
|
- !ruby/object:Gem::Version
|
|
141
124
|
version: '0'
|
|
142
125
|
- !ruby/object:Gem::Dependency
|
|
143
126
|
name: sqlite3
|
|
144
127
|
requirement: !ruby/object:Gem::Requirement
|
|
145
|
-
none: false
|
|
146
128
|
requirements:
|
|
147
|
-
- -
|
|
129
|
+
- - ">="
|
|
148
130
|
- !ruby/object:Gem::Version
|
|
149
131
|
version: '0'
|
|
150
132
|
type: :development
|
|
151
133
|
prerelease: false
|
|
152
134
|
version_requirements: !ruby/object:Gem::Requirement
|
|
153
|
-
none: false
|
|
154
135
|
requirements:
|
|
155
|
-
- -
|
|
136
|
+
- - ">="
|
|
156
137
|
- !ruby/object:Gem::Version
|
|
157
138
|
version: '0'
|
|
158
139
|
- !ruby/object:Gem::Dependency
|
|
159
140
|
name: mongoid
|
|
160
141
|
requirement: !ruby/object:Gem::Requirement
|
|
161
|
-
none: false
|
|
162
142
|
requirements:
|
|
163
143
|
- - '='
|
|
164
144
|
- !ruby/object:Gem::Version
|
|
@@ -166,7 +146,6 @@ dependencies:
|
|
|
166
146
|
type: :development
|
|
167
147
|
prerelease: false
|
|
168
148
|
version_requirements: !ruby/object:Gem::Requirement
|
|
169
|
-
none: false
|
|
170
149
|
requirements:
|
|
171
150
|
- - '='
|
|
172
151
|
- !ruby/object:Gem::Version
|
|
@@ -174,23 +153,20 @@ dependencies:
|
|
|
174
153
|
- !ruby/object:Gem::Dependency
|
|
175
154
|
name: mongo_mapper
|
|
176
155
|
requirement: !ruby/object:Gem::Requirement
|
|
177
|
-
none: false
|
|
178
156
|
requirements:
|
|
179
|
-
- -
|
|
157
|
+
- - ">="
|
|
180
158
|
- !ruby/object:Gem::Version
|
|
181
159
|
version: 0.11.0
|
|
182
160
|
type: :development
|
|
183
161
|
prerelease: false
|
|
184
162
|
version_requirements: !ruby/object:Gem::Requirement
|
|
185
|
-
none: false
|
|
186
163
|
requirements:
|
|
187
|
-
- -
|
|
164
|
+
- - ">="
|
|
188
165
|
- !ruby/object:Gem::Version
|
|
189
166
|
version: 0.11.0
|
|
190
167
|
- !ruby/object:Gem::Dependency
|
|
191
168
|
name: bson
|
|
192
169
|
requirement: !ruby/object:Gem::Requirement
|
|
193
|
-
none: false
|
|
194
170
|
requirements:
|
|
195
171
|
- - '='
|
|
196
172
|
- !ruby/object:Gem::Version
|
|
@@ -198,7 +174,6 @@ dependencies:
|
|
|
198
174
|
type: :development
|
|
199
175
|
prerelease: false
|
|
200
176
|
version_requirements: !ruby/object:Gem::Requirement
|
|
201
|
-
none: false
|
|
202
177
|
requirements:
|
|
203
178
|
- - '='
|
|
204
179
|
- !ruby/object:Gem::Version
|
|
@@ -206,7 +181,6 @@ dependencies:
|
|
|
206
181
|
- !ruby/object:Gem::Dependency
|
|
207
182
|
name: bson_ext
|
|
208
183
|
requirement: !ruby/object:Gem::Requirement
|
|
209
|
-
none: false
|
|
210
184
|
requirements:
|
|
211
185
|
- - '='
|
|
212
186
|
- !ruby/object:Gem::Version
|
|
@@ -214,7 +188,6 @@ dependencies:
|
|
|
214
188
|
type: :development
|
|
215
189
|
prerelease: false
|
|
216
190
|
version_requirements: !ruby/object:Gem::Requirement
|
|
217
|
-
none: false
|
|
218
191
|
requirements:
|
|
219
192
|
- - '='
|
|
220
193
|
- !ruby/object:Gem::Version
|
|
@@ -222,17 +195,15 @@ dependencies:
|
|
|
222
195
|
- !ruby/object:Gem::Dependency
|
|
223
196
|
name: fastercsv
|
|
224
197
|
requirement: !ruby/object:Gem::Requirement
|
|
225
|
-
none: false
|
|
226
198
|
requirements:
|
|
227
|
-
- -
|
|
199
|
+
- - ">="
|
|
228
200
|
- !ruby/object:Gem::Version
|
|
229
201
|
version: '0'
|
|
230
202
|
type: :development
|
|
231
203
|
prerelease: false
|
|
232
204
|
version_requirements: !ruby/object:Gem::Requirement
|
|
233
|
-
none: false
|
|
234
205
|
requirements:
|
|
235
|
-
- -
|
|
206
|
+
- - ">="
|
|
236
207
|
- !ruby/object:Gem::Version
|
|
237
208
|
version: '0'
|
|
238
209
|
description: This allows you to easily build datagrid aka data tables with sortable
|
|
@@ -243,9 +214,9 @@ extensions: []
|
|
|
243
214
|
extra_rdoc_files:
|
|
244
215
|
- LICENSE.txt
|
|
245
216
|
files:
|
|
246
|
-
- .document
|
|
247
|
-
- .rspec
|
|
248
|
-
- .travis.yml
|
|
217
|
+
- ".document"
|
|
218
|
+
- ".rspec"
|
|
219
|
+
- ".travis.yml"
|
|
249
220
|
- Gemfile
|
|
250
221
|
- LICENSE.txt
|
|
251
222
|
- Rakefile
|
|
@@ -344,29 +315,25 @@ files:
|
|
|
344
315
|
homepage: http://github.com/bogdan/datagrid
|
|
345
316
|
licenses:
|
|
346
317
|
- MIT
|
|
318
|
+
metadata: {}
|
|
347
319
|
post_install_message:
|
|
348
320
|
rdoc_options: []
|
|
349
321
|
require_paths:
|
|
350
322
|
- lib
|
|
351
323
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
352
|
-
none: false
|
|
353
324
|
requirements:
|
|
354
|
-
- -
|
|
325
|
+
- - ">="
|
|
355
326
|
- !ruby/object:Gem::Version
|
|
356
327
|
version: '0'
|
|
357
|
-
segments:
|
|
358
|
-
- 0
|
|
359
|
-
hash: 1488750085625410873
|
|
360
328
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
361
|
-
none: false
|
|
362
329
|
requirements:
|
|
363
|
-
- -
|
|
330
|
+
- - ">="
|
|
364
331
|
- !ruby/object:Gem::Version
|
|
365
332
|
version: '0'
|
|
366
333
|
requirements: []
|
|
367
334
|
rubyforge_project:
|
|
368
|
-
rubygems_version:
|
|
335
|
+
rubygems_version: 2.2.2
|
|
369
336
|
signing_key:
|
|
370
|
-
specification_version:
|
|
337
|
+
specification_version: 4
|
|
371
338
|
summary: Ruby gem to create datagrids
|
|
372
339
|
test_files: []
|