poisol 0.0.9 → 0.0.10

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: 8c6cd9d6bddc3b3a855b003566ef8ce6767c1d0c
4
- data.tar.gz: 39307a21d0f273ef3ea78a70accaf753d14e83c9
3
+ metadata.gz: bdf61107e05bc60e3d83dcc816e0a246c788bd17
4
+ data.tar.gz: 0866588b30cf3921f5b0fc3f11755ee2aba83a95
5
5
  SHA512:
6
- metadata.gz: 56c27ca1e388144a37b04de81e9c09bfa372aa3b030b7a3eb76c31b07c02e8a60d860b52ce3d037cd6b8a7a9245e6a685ccf33af8e434b7dca44714c89a84672
7
- data.tar.gz: f54cdbfbd7fc29eb142bc668ef342da63601541b0235fa3cc5d155f5726e69d012fa3b959f0ba8b088d4545f32804e499a14f66e2ab934adc2f62584c333d56e
6
+ metadata.gz: 7b7c112d99da4648688618f8d5a9ee37f7fc8c111b5d68f1487c596e41b6abe938adf9bf6dd0f95092b526746d40b60244fb5ff07d08969f4b8af343514156da
7
+ data.tar.gz: 906006b5322d06de73e93c5110196f5628dff8869d4c8430748443c76477b6c32224166f117a203719eacdca57e5b5c77beb8fac04f9adc9a4752eb37f091e36
@@ -2,8 +2,9 @@ module QueryBuilder
2
2
  def generate_query_methods
3
3
  query = @stub_config.request.query
4
4
  query.each do |field|
5
- define_method("for_#{field[0]}") do |*value|
6
- @request.query[field[0]] = value[0]
5
+ field_name = field[0]
6
+ define_method("for_#{field[0].underscore}") do |*value|
7
+ @request.query[field_name] = value[0]
7
8
  self
8
9
  end
9
10
  end
@@ -20,8 +20,9 @@ class Stub
20
20
  @response = Response.new
21
21
  @request.url = stub_config.request.url.deep_dup
22
22
  @request.query = stub_config.request.query.deep_dup
23
+ @request.query = {} if stub_config.request.query_explicit
23
24
  @request.body = stub_config.request.body.deep_dup
24
- @request.body = {} if stub_config.request.include_explicit_only
25
+ @request.body = {} if stub_config.request.body_explicit
25
26
  if stub_config.response.is_column_array or stub_config.response.is_row_array
26
27
  @response.body = []
27
28
  else
@@ -3,7 +3,7 @@ class StubConfig
3
3
  end
4
4
 
5
5
  class RequestConfig
6
- attr_accessor :domain,:url,:type,:query,:body,:is_body_key_value,:include_explicit_only
6
+ attr_accessor :domain,:url,:type,:query,:body,:is_body_key_value,:body_explicit,:query_explicit,:is_column_array,:is_row_array
7
7
  end
8
8
 
9
9
  class ResponseConfig
@@ -37,11 +37,23 @@ class StubConfigBuilder
37
37
  def build_request
38
38
  load_url
39
39
  @stub_config.request.type = @raw_config_hash["request"]["type"].intern
40
- @stub_config.request.query = @raw_config_hash["request"]["query"]
40
+ load_query
41
+ load_request_body
42
+ end
43
+
44
+ def load_request_body
41
45
  load_request_body_filed_implicit_option
42
46
  @stub_config.is_inline ? load_inline_request_body : load_exploaded_request_body
43
47
  end
44
48
 
49
+
50
+ def load_query
51
+ @stub_config.request.query = @raw_config_hash["request"]["query"]
52
+ query_explicit = @raw_config_hash["request"]["query_explicit"]
53
+ @stub_config.request.query_explicit = query_explicit.blank? ? false : query_explicit
54
+ end
55
+
56
+
45
57
  def load_url
46
58
  url = @raw_config_hash["request"]["url"]
