active_record_sql_unionizer 0.0.2 → 0.0.3

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: 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