active_record_sql_unionizer 0.0.2 → 0.0.3

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: 6edeb9257c4226bca2f11ddf5f60659ebecd58b2
4
- data.tar.gz: a8ea988d3fc032efdae9a2c6361c1929bd0cf7a8
3
+ metadata.gz: 491f97c676df938bddad121f8f81b80da7d2c825
4
+ data.tar.gz: 499cb2e56377a4edaf55110e5086b3104cbb9902
5
5
  SHA512:
6
- metadata.gz: 20096ba4f489c6646f714fec2d9616442e96025e466bc83ec0e248342fa3e9b67423d894653ce58d2e218d609fd4109944be64b0f1a1bd58749ea51a2ec99f09
7
- data.tar.gz: ab817088c9827fad57ffe147bb4d5d1fa462146489221d5222e75da105f2cb03cf7eb52771f23699772ce842ffee3eeb52d1928ce14c3cea26d0d6b5aba9bdaf
6
+ metadata.gz: d66d5f208c71708d333ef9e82a4e7a101eae75a28f30540872f8251b90e5d21cf9636ee70ec409e9a7d4eeba52983a216922123d3d24631c35d9f7f22b9327cd
7
+ data.tar.gz: 1938ab1c27c16b181c4ec1f45eacdb6c2ccfe31c6cca8b6f375fef1cad6ec0713a5b989ed4161d77032ad664ce6b825886f47684a14da680cb88b988a9e1eceb
@@ -21,8 +21,10 @@ module ActiveRecordSqlUnionizer
21
21
  query
22
22
  when Symbol
23
23
  unionizer_helper.handle_symbol_arg(self, query)
24
- else
24
+ when ActiveRecord::Relation
25
25
  query.to_sql
26
+ else
27
+ raise(UnionizerError.new(type: :unknown_arg_type))
26
28
  end
27
29
 
28
30
  "(#{query_string})"
@@ -35,6 +37,9 @@ module ActiveRecordSqlUnionizer
35
37
  end
36
38
  end
37
39
 
40
+
41
+ private
42
+
38
43
  class UnionizerHelper
39
44
  #for 'private' methods/ readability
40
45
 
@@ -52,11 +57,11 @@ module ActiveRecordSqlUnionizer
52
57
  # @param [Symbol] arg
53
58
  #
54
59
  # @return [String, UnionizerError]
55
- def handle_symbol_arg(klass, arg)
56
- if klass.respond_to?(arg)
57
- klass.send(arg).to_sql
60
+ def handle_symbol_arg(klass, method_name)
61
+ if klass.respond_to?(method_name)
62
+ klass.send(method_name).to_sql
58
63
  else
59
- raise(UnionizerError.new(klass.to_s, arg))
64
+ raise(UnionizerError.new(type: :bad_method, class: klass.to_s, method_name: method_name))
60
65
  end
61
66
  end
62
67
 
@@ -74,8 +79,12 @@ module ActiveRecordSqlUnionizer
74
79
  # @param [Symbol] method_name
75
80
  #
76
81
  # @return [UnionizerError]
77
- def initialize(klass_name, method_name)
78
- msg = "ActiveRecordSqlUnionizer expected #{klass_name} to respond to #{method_name}, but it does not"
82
+ def initialize(options)
83
+ if options[:type] == :unknown_arg_type
84
+ msg = "ActiveRecordSqlUnionizer received an arguement that was not a SQL string, ActiveRecord::Relation, or scoping method name"
85
+ elsif options[:type] == :bad_method
86
+ msg = "ActiveRecordSqlUnionizer expected #{options[:class]} to respond to #{options[:method_name]}, but it does not"
87
+ end
79
88
  super(msg)
80
89
  end
81
90
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_record_sql_unionizer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeff Hostetler
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-12-22 00:00:00.000000000 Z
11
+ date: 2018-01-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord