poisol 0.0.3 → 0.0.4

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: c61f7f85517d8fdce4395b7bea859c1bde46c242
4
- data.tar.gz: 3a974a5502173940f797601f09aa44d3569cd6fd
3
+ metadata.gz: 102174b8f05e7b43926297e717bc76c7c3b81d46
4
+ data.tar.gz: 829318caf733df87e6f9c26c2980c6bc6b3d08d7
5
5
  SHA512:
6
- metadata.gz: a510ded49b4c852a949dbaf07aad380803ade082bc1d0fcd0ecb2519b890c4d45dd0f92e83020cbe763db7d1d4bb9675a756b10d159347a6f36bad895cac06bc
7
- data.tar.gz: 6caeff45c98dee0aa8b593c7100920fd4b2018c82760de49650699341499f111dd9b470bf3bd9a12a9685031f55fc5408831263b28b49039075440313c287735
6
+ metadata.gz: c62558579d2916b39ec215446b895fed0917c99cd75dd4c9bae47722df202f78f167d0bf1f5159a214c3e40b01063ee3610048323765f33c43aeda8b695e087c
7
+ data.tar.gz: 290dcda3d475dfcd579ad959b44c885ae93e42229eb577a101a57fac5137a5b661b07c37658fa16d276378e13370d7123748c9845d92007cc2c926055c443924
@@ -1,12 +1,12 @@
1
1
  class ConfigMap
2
- @@config_file_map = {}
2
+ @config_file_map = {}
3
3
 
4
4
  def self.add map
5
- @@config_file_map.update map
5
+ @config_file_map.update map
6
6
  end
7
7
 
8
8
  def self.file class_name
9
- @@config_file_map[class_name]
9
+ @config_file_map[class_name]
10
10
  end
11
11
 
12
12
  end
@@ -1,4 +1,5 @@
1
1
  module ClassTemplate
2
+ attr_accessor :response_body
2
3
 
3
4
  def initialize
4
5
  @config = ConfigMap.file self.class.name
@@ -29,7 +30,9 @@ module ClassTemplate
29
30
  stub = stub_request(@type, "http://#{Domain.base_url}/#{@url}")
30
31
  stub.with(:query => @query) unless @query.eql? ""
31
32
  stub.with(:body => @request_body) unless @request_body.eql? ""
32
- @response_body = Parse.hash_array_to_column_hash(@response_body) if @config.response.array_type == "column_array"
33
+ if @config.response.array_type == "column_array"
34
+ @response_body = Parse.hash_array_to_column_hash(@response_body)
35
+ end
33
36
  stub.to_return(:status => 200, :body => @response_body.to_s, :headers => {})
34
37
  end
35
38
 
@@ -39,23 +39,56 @@ module ClassTemplate
39
39
  end
40
40
 
41
41
  def generate_methods_to_alter_response_object
42
- @response_body = @config.response.body
42
+ @response_body = @config.response.body.clone
43
43
  @response_body.each do |field|
44
44
  field_name = field[0]
45
45
  actual_field_value = field[1]
46
46
  is_array = (actual_field_value.class.to_s == "Array")
47
- @response_body[field_name] = [] if is_array
48
- actual_field_value = actual_field_value[0] if is_array
49
- method_name = is_array ? ("has_#{field_name.classify.underscore}") : ("has_#{field_name.underscore}")
50
- define_singleton_method(method_name) do |*input_value|
51
- input_value = input_value[0]
52
- assignment_value = get_assignment_value actual_field_value,input_value
53
- @response_body[field_name] = is_array ? (@response_body[field_name] << assignment_value) : assignment_value
54
- self
47
+ if is_array
48
+ generate_method_to_alter_response_field_array field_name,actual_field_value
49
+ else
50
+ generate_method_to_alter_response_field field_name,actual_field_value
55
51
  end
52
+
56
53
  end
57
54
  end
58
55
 
56
+ def generate_method_to_alter_response_field_array field_name,actual_field_values
57
+ actual_field_value = actual_field_values[0]
58
+ method_name = "has_#{field_name.classify.underscore}"
59
+ define_singleton_method(method_name) do |*input_value|
60
+ input_value = input_value[0]
61
+ assignment_value = get_assignment_value actual_field_value,input_value
62
+ @response_body[field_name] = [assignment_value]
63
+ self
64
+ end
65
+
66
+ method_name = "has_another_#{field_name.classify.underscore}"
67
+ define_singleton_method(method_name) do |*input_value|
68
+ input_value = input_value[0]
69
+ assignment_value = get_assignment_value actual_field_value,input_value
70
+ @response_body[field_name] = @response_body[field_name] << assignment_value
71
+ self
72
+ end
73
+
74
+ method_name = "has_no_#{field_name.classify.underscore}"
75
+ define_singleton_method(method_name) do
76
+ @response_body[field_name] = []
77
+ self
78
+ end
79
+ end
80
+
81
+ def generate_method_to_alter_response_field field_name,actual_field_value
82
+ method_name = "has_#{field_name.underscore}"
83
+ self.class.send(:define_method, method_name) do |*input_value|
84
+ input_value = input_value[0]
85
+ assignment_value = get_assignment_value actual_field_value,input_value
86
+ @response_body[field_name] = assignment_value
87
+ self
88
+ end
89
+ end
90
+
91
+
59
92
  def get_assignment_value actual_field_value,input_value
