datagrid 1.4.1 → 1.4.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e883f173edbcd8f8a7791d5bfa043beb51b31b7c
4
- data.tar.gz: 5a5287b4320935f8537fcc32b49c4666fd735770
3
+ metadata.gz: 0b69adb5df9eebf47a8446dd095c6b966b635649
4
+ data.tar.gz: 576710b7d11168fcde29d19eddc77f730b94fd43
5
5
  SHA512:
6
- metadata.gz: 5558c20d49ea5b4dcaf3071a861f2eeb86f72e968331d8c1fedd7bf028f857bfe6b1402aaf89fa2e697c1d65d33559cedcc3ee91daf586a0d55d321d2b2a2445
7
- data.tar.gz: a7e98810429dfdd395f051bc783c27eb89673fcf45742a8107d47a020b68b51047e9dda4636526b49d8205d8147be24f476fc96e732e17a95d0845e2e6dbe6ce
6
+ metadata.gz: 74512141aa0e4dd111ed9dea6783f562c71f509ae45b7a81395371b716331d75a5a95383e2157858c1555f7183de042f33143286eadef72a17db72dba9a83d3f
7
+ data.tar.gz: 79d7d6e111160e03a1df224be0c3f8263cf968dc2d2266a1c3ca5a2f495adf9c0edb0f71d62e5428953f380b5b4fd3c1594848c7a89f03a41a40227f60b9a7d9
data/Gemfile CHANGED
@@ -1,6 +1,6 @@
1
1
  source "https://rubygems.org"
2
2
 
3
- gem "rails", ">= 3.2.18"
3
+ gem "rails", ">= 3.2.22.2"
4
4
 
5
5
  group :development do
6
6
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.4.1
1
+ 1.4.2
data/datagrid.gemspec CHANGED
@@ -2,16 +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.4.1 ruby lib
5
+ # stub: datagrid 1.4.2 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "datagrid"
9
- s.version = "1.4.1"
9
+ s.version = "1.4.2"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
12
  s.require_paths = ["lib"]
13
13
  s.authors = ["Bogdan Gusiev"]
14
- s.date = "2016-02-10"
14
+ s.date = "2016-03-08"
15
15
  s.description = "This allows you to easily build datagrid aka data tables with sortable columns and filters"
16
16
  s.email = "agresso@gmail.com"
17
17
  s.extra_rdoc_files = [
@@ -78,6 +78,7 @@ Gem::Specification.new do |s|
78
78
  "lib/tasks/datagrid_tasks.rake",
79
79
  "spec/datagrid/active_model_spec.rb",
80
80
  "spec/datagrid/column_names_attribute_spec.rb",
81
+ "spec/datagrid/columns/column_spec.rb",
81
82
  "spec/datagrid/columns_spec.rb",
82
83
  "spec/datagrid/core_spec.rb",
83
84
  "spec/datagrid/drivers/active_record_spec.rb",
@@ -128,14 +129,14 @@ Gem::Specification.new do |s|
128
129
  ]
129
130
  s.homepage = "http://github.com/bogdan/datagrid"
130
131
  s.licenses = ["MIT"]
131
- s.rubygems_version = "2.4.8"
132
+ s.rubygems_version = "2.4.5"
132
133
  s.summary = "Ruby gem to create datagrids"
133
134
 
134
135
  if s.respond_to? :specification_version then
135
136
  s.specification_version = 4
136
137
 
137
138
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
138
- s.add_runtime_dependency(%q<rails>, [">= 3.2.18"])
139
+ s.add_runtime_dependency(%q<rails>, [">= 3.2.22.2"])
139
140
  s.add_development_dependency(%q<bundler>, [">= 0"])
140
141
  s.add_development_dependency(%q<jeweler>, [">= 0"])
141
142
  s.add_development_dependency(%q<debugger>, [">= 0"])
@@ -149,7 +150,7 @@ Gem::Specification.new do |s|
149
150
  s.add_development_dependency(%q<bson>, [">= 0"])
150
151
  s.add_development_dependency(%q<bson_ext>, [">= 0"])
151
152
  else
152
- s.add_dependency(%q<rails>, [">= 3.2.18"])
153
+ s.add_dependency(%q<rails>, [">= 3.2.22.2"])
153
154
  s.add_dependency(%q<bundler>, [">= 0"])
154
155
  s.add_dependency(%q<jeweler>, [">= 0"])
155
156
  s.add_dependency(%q<debugger>, [">= 0"])
@@ -164,7 +165,7 @@ Gem::Specification.new do |s|
164
165
  s.add_dependency(%q<bson_ext>, [">= 0"])
165
166
  end
166
167
  else
167
- s.add_dependency(%q<rails>, [">= 3.2.18"])
168
+ s.add_dependency(%q<rails>, [">= 3.2.22.2"])
168
169
  s.add_dependency(%q<bundler>, [">= 0"])
169
170
  s.add_dependency(%q<jeweler>, [">= 0"])
170
171
  s.add_dependency(%q<debugger>, [">= 0"])
@@ -41,8 +41,6 @@ class Datagrid::Columns::Column
41
41
  end
42
42
  end
43
43
  self.query = query
44
- options[:if] = convert_option_to_proc(options[:if])
45
- options[:unless] = convert_option_to_proc(options[:unless])
46
44
  end
47
45
 
48
46
  def data_value(model, grid)
@@ -56,7 +54,11 @@ class Datagrid::Columns::Column
56
54
  end
57
55
 
58
56
  def header
