loquor 1.2.1 → 1.3.0

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