datagrid 0.5.4 → 0.6.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.
data/Gemfile CHANGED
@@ -10,16 +10,13 @@ group :development do
10
10
  gem "bundler", "~> 1.1.0"
11
11
  gem "jeweler", "~> 1.6.0"
12
12
 
13
- gem "ruby-debug", :platform => "mri_18"
14
- #gem "ruby-debug19", :platform => "mri_19"
13
+ gem "debugger"
15
14
 
16
- gem "mocha"
17
15
  gem "rspec"
18
16
  gem "accept_values_for"
19
17
  gem "nokogiri" # used to test html output
20
18
 
21
19
  gem "sqlite3-ruby"
22
- gem 'will_paginate', '2.3.15'
23
20
 
24
21
  gem "mongoid", "2.2.2"
25
22
  gem "mongo_mapper", ">=0.11.0"
@@ -189,6 +189,6 @@ If you need a custom interface for your report you should probably build it your
189
189
 
190
190
  Like datagrid?
191
191
 
192
- Follow the repository on [GitHub](https://github.com/bogdan/datagrid/toggle_watch).
192
+ Follow the repository on [GitHub](https://github.com/bogdan/datagrid).
193
193
 
194
194
  Read [author blog](http://gusiev.com).
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.5.4
1
+ 0.6.0
@@ -1,10 +1,14 @@
1
- <!--
1
+ <%#
2
2
  Local variables:
3
3
  * grid - instance of Datagrid
4
4
  * assets - Array of database Entities
5
5
  * options - passed options Hash
6
- -->
6
+ %>
7
7
  <%= content_tag :table, options[:html] do %>
8
- <%= datagrid_header(grid, options) %>
9
- <%= datagrid_rows(grid, assets, options) %>
8
+ <thead>
9
+ <%= datagrid_header(grid, options) %>
10
+ </thead>
11
+ <tbody>
12
+ <%= datagrid_rows(grid, assets, options) %>
13
+ </tbody>
10
14
  <% end %>
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "datagrid"
8
- s.version = "0.5.4"
8
+ s.version = "0.6.0"
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-04-11"
12
+ s.date = "2012-05-24"
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 = [
@@ -19,7 +19,6 @@ Gem::Specification.new do |s|
19
19
  ".document",
20
20
  ".rspec",
21
21
  "Gemfile",
22
- "Gemfile.lock",
23
22
  "LICENSE.txt",
24
23
  "Rakefile",
25
24
  "Readme.markdown",
@@ -47,7 +46,6 @@ Gem::Specification.new do |s|
47
46
  "lib/datagrid/filters/date_filter.rb",
48
47
  "lib/datagrid/filters/default_filter.rb",
49
48
  "lib/datagrid/filters/enum_filter.rb",
50
- "lib/datagrid/filters/filter_eval.rb",
51
49
  "lib/datagrid/filters/integer_filter.rb",
52
50
  "lib/datagrid/filters/string_filter.rb",
53
51
  "lib/datagrid/form_builder.rb",
@@ -93,13 +91,11 @@ Gem::Specification.new do |s|
93
91
  s.add_development_dependency(%q<rake>, [">= 0"])
94
92
  s.add_development_dependency(%q<bundler>, ["~> 1.1.0"])
95
93
  s.add_development_dependency(%q<jeweler>, ["~> 1.6.0"])
96
- s.add_development_dependency(%q<ruby-debug>, [">= 0"])
97
- s.add_development_dependency(%q<mocha>, [">= 0"])
94
+ s.add_development_dependency(%q<debugger>, [">= 0"])
98
95
  s.add_development_dependency(%q<rspec>, [">= 0"])
99
96
  s.add_development_dependency(%q<accept_values_for>, [">= 0"])
100
97
  s.add_development_dependency(%q<nokogiri>, [">= 0"])
101
98
  s.add_development_dependency(%q<sqlite3-ruby>, [">= 0"])
102
- s.add_development_dependency(%q<will_paginate>, ["= 2.3.15"])
103
99
  s.add_development_dependency(%q<mongoid>, ["= 2.2.2"])
104
100
  s.add_development_dependency(%q<mongo_mapper>, [">= 0.11.0"])
105
101
  s.add_development_dependency(%q<bson>, ["= 1.4.0"])
@@ -110,13 +106,11 @@ Gem::Specification.new do |s|
110
106
  s.add_dependency(%q<rake>, [">= 0"])
111
107
  s.add_dependency(%q<bundler>, ["~> 1.1.0"])
112
108
  s.add_dependency(%q<jeweler>, ["~> 1.6.0"])
113
- s.add_dependency(%q<ruby-debug>, [">= 0"])
114
- s.add_dependency(%q<mocha>, [">= 0"])
109
+ s.add_dependency(%q<debugger>, [">= 0"])
115
110
  s.add_dependency(%q<rspec>, [">= 0"])
116
111
  s.add_dependency(%q<accept_values_for>, [">= 0"])
117
112
  s.add_dependency(%q<nokogiri>, [">= 0"])
118
113
  s.add_dependency(%q<sqlite3-ruby>, [">= 0"])
119
- s.add_dependency(%q<will_paginate>, ["= 2.3.15"])
120
114
  s.add_dependency(%q<mongoid>, ["= 2.2.2"])
121
115
  s.add_dependency(%q<mongo_mapper>, [">= 0.11.0"])
122
116
  s.add_dependency(%q<bson>, ["= 1.4.0"])
@@ -128,13 +122,11 @@ Gem::Specification.new do |s|
128
122
  s.add_dependency(%q<rake>, [">= 0"])
129
123
  s.add_dependency(%q<bundler>, ["~> 1.1.0"])
130
124
  s.add_dependency(%q<jeweler>, ["~> 1.6.0"])
131
- s.add_dependency(%q<ruby-debug>, [">= 0"])
132
- s.add_dependency(%q<mocha>, [">= 0"])
125
+ s.add_dependency(%q<debugger>, [">= 0"])
133
126
  s.add_dependency(%q<rspec>, [">= 0"])
134
127
  s.add_dependency(%q<accept_values_for>, [">= 0"])
135
128
  s.add_dependency(%q<nokogiri>, [">= 0"])
136
129
  s.add_dependency(%q<sqlite3-ruby>, [">= 0"])
137
- s.add_dependency(%q<will_paginate>, ["= 2.3.15"])
138
130
  s.add_dependency(%q<mongoid>, ["= 2.2.2"])
139
131
  s.add_dependency(%q<mongo_mapper>, [">= 0.11.0"])
140
132
  s.add_dependency(%q<bson>, ["= 1.4.0"])
@@ -1,16 +1,24 @@
1
- require "datagrid/core"
2
- require "datagrid/active_model"
3
- require "datagrid/filters"
4
- require "datagrid/columns"
5
- require "datagrid/ordering"
1
+ require "action_view"
6
2
 
7
- require "datagrid/helper"
8
- require "datagrid/form_builder"
9
- require "datagrid/renderer"
3
+ module Datagrid
10
4
 
11
- require "datagrid/engine"
5
+ extend ActiveSupport::Autoload
12
6
 
13
- module Datagrid
7
+ autoload :Core
8
+ autoload :ActiveModel
9
+ autoload :Filters
10
+ autoload :Columns
11
+ autoload :Ordering
12
+
13
+ autoload :Helper
14
+ ActionView::Base.send(:include, Datagrid::Helper)
15
+
16
+ autoload :FormBuilder
17
+ ActionView::Helpers::FormBuilder.send(:include, Datagrid::FormBuilder)
18
+
19
+ autoload :Renderer
20
+
21
+ autoload :Engine
14
22
 
15
23
  def self.included(base)
16
24
  base.extend ClassMethods
@@ -42,6 +42,10 @@ module Datagrid
42
42
  end
43
43
  end
44
44
 
45
+ def current_scope
46
+ @scope
47
+ end
48
+
45
49
  def driver
46
50
  @driver ||= Drivers::AbstractDriver.guess_driver(scope).new
47
51
  end
@@ -95,15 +99,16 @@ module Datagrid
95
99
  end
96
100
 
97
101
  def scope
98
- self.class.scope
102
+ check_scope_defined!
103
+ instance_eval(&self.class.current_scope)
99
104
  end
100
105
 
101
106
  def driver
102
107
  self.class.driver
103
108
  end
104
109
 
105
- def check_scope_defined!(message)
106
- self.class.check_scope_defined!(message)
110
+ def check_scope_defined!(message = nil )
111
+ self.class.send :check_scope_defined!, message
107
112
  end
108
113
 
109
114
  end # InstanceMethods
@@ -28,7 +28,7 @@ module Datagrid
28
28
  end
29
29
 
30
30
  def default_order(scope, column_name)
31
- scope.fields.keys.include?(column_name.to_s) ? column_name : nil
31
+ to_scope(scope).klass.fields.keys.include?(column_name.to_s) ? column_name : nil
32
32
  end
33
33
 
34
34
  def greater_equal(scope, field, value)
@@ -7,7 +7,6 @@ module Datagrid
7
7
  require "datagrid/filters/boolean_filter"
8
8
  require "datagrid/filters/date_filter"
9
9
  require "datagrid/filters/default_filter"
10
- require "datagrid/filters/filter_eval"
11
10
  require "datagrid/filters/integer_filter"
12
11
  require "datagrid/filters/composite_filters"
13
12
  require "datagrid/filters/string_filter"
@@ -67,9 +66,8 @@ module Datagrid
67
66
  protected
68
67
  def default_filter(attribute)
69
68
  check_scope_defined!("Scope should be defined before filters")
70
- grid = self
71
- lambda do |value|
72
- grid.driver.where(scope, attribute => value)
69
+ lambda do |value, grid|
70
+ grid.driver.where(self, attribute => value)
73
71
  end
74
72
  end
75
73
 
@@ -87,7 +85,7 @@ module Datagrid
87
85
  def assets
88
86
  result = super
89
87
  self.class.filters.each do |filter|
90
- result = filter.apply(result, filter_value(filter))
88
+ result = filter.apply(self, result, filter_value(filter))
91
89
  end
92
90
  result
93
91
  end
@@ -1,4 +1,3 @@
1
- require "datagrid/filters/filter_eval"
2
1
 
3
2
  class Datagrid::Filters::BaseFilter
4
3
 
@@ -15,13 +14,18 @@ class Datagrid::Filters::BaseFilter
15
14
  raise NotImplementedError, "#format(value) suppose to be overwritten"
16
15
  end
17
16
 
18
- def apply(scope, value)
17
+ def apply(grid_object, scope, value)
19
18
  if value.nil?
20
19
  return scope if !allow_nil?
21
20
  else
22
21
  return scope if value.blank? && !allow_blank?
23
22
  end
24
- ::Datagrid::Filters::FilterEval.new(self, scope, value).run
23
+
24
+ if block.arity >= 2 || block.arity < 0
25
+ scope.instance_exec(value, grid_object, &block)
26
+ else
27
+ scope.instance_exec(value, &block)
28
+ end
25
29
  end
26
30
 
27
31
  def format_values(value)
@@ -11,8 +11,8 @@ class Datagrid::Filters::BooleanEnumFilter < Datagrid::Filters::EnumFilter
11
11
  super(report, attribute, options, &block)
12
12
  end
13
13
 
14
- def apply(scope, value)
15
- super(scope, to_boolean(value))
14
+ def apply(grid_object, scope, value)
15
+ super(grid_object, scope, to_boolean(value))
16
16
  end
17
17
 
18
18
  def to_boolean(value)
@@ -16,22 +16,22 @@ module Datagrid
16
16
  from_options = normalize_composite_filter_options(from_options, field)
17
17
  to_options = normalize_composite_filter_options(to_options, field)
18
18
 
19
- filter(from_options[:name] || :"from_#{field}", :date, from_options) do |date|
20
- driver.greater_equal(self, field, date)
19
+ filter(from_options[:name] || :"from_#{field}", :date, from_options) do |date, grid|
20
+ grid.driver.greater_equal(self, field, date)
21
21
  end
22
- filter(to_options[:name] || :"to_#{field}", :date, to_options) do |date|
23
- driver.less_equal(self, field, date)
22
+ filter(to_options[:name] || :"to_#{field}", :date, to_options) do |date, grid|
23
+ grid.driver.less_equal(self, field, date)
24
24
  end
25
25
  end
26
26
 
27
27
  def integer_range_filters(field, from_options = {}, to_options = {})
28
28
  from_options = normalize_composite_filter_options(from_options, field)
29
29
  to_options = normalize_composite_filter_options(to_options, field)
30
- filter(from_options[:name] || :"from_#{field}", :integer, from_options) do |value|
31
- driver.greater_equal(self, field, value)
30
+ filter(from_options[:name] || :"from_#{field}", :integer, from_options) do |value, grid|
31
+ grid.driver.greater_equal(self, field, value)
32
32
  end
33
- filter(to_options[:name] || :"to_#{field}", :integer, to_options) do |value|
34
- driver.less_equal(self, field, value)
33
+ filter(to_options[:name] || :"to_#{field}", :integer, to_options) do |value, grid|
34
+ grid.driver.less_equal(self, field, value)
35
35
  end
36
36
  end
37
37
 
@@ -13,7 +13,7 @@ module Datagrid
13
13
 
14
14
  def datagrid_label(filter_or_attribute, options = {})
15
15
  filter = get_filter(filter_or_attribute)
16
- self.label(filter.name, filter.header, options = {})
16
+ self.label(filter.name, filter.header, options)
17
17
  end
18
18
 
19
19
  protected
@@ -45,7 +45,7 @@ module Datagrid
45
45
  def datagrid_integer_filter(attribute_or_filter, options = {})
46
46
  filter = get_filter(attribute_or_filter)
47
47
  if filter.multiple && self.object[filter.name].blank?
48
- options[:value] = ""
48
+ options[:value] = ""
49
49
  end
50
50
  text_field filter.name, options
51
51
  end
@@ -55,12 +55,12 @@ module Datagrid
55
55
  end
56
56
 
57
57
  def get_attribute(attribute_or_filter)
58
- attribute_or_filter.is_a?(Symbol) ? attribute_or_filter : attribute_or_filter.name
58
+ attribute_or_filter.is_a?(Symbol) ? attribute_or_filter : attribute_or_filter.name
59
59
  end
60
60
 
61
61
  def get_filter(attribute_or_filter)
62
- if attribute_or_filter.is_a?(Symbol)
63
- object.class.filter_by_name(attribute_or_filter) ||
62
+ if attribute_or_filter.is_a?(Symbol)
63
+ object.class.filter_by_name(attribute_or_filter) ||
64
64
  raise(Error, "filter #{attribute_or_filter} not found")
65
65
  else
66
66
  attribute_or_filter
@@ -80,5 +80,4 @@ module Datagrid
80
80
  end
81
81
  end
82
82
 
83
- ActionView::Helpers::FormBuilder.send(:include, Datagrid::FormBuilder)
84
83
 
@@ -36,4 +36,4 @@ module Datagrid
36
36
  end
37
37
  end
38
38
  end
39
- ActionView::Base.send(:include, Datagrid::Helper)
39
+
@@ -12,7 +12,15 @@ module Datagrid
12
12
  end
13
13
 
14
14
  def format_value(grid, column, asset)
15
- value = column.html? ? @template.instance_exec(asset, grid, &column.block) : column.value(asset, grid)
15
+ value = if column.html?
16
+ if column.block.arity > 1
17
+ @template.instance_exec(asset, grid, &column.block)
18
+ else
19
+ @template.instance_exec(asset, &column.block)
20
+ end
21
+ else
22
+ column.value(asset, grid)
23
+ end
16
24
  url = column.options[:url] && column.options[:url].call(asset)
17
25
  if url
18
26
  @template.link_to(value, url)
@@ -32,7 +40,7 @@ module Datagrid
32
40
  options[:html][:class] ||= "datagrid #{grid.class.to_s.underscore.demodulize}"
33
41
  assets = args.any? ? args.shift : grid.assets
34
42
  paginate = options[:paginate]
35
- if paginate
43
+ if paginate
36
44
  ::Datagrid::Utils.warn_once(":paginate option is deprecated. Looks to https://github.com/bogdan/datagrid/wiki/Frontend.")
37
45
  assets = assets.paginate(paginate)
38
46
  end
@@ -57,7 +65,7 @@ module Datagrid
57
65
  def order_for(grid, column)
58
66
  @template.content_tag(:div, :class => "order") do
59
67
  @template.link_to(
60
- I18n.t("datagrid.table.order.asc", :default => "ASC"),
68
+ I18n.t("datagrid.table.order.asc", :default => "ASC"),
61
69
  @template.url_for(grid.param_name => grid.attributes.merge(:order => column.name, :descending => false)),
62
70
  :class => "order asc"
63
71
  ) + " " + @template.link_to(
@@ -119,9 +119,9 @@ describe Datagrid::FormBuilder do
119
119
  test_report do
120
120
  scope {Entry}
121
121
  filter(
122
- :name, :enum,
123
- :include_blank => false,
124
- :multiple => false,
122
+ :name, :enum,
123
+ :include_blank => false,
124
+ :multiple => false,
125
125
  :select => []
126
126
  )
127
127
  end
@@ -143,10 +143,12 @@ describe Datagrid::FormBuilder do
143
143
  '<label for="report_name">Name</label>'
144
144
  )
145
145
  end
146
+ it "should pass options through to the helper" do
147
+ view.datagrid_label(:name, :class => 'foo').should equal_to_dom(
148
+ '<label class="foo" for="report_name">Name</label>'
149
+ )
150
+ end
146
151
  end
147
-
148
-
149
-
150
152
  end
151
153
 
152
154
 
@@ -1,5 +1,4 @@
1
1
  require 'spec_helper'
2
- require "will_paginate"
3
2
  require "active_support/core_ext/hash"
4
3
  require "active_support/core_ext/object"
5
4
 
@@ -3,11 +3,11 @@ require "datagrid/rspec"
3
3
 
4
4
 
5
5
  describe SimpleReport do
6
-
6
+
7
7
  it_should_behave_like 'Datagrid'
8
-
8
+
9
9
  let(:group) { Group.create!(:name => "Pop") }
10
-
10
+
11
11
  subject do
12
12
  SimpleReport.new(
13
13
  :group_id => group.id,
@@ -37,7 +37,6 @@ describe SimpleReport do
37
37
  it "should return defined scope of objects" do
38
38
  subject.scope.should respond_to(:each)
39
39
  end
40
-
41
40
 
42
41
  context "when not defined on class level" do
43
42
  subject do
@@ -48,11 +47,37 @@ describe SimpleReport do
48
47
  lambda {
49
48
  subject.scope
50
49
  }.should raise_error(Datagrid::ConfigurationError)
51
-
50
+
52
51
  end
53
52
  end
54
53
  end
55
54
 
55
+ end
56
+
57
+ class SimpleReportWithContext < SimpleReport
58
+ attr_accessor :current_user
59
+ scope do
60
+ current_user.things
61
+ end
62
+ end
63
+
64
+ describe SimpleReportWithContext, "with context" do
65
+
66
+ subject do
67
+
68
+ SimpleReportWithContext.new(
69
+ :name => "Star",
70
+ :category => "first",
71
+ :disabled => false,
72
+ :confirmed => false
73
+ )
74
+ end
56
75
 
76
+ it "should call " do
77
+ current_user = Object.new
78
+ current_user.should_receive(:things).and_return([])
79
+ SimpleReportWithContext.new(:current_user => current_user).scope
80
+ end
57
81
 
58
82
  end
83
+
@@ -13,7 +13,7 @@ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
13
13
  $LOAD_PATH.unshift(File.dirname(__FILE__))
14
14
 
15
15
  require "active_record"
16
- require "will_paginate"
16
+ require 'action_view'
17
17
  require "mongoid"
18
18
  require "mongo_mapper"
19
19
  require 'datagrid'
@@ -6,7 +6,6 @@ ActiveRecord::Base.logger = TEST_LOGGER
6
6
 
7
7
 
8
8
 
9
- WillPaginate.enable
10
9
 
11
10
  ActiveRecord::Schema.verbose = false
12
11
  ActiveRecord::Schema.define(:version => 1) do
@@ -6,10 +6,10 @@ Mongoid.from_hash({
6
6
  "host" => "localhost",
7
7
  "database" =>"datagrid_mongoid",
8
8
  "autocreate_indexes" => true,
9
+ "logger" => nil,
9
10
  })
10
11
 
11
12
  #Mongoid.logger = TEST_LOGGER #TODO: understand why still output to STDOUT
12
- Mongoid.logger = nil
13
13
 
14
14
 
15
15
  class MongoidEntry
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.5.4
4
+ version: 0.6.0
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-04-11 00:00:00.000000000 Z
12
+ date: 2012-05-24 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
16
- requirement: &9639800 !ruby/object:Gem::Requirement
16
+ requirement: &17705320 !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: *9639800
24
+ version_requirements: *17705320
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rake
27
- requirement: &9638360 !ruby/object:Gem::Requirement
27
+ requirement: &17704400 !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: *9638360
35
+ version_requirements: *17704400
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: bundler
38
- requirement: &9637320 !ruby/object:Gem::Requirement
38
+ requirement: &17718840 !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: *9637320
46
+ version_requirements: *17718840
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: jeweler
49
- requirement: &9636560 !ruby/object:Gem::Requirement
49
+ requirement: &17715720 !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: *9636560
57
+ version_requirements: *17715720
58
58
  - !ruby/object:Gem::Dependency
59
- name: ruby-debug
60
- requirement: &9634860 !ruby/object:Gem::Requirement
59
+ name: debugger
60
+ requirement: &17713920 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,21 +65,10 @@ dependencies:
65
65
  version: '0'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *9634860
69
- - !ruby/object:Gem::Dependency
70
- name: mocha
71
- requirement: &9632840 !ruby/object:Gem::Requirement
72
- none: false
73
- requirements:
74
- - - ! '>='
75
- - !ruby/object:Gem::Version
76
- version: '0'
77
- type: :development
78
- prerelease: false
79
- version_requirements: *9632840
68
+ version_requirements: *17713920
80
69
  - !ruby/object:Gem::Dependency
81
70
  name: rspec
82
- requirement: &9647700 !ruby/object:Gem::Requirement
71
+ requirement: &17711920 !ruby/object:Gem::Requirement
83
72
  none: false
84
73
  requirements:
85
74
  - - ! '>='
@@ -87,10 +76,10 @@ dependencies:
87
76
  version: '0'
88
77
  type: :development
89
78
  prerelease: false
90
- version_requirements: *9647700
79
+ version_requirements: *17711920
91
80
  - !ruby/object:Gem::Dependency
92
81
  name: accept_values_for
93
- requirement: &9644920 !ruby/object:Gem::Requirement
82
+ requirement: &17726920 !ruby/object:Gem::Requirement
94
83
  none: false
95
84
  requirements:
96
85
  - - ! '>='
@@ -98,10 +87,10 @@ dependencies:
98
87
  version: '0'
99
88
  type: :development
100
89
  prerelease: false
101
- version_requirements: *9644920
90
+ version_requirements: *17726920
102
91
  - !ruby/object:Gem::Dependency
103
92
  name: nokogiri
104
- requirement: &9642560 !ruby/object:Gem::Requirement
93
+ requirement: &17725080 !ruby/object:Gem::Requirement
105
94
  none: false
106
95
  requirements:
107
96
  - - ! '>='
@@ -109,10 +98,10 @@ dependencies:
109
98
  version: '0'
110
99
  type: :development
111
100
  prerelease: false
112
- version_requirements: *9642560
101
+ version_requirements: *17725080
113
102
  - !ruby/object:Gem::Dependency
114
103
  name: sqlite3-ruby
115
- requirement: &9641040 !ruby/object:Gem::Requirement
104
+ requirement: &17723640 !ruby/object:Gem::Requirement
116
105
  none: false
117
106
  requirements:
118
107
  - - ! '>='
@@ -120,21 +109,10 @@ dependencies:
120
109
  version: '0'
121
110
  type: :development
122
111
  prerelease: false
123
- version_requirements: *9641040
124
- - !ruby/object:Gem::Dependency
125
- name: will_paginate
126
- requirement: &9656640 !ruby/object:Gem::Requirement
127
- none: false
128
- requirements:
129
- - - =
130
- - !ruby/object:Gem::Version
131
- version: 2.3.15
132
- type: :development
133
- prerelease: false
134
- version_requirements: *9656640
112
+ version_requirements: *17723640
135
113
  - !ruby/object:Gem::Dependency
136
114
  name: mongoid
137
- requirement: &9655700 !ruby/object:Gem::Requirement
115
+ requirement: &17723000 !ruby/object:Gem::Requirement
138
116
  none: false
139
117
  requirements:
140
118
  - - =
@@ -142,10 +120,10 @@ dependencies:
142
120
  version: 2.2.2
143
121
  type: :development
144
122
  prerelease: false
145
- version_requirements: *9655700
123
+ version_requirements: *17723000
146
124
  - !ruby/object:Gem::Dependency
147
125
  name: mongo_mapper
148
- requirement: &9655180 !ruby/object:Gem::Requirement
126
+ requirement: &17722200 !ruby/object:Gem::Requirement
149
127
  none: false
150
128
  requirements:
151
129
  - - ! '>='
@@ -153,10 +131,10 @@ dependencies:
153
131
  version: 0.11.0
154
132
  type: :development
155
133
  prerelease: false
156
- version_requirements: *9655180
134
+ version_requirements: *17722200
157
135
  - !ruby/object:Gem::Dependency
158
136
  name: bson
159
- requirement: &9654520 !ruby/object:Gem::Requirement
137
+ requirement: &17721480 !ruby/object:Gem::Requirement
160
138
  none: false
161
139
  requirements:
162
140
  - - =
@@ -164,10 +142,10 @@ dependencies:
164
142
  version: 1.4.0
165
143
  type: :development
166
144
  prerelease: false
167
- version_requirements: *9654520
145
+ version_requirements: *17721480
168
146
  - !ruby/object:Gem::Dependency
169
147
  name: bson_ext
170
- requirement: &9653580 !ruby/object:Gem::Requirement
148
+ requirement: &17720880 !ruby/object:Gem::Requirement
171
149
  none: false
172
150
  requirements:
173
151
  - - =
@@ -175,10 +153,10 @@ dependencies:
175
153
  version: 1.4.0
176
154
  type: :development
177
155
  prerelease: false
178
- version_requirements: *9653580
156
+ version_requirements: *17720880
179
157
  - !ruby/object:Gem::Dependency
180
158
  name: fastercsv
181
- requirement: &9652580 !ruby/object:Gem::Requirement
159
+ requirement: &17720180 !ruby/object:Gem::Requirement
182
160
  none: false
183
161
  requirements:
184
162
  - - ! '>='
@@ -186,7 +164,7 @@ dependencies:
186
164
  version: '0'
187
165
  type: :development
188
166
  prerelease: false
189
- version_requirements: *9652580
167
+ version_requirements: *17720180
190
168
  description: This allows you to easily build datagrid aka data tables with sortable
191
169
  columns and filters
192
170
  email: agresso@gmail.com
@@ -198,7 +176,6 @@ files:
198
176
  - .document
199
177
  - .rspec
200
178
  - Gemfile
201
- - Gemfile.lock
202
179
  - LICENSE.txt
203
180
  - Rakefile
204
181
  - Readme.markdown
@@ -226,7 +203,6 @@ files:
226
203
  - lib/datagrid/filters/date_filter.rb
227
204
  - lib/datagrid/filters/default_filter.rb
228
205
  - lib/datagrid/filters/enum_filter.rb
229
- - lib/datagrid/filters/filter_eval.rb
230
206
  - lib/datagrid/filters/integer_filter.rb
231
207
  - lib/datagrid/filters/string_filter.rb
232
208
  - lib/datagrid/form_builder.rb
@@ -272,7 +248,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
272
248
  version: '0'
273
249
  segments:
274
250
  - 0
275
- hash: -2917374290940836838
251
+ hash: -1581920802397090213
276
252
  required_rubygems_version: !ruby/object:Gem::Requirement
277
253
  none: false
278
254
  requirements:
@@ -1,151 +0,0 @@
1
- GEM
2
- remote: http://rubygems.org/
3
- specs:
4
- accept_values_for (0.4.3)
5
- activemodel (>= 3.0.0)
6
- rspec
7
- actionmailer (3.1.3)
8
- actionpack (= 3.1.3)
9
- mail (~> 2.3.0)
10
- actionpack (3.1.3)
11
- activemodel (= 3.1.3)
12
- activesupport (= 3.1.3)
13
- builder (~> 3.0.0)
14
- erubis (~> 2.7.0)
15
- i18n (~> 0.6)
16
- rack (~> 1.3.5)
17
- rack-cache (~> 1.1)
18
- rack-mount (~> 0.8.2)
19
- rack-test (~> 0.6.1)
20
- sprockets (~> 2.0.3)
21
- activemodel (3.1.3)
22
- activesupport (= 3.1.3)
23
- builder (~> 3.0.0)
24
- i18n (~> 0.6)
25
- activerecord (3.1.3)
26
- activemodel (= 3.1.3)
27
- activesupport (= 3.1.3)
28
- arel (~> 2.2.1)
29
- tzinfo (~> 0.3.29)
30
- activeresource (3.1.3)
31
- activemodel (= 3.1.3)
32
- activesupport (= 3.1.3)
33
- activesupport (3.1.3)
34
- multi_json (~> 1.0)
35
- arel (2.2.1)
36
- bson (1.4.0)
37
- bson_ext (1.4.0)
38
- builder (3.0.0)
39
- columnize (0.3.5)
40
- diff-lcs (1.1.3)
41
- erubis (2.7.0)
42
- fastercsv (1.5.4)
43
- git (1.2.5)
44
- hike (1.2.1)
45
- i18n (0.6.0)
46
- jeweler (1.6.4)
47
- bundler (~> 1.0)
48
- git (>= 1.2.5)
49
- rake
50
- json (1.6.3)
51
- linecache (0.46)
52
- rbx-require-relative (> 0.0.4)
53
- mail (2.3.0)
54
- i18n (>= 0.4.0)
55
- mime-types (~> 1.16)
56
- treetop (~> 1.4.8)
57
- metaclass (0.0.1)
58
- mime-types (1.17.2)
59
- mocha (0.10.0)
60
- metaclass (~> 0.0.1)
61
- mongo (1.4.0)
62
- bson (= 1.4.0)
63
- mongo_mapper (0.11.0)
64
- activemodel (~> 3.0)
65
- activesupport (~> 3.0)
66
- plucky (~> 0.4.0)
67
- mongoid (2.2.2)
68
- activemodel (~> 3.0)
69
- mongo (~> 1.3)
70
- tzinfo (~> 0.3.22)
71
- multi_json (1.0.4)
72
- nokogiri (1.5.0)
73
- plucky (0.4.3)
74
- mongo (~> 1.3)
75
- polyglot (0.3.3)
76
- rack (1.3.5)
77
- rack-cache (1.1)
78
- rack (>= 0.4)
79
- rack-mount (0.8.3)
80
- rack (>= 1.0.0)
81
- rack-ssl (1.3.2)
82
- rack
83
- rack-test (0.6.1)
84
- rack (>= 1.0)
85
- rails (3.1.3)
86
- actionmailer (= 3.1.3)
87
- actionpack (= 3.1.3)
88
- activerecord (= 3.1.3)
89
- activeresource (= 3.1.3)
90
- activesupport (= 3.1.3)
91
- bundler (~> 1.0)
92
- railties (= 3.1.3)
93
- railties (3.1.3)
94
- actionpack (= 3.1.3)
95
- activesupport (= 3.1.3)
96
- rack-ssl (~> 1.3.2)
97
- rake (>= 0.8.7)
98
- rdoc (~> 3.4)
99
- thor (~> 0.14.6)
100
- rake (0.9.2.2)
101
- rbx-require-relative (0.0.5)
102
- rdoc (3.11)
103
- json (~> 1.4)
104
- rspec (2.9.0)
105
- rspec-core (~> 2.9.0)
106
- rspec-expectations (~> 2.9.0)
107
- rspec-mocks (~> 2.9.0)
108
- rspec-core (2.9.0)
109
- rspec-expectations (2.9.1)
110
- diff-lcs (~> 1.1.3)
111
- rspec-mocks (2.9.0)
112
- ruby-debug (0.10.4)
113
- columnize (>= 0.1)
114
- ruby-debug-base (~> 0.10.4.0)
115
- ruby-debug-base (0.10.4)
116
- linecache (>= 0.3)
117
- sprockets (2.0.3)
118
- hike (~> 1.2)
119
- rack (~> 1.0)
120
- tilt (~> 1.1, != 1.3.0)
121
- sqlite3 (1.3.5)
122
- sqlite3-ruby (1.3.3)
123
- sqlite3 (>= 1.3.3)
124
- thor (0.14.6)
125
- tilt (1.3.3)
126
- treetop (1.4.10)
127
- polyglot
128
- polyglot (>= 0.3.1)
129
- tzinfo (0.3.31)
130
- will_paginate (2.3.15)
131
-
132
- PLATFORMS
133
- ruby
134
-
135
- DEPENDENCIES
136
- accept_values_for
137
- bson (= 1.4.0)
138
- bson_ext (= 1.4.0)
139
- bundler (~> 1.1.0)
140
- fastercsv
141
- jeweler (~> 1.6.0)
142
- mocha
143
- mongo_mapper (>= 0.11.0)
144
- mongoid (= 2.2.2)
145
- nokogiri
146
- rails (>= 3.0)
147
- rake
148
- rspec
149
- ruby-debug
150
- sqlite3-ruby
151
- will_paginate (= 2.3.15)
@@ -1,31 +0,0 @@
1
- # ActiveRecord is a little brain fuck.
2
- # We can not call instance_eval on ActiveRecord::Relation class
3
- # because it will automatically convert it to an array because #instance_eval
4
- # is not included in the method list that do not cause force result loading
5
- # That is why we need this helper class
6
- class Datagrid::Filters::FilterEval
7
-
8
- attr_accessor :filter, :scope, :value
9
-
10
- def initialize(filter, scope, value)
11
- @filter = filter
12
- @scope = scope
13
- @value = value
14
- end
15
-
16
- def run
17
- instance_exec @value, &(@filter.block)
18
- end
19
-
20
- def driver
21
- @filter.grid.driver
22
- end
23
-
24
- def method_missing(meth, *args, &blk)
25
- if @scope.respond_to?(meth)
26
- @scope.send(meth, *args, &blk)
27
- else
28
- super(meth, *args, &blk)
29
- end
30
- end
31
- end