loquor 1.2.1 → 1.3.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 39b95098c1be5aa6115bfe299f9e0ffe900b1c34
4
- data.tar.gz: df73558cb5a1f5e9215f102c3c099db768457809
3
+ metadata.gz: 0ad76c89016157ae20f02505acbda23ca0cc3617
4
+ data.tar.gz: 277e5922c2a7b41053fececa763bf96fd1001e21
5
5
  SHA512:
6
- metadata.gz: 7132361f5e11f1f4abcf6696389d54e4805aefc211a83a984fc04927ef58bc9c0c7bb4b5b6012f3b0eb06bdeac764ce08129948f50a66fa13ba001209edd137d
7
- data.tar.gz: af3c8063b4a0af2f67a04ec00981943d6f7bfadfffe40cb924e7c8fe7f17ba7f86790cdea863edb086a7069d2fe343a7e6695521712d53cd9f6c0b12653da2ea
6
+ metadata.gz: 87967e954097c11795e7cc931b77f955974b08a24a7c31fdf32069a6378ff2597f7ddb3339522f34903de510e6488f59b1f8254bfa157bfe671669b26bfa168c
7
+ data.tar.gz: 497f582435455dd8eabe8e3f2262872a3e53a77186a86684b5ff80f17931fba86ab7ba87f036c9b1edc97f58fa93af5f9728f42fa2dbe9337d3a167c99dde456
data/CHANGELOG.md CHANGED
@@ -1,3 +1,6 @@
1
+ # 1.3.0 / 2014-02-20
2
+ * [FEATURE] Allow for SQL fragment strings within calls to where.
3
+
1
4
  # 1.2.1 / 2014-02-19
2
5
  * [BUGFIX] Posts should return JSON, not resources
3
6
 
@@ -1,16 +1,22 @@
1
1
  module Loquor
2
2
  class ApiCall::Index < ApiCall
3
3
 
4
- attr_reader :criteria
4
+ attr_reader :criteria, :clauses
5
5
 
6
6
  def initialize(klass)
7
7
  super(klass)
8
8
  @criteria = {}
9
+ @clauses = []
9
10
  end
10
11
 
11
- def where(value)
12
- value.each do |key, value|
13
- @criteria[key] = value
12
+ def where(data)
13
+ case data
14
+ when String
15
+ @clauses << data
16
+ else
17
+ data.each do |key, value|
18
+ @criteria[key] = value
19
+ end
14
20
  end
15
21
  self
16
22
  end
@@ -54,6 +60,10 @@ module Loquor
54
60
  @criteria.each do |key,value|
55
61
  add_criteria(query_string, key, value)
56
62
  end
63
+ @clauses.each do |clause|
64
+ add_clause(query_string, clause)
65
+ end
66
+
57
67
  "#{klass.path}?#{query_string.join("&")}"
58
68
  end
59
69
 
@@ -78,5 +88,9 @@ module Loquor
78
88
  end
79
89
  end
80
90
  end
91
+
92
+ def add_clause(query_string, clause)
93
+ query_string << "clauses[]=#{URI.encode(clause.to_s)}"
94
+ end
81
95
  end
82
96
  end
@@ -14,7 +14,7 @@ module Loquor
14
14
  @config.logger.info "Response: #{response}"
15
15
  response
16
16
  end
17
-
17
+
18
18
  def execute_against_cache
19
19
  cache = @config.cache
20
20
  if cache
@@ -26,7 +26,7 @@ module Loquor
26
26
  val
27
27
  else
28
28
  execute
29
- end
29
+ end
30
30
  end
31
31
 
32
32
  private
@@ -1,3 +1,3 @@
1
1
  module Loquor
2
- VERSION = "1.2.1"
2
+ VERSION = "1.3.0"
3
3
  end
@@ -14,6 +14,12 @@ module Loquor
14
14
  assert_equal({fields: fields}, searcher.criteria)
15
15
  end
16
16
 
17
+ def test_where_sets_clauses
18
+ clause = "WHERE 1 = 1"
19
+ searcher = ApiCall::Index.new(resource).where(clause)
20
+ assert_equal([clause], searcher.clauses)
21
+ end
22
+
17
23
  def test_where_sets_criteria
18
24
  criteria = {genre: 'Animation'}
19
25
  searcher = ApiCall::Index.new(resource).where(criteria)
@@ -34,7 +40,12 @@ module Loquor
34
40
  assert_equal({genre: "Action"}, searcher.criteria)
35
41
  end
36
42
 
37
- def test_where_gets_correct_url
43
+ def test_where_gets_correct_url_with_clauses
44
+ searcher = ApiCall::Index.new(resource).where("WHERE 1=1")
45
+ assert searcher.send(:generate_url).include? "?clauses[]=WHERE%201=1"
46
+ end
47
+
48
+ def test_where_gets_correct_url_with_crtieria
38
49
  searcher = ApiCall::Index.new(resource).where(name: 'Star Wars')
39
50
  assert searcher.send(:generate_url).include? "?name=Star%20Wars"
40
51
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: loquor
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.1
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeremy Walker
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-02-19 00:00:00.000000000 Z
11
+ date: 2014-02-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: filum