59
- self.options[:header] || Datagrid::Utils.translate_from_namespace(:columns, grid_class, name)
57
+ if header = options[:header]
58
+ callable(header)
59
+ else
60
+ Datagrid::Utils.translate_from_namespace(:columns, grid_class, name)
61
+ end
60
62
  end
61
63
 
62
64
  def order
@@ -101,11 +103,12 @@ class Datagrid::Columns::Column
101
103
  end
102
104
 
103
105
  def enabled?(grid)
104
- (!options[:if] || (options[:if] && options[:if].call(grid))) && !options[:unless] || (options[:unless] && !options[:unless].call(grid))
106
+ column_availability(grid, options[:if], true) &&
107
+ !column_availability(grid, options[:unless], false)
105
108
  end
106
109
 
107
110
  def inspect
108
- "#<Datagrid::Columns::Column #{grid_class}##{name} #{options.inspect}>"
111
+ "#<#{self.class} #{grid_class}##{name} #{options.inspect}>"
109
112
  end
110
113
 
111
114
  def to_s
@@ -127,11 +130,20 @@ class Datagrid::Columns::Column
127
130
  end
128
131
 
129
132
  private
130
- def convert_option_to_proc(option)
131
- if option.is_a?(Proc)
132
- option
133
- elsif option
134
- proc {|object| object.send(option.to_sym) }
133
+ def column_availability(grid, option, default)
134
+ case option
135
+ when nil
136
+ default
137
+ when Proc
138
+ option.call(grid)
139
+ when Symbol, String
140
+ grid.send(option.to_sym)
141
+ else
142
+ raise Datagrid::ConfigurationError, "Incorrect column availability option: #{option.insepct}"
135
143
  end
136
144
  end
145
+
146
+ def callable(value)
147
+ value.respond_to?(:call) ? value.call : value
148
+ end
137
149
  end
@@ -49,7 +49,11 @@ class Datagrid::Filters::BaseFilter #:nodoc:
49
49
  end
50
50
 
51
51
  def header
52
- options[:header] || Datagrid::Utils.translate_from_namespace(:filters, grid_class, name)
52
+ if header = options[:header]
53
+ callable(header)
54
+ else
55
+ Datagrid::Utils.translate_from_namespace(:filters, grid_class, name)
56
+ end
53
57
  end
54
58
 
55
59
  def default(object = nil)
@@ -154,6 +158,10 @@ class Datagrid::Filters::BaseFilter #:nodoc:
154
158
  ','
155
159
  end
156
160
 
161
+ def callable(value)
162
+ value.respond_to?(:call) ? value.call : value
163
+ end
164
+
157
165
  def driver
158
166
  grid_class.driver
159
167
  end
@@ -0,0 +1,19 @@
1
+ require 'spec_helper'
2
+
3
+ describe Datagrid::Columns::Column do
4
+
5
+ describe ".inspect" do
6
+ subject do
7
+ class ColumnInspectTest
8
+ include Datagrid
9
+ scope {Entry}
10
+ column(:id, header: "ID")
11
+ end
12
+ ColumnInspectTest.column_by_name(:id)
13
+ end
14
+
15
+ it "shows inspect information" do
16
+ expect(subject.inspect).to eq("#<Datagrid::Columns::Column ColumnInspectTest#id {:header=>\"ID\"}>")
17
+ end
18
+ end
19
+ end
@@ -118,6 +118,15 @@ describe Datagrid::Columns do
118
118
  ])
119
119
  end
120
120
 
121
+ it "supports dynamic header" do
122
+ grid = test_report do
123
+ scope {Entry}
124
+ column(:id, header: proc { rand(10**9) })
125
+ end
126
+
127
+ expect(grid.header).to_not eq(grid.header)
128
+ end
129
+
121
130
  it "should generate hash for given asset" do
122
131
  expect(subject.hash_for(entry)).to eq({
123
132
  :group => "Pop",
@@ -192,6 +192,17 @@ describe Datagrid::Filters do
192
192
 
193
193
  end
194
194
 
195
+
196
+ it "supports dynamic header" do
197
+ grid = test_report do
198
+ scope {Entry}
199
+ filter(:id, :integer, header: proc { rand(10**9) })
200
+ end
201
+
202
+ filter = grid.filter_by_name(:id)
203
+ expect(filter.header).to_not eq(filter.header)
204
+ end
205
+
195
206
 
196
207
  describe "#filter_by_name" do
197
208
  it "should return filter object" do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: datagrid
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.1
4
+ version: 1.4.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bogdan Gusiev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-02-10 00:00:00.000000000 Z
11
+ date: 2016-03-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 3.2.18
19
+ version: 3.2.22.2
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
- version: 3.2.18
26
+ version: 3.2.22.2
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -260,6 +260,7 @@ files:
260
260
  - lib/tasks/datagrid_tasks.rake
261
261
  - spec/datagrid/active_model_spec.rb
262
262
  - spec/datagrid/column_names_attribute_spec.rb
263
+ - spec/datagrid/columns/column_spec.rb
263
264
  - spec/datagrid/columns_spec.rb
264
265
  - spec/datagrid/core_spec.rb
265
266
  - spec/datagrid/drivers/active_record_spec.rb
@@ -327,7 +328,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
327
328
  version: '0'
328
329
  requirements: []
329
330
  rubyforge_project:
330
- rubygems_version: 2.4.8
331
+ rubygems_version: 2.4.5
331
332
  signing_key:
332
333
  specification_version: 4
333
334
  summary: Ruby gem to create datagrids