60
93
  if actual_field_value.class.to_s == "Hash"
61
94
  input_value = {} if input_value.blank?
@@ -1,14 +1,20 @@
1
1
  describe ClassTemplate, "#array" do
2
2
 
3
+ it "empty column array" do
4
+ Columns.new.build
5
+ response = RestClient.get "http://localhost:80/column"
6
+ expect(response.body).to eq("[]")
7
+ end
8
+
3
9
  it "column array" do
4
10
  Columns.new.has_column.has_column.with_title("abc").with_category("12").build
5
11
  response = RestClient.get "http://localhost:80/column"
6
12
  expect(response.body).to eq({"title"=>["independance", "abc"], "category"=>["10","12"]}.to_s)
7
13
  end
8
14
 
9
- it "empty column array" do
10
- Columns.new.build
11
- response = RestClient.get "http://localhost:80/column"
15
+ it "empty row array" do
16
+ Rows.new.build
17
+ response = RestClient.get "http://localhost:80/row"
12
18
  expect(response.body).to eq("[]")
13
19
  end
14
20
 
@@ -18,10 +24,5 @@ describe ClassTemplate, "#array" do
18
24
  expect(response.body).to eq([{"title"=>"independance", "category"=>{"age_group"=>"10"}}, {"title"=>"abc", "category"=>{"age_group"=>"12"}}].to_s)
19
25
  end
20
26
 
21
- it "empty row array" do
22
- Rows.new.build
23
- response = RestClient.get "http://localhost:80/row"
24
- expect(response.body).to eq("[]")
25
- end
26
27
 
27
28
  end
@@ -1,16 +1,16 @@
1
1
  describe ClassTemplate, "#get_books" do
2
2
 
3
- it "default request and response" do
4
- Book.new.build()
5
- response = RestClient.get "http://localhost:80/book",{:params => {:author=>'bharathi'}}
6
- expect(response.body).to eq({"title"=>"independance", "category"=>{"age_group"=>"10", "genre"=>"action", "publisher"=>{"name"=>"summa", "place"=>"erode"}}}.to_s)
7
- end
8
-
9
3
  it "dynamic response" do
10
4
  Book.new.has_category({"age_group"=>"11", "publisher"=>{"name"=>"oxford"}}).build()
11
5
  response = RestClient.get "http://localhost:80/book",{:params => {:author=>'bharathi'}}
12
6
  expect(response.body).to eq({"title"=>"independance", "category"=>{"age_group"=>"11", "genre"=>"action", "publisher"=>{"name"=>"oxford", "place"=>"erode"}}}.to_s)
13
7
  end
14
8
 
9
+ it "default request and response" do
10
+ Book.new.build()
11
+ response = RestClient.get "http://localhost:80/book",{:params => {:author=>'bharathi'}}
12
+ expect(response.body).to eq({"title"=>"independance", "category"=>{"age_group"=>"10", "genre"=>"action", "publisher"=>{"name"=>"summa", "place"=>"erode"}}}.to_s)
13
+ end
14
+
15
15
  end
16
16
 
@@ -1,19 +1,31 @@
1
1
  describe ClassTemplate, "#nested array" do
2
2
 
3
- #it "empty" do
4
- #NestedArray.new.build()
5
- #response = RestClient.get "http://localhost:80/nested_array"
6
- #expect(response.body).to eq({"title"=>"ind", "roles"=>[]}.to_s)
7
- #end
3
+ it "empty" do
4
+ NestedArray.new.has_no_role.build()
5
+ response = RestClient.get "http://localhost:80/nested_array"
6
+ expect(response.body).to eq({"title"=>"ind", "roles"=>[]}.to_s)
7
+ end
8
8
 
9
- it "default" do
9
+ it "without mentioning field" do
10
+ NestedArray.new.build()
11
+ response = RestClient.get "http://localhost:80/nested_array"
12
+ expect(response.body).to eq({"title"=>"ind", "roles"=>[{"role_id"=>"chumma", "role_name"=>"sol"}]}.to_s)
13
+ end
14
+
15
+ it "mentioning one field" do
10
16
  NestedArray.new.has_role.build()
11
17
  response = RestClient.get "http://localhost:80/nested_array"
12
18
  expect(response.body).to eq({"title"=>"ind", "roles"=>[{"role_id"=>"chumma", "role_name"=>"sol"}]}.to_s)
13
19
  end
14
20
 
15
- it "dynamic" do
16
- NestedArray.new.has_role.has_role("role_id"=>"test").build()
21
+ it "mentioning one field with altered values" do
22
+ NestedArray.new.has_role("role_id"=>"test1").build()
23
+ response = RestClient.get "http://localhost:80/nested_array"
24
+ expect(response.body).to eq({"title"=>"ind", "roles"=>[{"role_id"=>"test1", "role_name"=>"sol"}]}.to_s)
25
+ end
26
+
27
+ it "multiple fields with altered values" do
28
+ NestedArray.new.has_role.has_another_role("role_id"=>"test").build()
17
29
  response = RestClient.get "http://localhost:80/nested_array"
18
30
  expect(response.body).to eq({"title"=>"ind", "roles"=>[{"role_id"=>"chumma", "role_name"=>"sol"},{"role_id"=>"test", "role_name"=>"sol"}]}.to_s)
19
31
  end
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.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Deepak