47
59
  url.strip!
@@ -50,8 +62,8 @@ class StubConfigBuilder
50
62
  end
51
63
 
52
64
  def load_request_body_filed_implicit_option
53
- include_explicit_only = @raw_config_hash["request"]["include_explicit_only"]
54
- @stub_config.request.include_explicit_only = include_explicit_only.blank? ? false : include_explicit_only
65
+ body_explicit = @raw_config_hash["request"]["body_explicit"]
66
+ @stub_config.request.body_explicit = body_explicit.blank? ? false : body_explicit
55
67
  end
56
68
 
57
69
 
@@ -1,7 +1,7 @@
1
1
  request:
2
2
  url: explicit
3
3
  type: post
4
- include_explicit_only: true
4
+ body_explicit: true
5
5
  body:
6
6
  name: "sea"
7
7
  age: 10
@@ -3,6 +3,7 @@ request:
3
3
  type: get
4
4
  query:
5
5
  author: "bharathi"
6
+ name: "doni"
6
7
  response:
7
8
  body: '{
8
9
  "title": "independance",
@@ -0,0 +1,19 @@
1
+ request:
2
+ url: book_explicit
3
+ type: get
4
+ query_explicit: true
5
+ query:
6
+ author: "bharathi"
7
+ name: "doni"
8
+ response:
9
+ body: '{
10
+ "title": "independance",
11
+ "category": {
12
+ "age_group": "10",
13
+ "genre": "action",
14
+ "publisher": {
15
+ "name": "summa",
16
+ "place":"erode"
17
+ }
18
+ }
19
+ }'
@@ -0,0 +1,15 @@
1
+ describe Stub, "#query_explicit" do
2
+
3
+ it "partial" do
4
+ BookExplicit.new.for_author('bha').build()
5
+ response = RestClient.get "http://localhost:80/book_explicit",{:params => {:author=>'bha'}}
6
+ expect(response.body).to eq({"title"=>"independance", "category"=>{"age_group"=>"10", "genre"=>"action", "publisher"=>{"name"=>"summa", "place"=>"erode"}}}.to_json)
7
+ end
8
+
9
+ it "full dymamic" do
10
+ Book.new.for_author('asd').for_name('don').build()
11
+ response = RestClient.get "http://localhost:80/book",{:params => {:author=>'asd',:name=>'don'}}
12
+ expect(response.body).to eq({"title"=>"independance", "category"=>{"age_group"=>"10", "genre"=>"action", "publisher"=>{"name"=>"summa", "place"=>"erode"}}}.to_json)
13
+ end
14
+
15
+ end
@@ -2,13 +2,13 @@ describe Stub, "#get_books" do
2
2
 
3
3
  it "dynamic response" do
4
4
  Book.new.has_category({"age_group"=>"11", "publisher"=>{"name"=>"oxford"}}).build()
5
- response = RestClient.get "http://localhost:80/book",{:params => {:author=>'bharathi'}}
5
+ response = RestClient.get "http://localhost:80/book",{:params => {:author=>'bharathi',:name=>"doni"}}
6
6
  expect(response.body).to eq({"title"=>"independance", "category"=>{"age_group"=>"11", "genre"=>"action", "publisher"=>{"name"=>"oxford", "place"=>"erode"}}}.to_json)
7
7
  end
8
8
 
9
9
  it "default request and response" do
10
10
  Book.new.build()
11
- response = RestClient.get "http://localhost:80/book",{:params => {:author=>'bharathi'}}
11
+ response = RestClient.get "http://localhost:80/book",{:params => {:author=>'bharathi',:name=>"doni"}}
12
12
  expect(response.body).to eq({"title"=>"independance", "category"=>{"age_group"=>"10", "genre"=>"action", "publisher"=>{"name"=>"summa", "place"=>"erode"}}}.to_json)
13
13
  end
14
14
 
