merge_filter 0.0.1 → 0.0.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: 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