merge_filter 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 59fa277069936dbd7372984695f1c982c381498c
4
- data.tar.gz: c27f63c3fe1716a2220b4bb2c839bf935446d971
3
+ metadata.gz: 3f6eb03ecd3bab56adb2d65d969a0d966164fa7d
4
+ data.tar.gz: fe4c30f0c64381fd46077981613175c9ba3ae52d
5
5
  SHA512:
6
- metadata.gz: bd2ccbba99c502738fde7237929733af57bbd076dfdfd6d89891356e3a437a0a208286c1be10bb9a83898752037b2e022f5fa4288773b257a48fed63634a5809
7
- data.tar.gz: 626dec8c043a8a12bd3b8077cd078e33f88713f872dd283524611ed2f71e9b78b00787da0a3aa30da7fca984a19cebe50b0c861c145f9419b8fe91c582cf926e
6
+ metadata.gz: 6050e4d484b64c25f8464997fb13abda40d5bd0f24e753e2f74d09d83ea2e639432be0ca98702285755fb5c5eff786af54ef1e71a05a06ecb28efcb6115561fe
7
+ data.tar.gz: 69999a194602fce6dc650407ae01ffabf1f0a1c692d0e9a7b2bfecd8ed79e7c4427af64413f78449dcd2fbb4ff9a6cbfeac6d92abb16ba5b11f6c6933babb87e
data/lib/merge_filter.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  require "merge_filter/version"
2
+ require "merge_filter/undefined_filter"
2
3
 
3
4
  module MergeFilter
4
5
  attr_reader :filter
@@ -21,7 +22,7 @@ module MergeFilter
21
22
  def filter_by column, &block
22
23
  define_method column do |*args|
23
24
  if block_given?
24
- yield args, default_scope
25
+ yield filter.fetch(column), default_scope
25
26
  else
26
27
  default_scope.where(column => args)
27
28
  end
@@ -35,7 +36,11 @@ module MergeFilter
35
36
 
36
37
  def records
37
38
  filter.inject(default_scope) do |scope, (key, value)|
38
- scope.merge(__send__(key, value))
39
+ if respond_to?(key)
40
+ scope.merge(__send__(key, value))
41
+ else
42
+ raise MergeFilter::UndefinedFilter, "There is no filter_by definition for #{key}."
43
+ end
39
44
  end
40
45
  end
41
46
  end
@@ -0,0 +1,4 @@
1
+ module MergeFilter
2
+ class UndefinedFilter < StandardError
3
+ end
4
+ end
@@ -1,3 +1,3 @@
1
1
  module MergeFilter
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: merge_filter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thomas Cioppettini
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-02-24 00:00:00.000000000 Z
11
+ date: 2015-03-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -51,6 +51,7 @@ files:
51
51
  - README.md
52
52
  - Rakefile
53
53
  - lib/merge_filter.rb
54
+ - lib/merge_filter/undefined_filter.rb
54
55
  - lib/merge_filter/version.rb
55
56
  - merge_filter.gemspec
56
57
  homepage: ''
@@ -73,7 +74,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
73
74
  version: '0'
74
75
  requirements: []
75
76
  rubyforge_project:
76
- rubygems_version: 2.4.5
77
+ rubygems_version: 2.4.6
77
78
  signing_key:
78
79
  specification_version: 4
79
80
  summary: DSL for filtering ActiveRecord models