data/spec/spec_helper.rb CHANGED
@@ -20,7 +20,7 @@ RSpec.configure do |config|
20
20
  end
21
21
 
22
22
  config.before(:suite) do
23
- WebMock.disable_net_connect!(:allow_localhost => true)
23
+ WebMock.disable_net_connect!
24
24
  factory = StubFactory.new.build("spec/data/main")
25
25
  factory = StubFactory.new.build("spec/data/domain/first/")
26
26
  factory = StubFactory.new.build("spec/data/domain/second/")
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: poisol
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.9
4
+ version: 0.0.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Deepak
@@ -130,7 +130,6 @@ extra_rdoc_files: []
130
130
  files:
131
131
  - README.md
132
132
  - lib/poisol.rb
133
- - lib/poisol/config_map.rb
134
133
  - lib/poisol/domain.rb
135
134
  - lib/poisol/extensions/webmock_extensions.rb
136
135
  - lib/poisol/stub/request/query_builder.rb
@@ -153,23 +152,25 @@ files:
153
152
  - spec/data/domain/second/second.yml
154
153
  - spec/data/main/array/columns.yml
155
154
  - spec/data/main/array/rows.yml
156
- - spec/data/main/book.yml
157
155
  - spec/data/main/domain.yml
158
156
  - spec/data/main/key_value/explicit.yml
159
157
  - spec/data/main/key_value/key_value.yml
160
158
  - spec/data/main/nested_array.yml
159
+ - spec/data/main/query/book.yml
160
+ - spec/data/main/query/book_explicit.yml
161
161
  - spec/data/main/url.yml
162
162
  - spec/data/main/user/config.yml
163
163
  - spec/data/main/user/request.json
164
164
  - spec/data/main/user/response.json
165
165
  - spec/functional/array_spec.rb
166
166
  - spec/functional/dumb_response_spec.rb
167
- - spec/functional/get_spec.rb
168
167
  - spec/functional/key_value/explicit_inclusion_spec.rb
169
168
  - spec/functional/key_value/implicit_inclusion_spec.rb
170
169
  - spec/functional/multi_domain_spec.rb
171
170
  - spec/functional/nested_array_spec.rb
172
171
  - spec/functional/post_spec.rb
172
+ - spec/functional/query/query_explicit_spec.rb
173
+ - spec/functional/query/query_implicit_spec.rb
173
174
  - spec/functional/url_spec.rb
174
175
  - spec/spec_helper.rb
175
176
  - spec/unit/exception_spec.rb
@@ -213,16 +214,18 @@ test_files:
213
214
  - spec/data/main/nested_array.yml
214
215
  - spec/data/main/key_value/explicit.yml
215
216
  - spec/data/main/key_value/key_value.yml
216
- - spec/data/main/book.yml
217
+ - spec/data/main/query/book_explicit.yml
218
+ - spec/data/main/query/book.yml
217
219
  - spec/unit/exception_spec.rb
218
220
  - spec/unit/stub_spec.rb
219
221
  - spec/spec_helper.rb
220
222
  - spec/functional/multi_domain_spec.rb
221
223
  - spec/functional/array_spec.rb
222
- - spec/functional/get_spec.rb
223
224
  - spec/functional/key_value/explicit_inclusion_spec.rb
224
225
  - spec/functional/key_value/implicit_inclusion_spec.rb
225
226
  - spec/functional/post_spec.rb
226
227
  - spec/functional/url_spec.rb
227
228
  - spec/functional/dumb_response_spec.rb
228
229
  - spec/functional/nested_array_spec.rb
230
+ - spec/functional/query/query_implicit_spec.rb
231
+ - spec/functional/query/query_explicit_spec.rb
@@ -1,12 +0,0 @@
1
- class ConfigMap
2
- @config_file_map = {}
3
-
4
- def self.add map
5
- @config_file_map.update map
6
- end
7
-
8
- def self.file class_name
9
- @config_file_map[class_name]
10
- end
11
-
12
- end