NCCConfidence 0.1.5 → 0.2.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: ce62f93e711c057287466bde7ef3afae762fc811
4
- data.tar.gz: b6d646783815a48b19c5a503637f95408e27f454
3
+ metadata.gz: f54147ae297a70b99519050016bb95595db7709f
4
+ data.tar.gz: af53e0b2ccd6f5f90afa731e20ff1d4134a1c58b
5
5
  SHA512:
6
- metadata.gz: 1ee48f7be9e10238ff5fc827902807376988a3552f942ec42e35f2855e856c872134da5c5742002a2e716c81fe4daf539dbf03c887719876c67be0a702f39340
7
- data.tar.gz: 181ab8302e76ffbca7d952f84e884be31bd8a83073b8a3767964cad3d6b6dcc2b1ae2df014e52a068abf5a6a9f1385d8851c831366c2135152860a76e21dc242
6
+ metadata.gz: 80077736342ec835bfba55ae76a41c35740bd8ad15e68cf26b24978df4725588754653bfe5420a42d06a4eb5bee905e889f2fb3b46261c3b1a9e5ca6f1975867
7
+ data.tar.gz: b84672f0703d3375b5960dc54aad78d2cab0b5b359e5d584f25626b73c6da59432bb13e6d75ff4847e7c76c0087d9d5db1dbc9302578487da788ddd76ddbb3b3
data/README.md CHANGED
@@ -94,6 +94,45 @@ That way you can make them re-usable or make the query easily changable by just
94
94
 
95
95
  Please note you have to put both test_filter & data_filter into an array otherwise the client will only get one of the filters instead of an array of two two filters.
96
96
 
97
+ Lastly you can use the query builder to build and make queries more easily.
98
+
99
+ ```ruby
100
+ NCCConfidence::Query.make "test_query" do
101
+ test_filter do
102
+ account_id "MN2A6933"
103
+ id "MN2PG30601"
104
+ start_date "2015-08-12"
105
+ start_time "12:00:00"
106
+ end_date "2015-08-07"
107
+ end_time "07:05:05"
108
+ status_code 1
109
+ end
110
+
111
+ data_filter do
112
+ object "Account" do
113
+ item "AccountId"
114
+ object "Pages" do
115
+ item "Page"
116
+ end
117
+ object "ServiceStatus" do
118
+ item "HighestStatusCode"
119
+ end
120
+ end
121
+ end
122
+ end
123
+ ```
124
+
125
+ To run all the queries do this
126
+ ```ruby
127
+ result = NCCConfidence.query
128
+ ```
129
+
130
+ or to run a single query do this
131
+
132
+ ```ruby
133
+ result = NCCConfidence.query NCCConfidence::Query.queries["test_query"]
134
+ ```
135
+
97
136
  Here's a list of possible test filters:
98
137
  + account_id
99
138
  + id
@@ -14,16 +14,33 @@ module NCCConfidence
14
14
  URL.api_key = key
15
15
  end
16
16
 
17
- def query
18
- test_filter,data_filter = yield(Builder::Test,Builder::Data)
17
+ def query query_object=nil
18
+ if query_object
19
+ make_query(
20
+ Builder::Test.make(&query_object.test_filter),
21
+ Builder::Data.make(&query_object.data_filter)
22
+ )
23
+ elsif Query.queries.first
24
+ Query.queries.inject({}) do |result,(name,query)|
25
+ result[name] = make_query(
26
+ Builder::Test.make(&query.test_filter),
27
+ Builder::Data.make(&query.data_filter)
28
+ )
29
+ result
30
+ end
31
+ else
32
+ make_query(*yield(Builder::Test,Builder::Data))
33
+ end
34
+ end
35
+
36
+ private
37
+ def make_query test_filter,data_filter
19
38
  request = {
20
39
  method: 'GET',
21
40
  url: URL.build(test_filter,data_filter)
22
41
  }
23
42
  make_request(request)
24
43
  end
25
-
26
- private
27
44
  def make_request request
28
45
  http = Http.request do
29
46
  set_uri request[:url]
@@ -0,0 +1,30 @@
1
+ module NCCConfidence
2
+ class Query
3
+ class << self
4
+ attr_accessor :queries
5
+ def make query, &filters
6
+ new_query = self.new
7
+ new_query.instance_eval(&filters)
8
+ self.queries[query] = new_query
9
+ end
10
+ end
11
+
12
+ self.queries = {}
13
+
14
+ def test_filter &filter
15
+ if filter
16
+ @test_filter = Proc.new &filter
17
+ else
18
+ @test_filter
19
+ end
20
+ end
21
+
22
+ def data_filter &filter
23
+ if filter
24
+ @data_filter = Proc.new &filter
25
+ else
26
+ @data_filter
27
+ end
28
+ end
29
+ end
30
+ end
@@ -4,6 +4,9 @@ require "#{nccc_root}/test_builder"
4
4
 
5
5
  require "#{nccc_root}/data_filters"
6
6
  require "#{nccc_root}/data_builder"
7
+
8
+ require "#{nccc_root}/query_builder"
9
+
7
10
  module NCCConfidence
8
11
  class URL
9
12
  class << self
@@ -1,3 +1,3 @@
1
1
  module NCCConfidence
2
- VERSION = "0.1.5"
2
+ VERSION = "0.2.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: NCCConfidence
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thermatix
@@ -102,6 +102,7 @@ files:
102
102
  - lib/nccconfidence/data_builder.rb
103
103
  - lib/nccconfidence/data_filters.rb
104
104
  - lib/nccconfidence/http_client.rb
105
+ - lib/nccconfidence/query_builder.rb
105
106
  - lib/nccconfidence/test_builder.rb
106
107
  - lib/nccconfidence/test_filters.rb
107
108
  - lib/nccconfidence/url_builder.rb