poisol 0.1.1 → 0.1.2
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 +4 -4
- data/lib/poisol/domain.rb +13 -11
- data/lib/poisol/server.rb +45 -37
- data/lib/poisol/stub/request/query_builder.rb +3 -1
- data/lib/poisol/stub/request/request_body_builder.rb +89 -87
- data/lib/poisol/stub/request/url_builder.rb +15 -12
- data/lib/poisol/stub/response/array_response_body.rb +75 -0
- data/lib/poisol/stub/response/response_body_builder.rb +49 -116
- data/lib/poisol/stub/response/status_builder.rb +2 -0
- data/lib/poisol/stub/stub.rb +22 -21
- data/lib/poisol/stub/stub_class_builder.rb +24 -23
- data/lib/poisol/stub/stub_instance.rb +62 -44
- data/lib/poisol/stub/webrick_stub_builder.rb +34 -32
- data/lib/poisol/stub_config/stub_config.rb +10 -8
- data/lib/poisol/stub_config/stub_config_builder.rb +91 -89
- data/lib/poisol/stub_factory.rb +39 -38
- data/lib/poisol/stub_mapper/request_matcher.rb +68 -0
- data/lib/poisol/stub_mapper/response_mapper.rb +33 -0
- data/lib/poisol/stub_mapper/stubs.rb +27 -0
- data/spec/functional/key_value/explicit_inclusion_spec.rb +15 -1
- data/spec/functional/key_value/implicit_inclusion_spec.rb +1 -1
- data/spec/functional/multi_domain_spec.rb +1 -1
- data/spec/functional/post_request_spec.rb +1 -2
- data/spec/functional/query/query_explicit_spec.rb +1 -1
- data/spec/functional/query/query_implicit_spec.rb +1 -1
- data/spec/functional/response/array_spec.rb +14 -7
- data/spec/functional/response/dumb_response_spec.rb +1 -1
- data/spec/functional/response/hash_params_spec.rb +1 -1
- data/spec/functional/response/nested_array_spec.rb +2 -2
- data/spec/functional/url_spec.rb +1 -1
- data/spec/spec_helper.rb +0 -1
- metadata +5 -3
- data/lib/poisol/response_mapper.rb +0 -31
- data/lib/poisol/stubs.rb +0 -74
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2e1cd1ceb6ee666315fd0d1205ec3e6340f3cbfa
|
4
|
+
data.tar.gz: ca968b177598825a8ded4b7bafd87d8e988f3807
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 30aad4d3e9f02dc9abf814101422a153b08bf245b0e12612d746d610ef666a028b87f92d6553d847826aa11ab17f61b80f2405e4197e45df57d8e45b9ddf2008
|
7
|
+
data.tar.gz: 19defa95fed165a05a64a0911a66c454459aec4f00b1ebd30ed4c003612e74d262a167dbb770b558cc1051ac71dda2d290966d32a50df047b70180f1dbc515c4
|
data/lib/poisol/domain.rb
CHANGED
@@ -1,15 +1,17 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
module Poisol
|
2
|
+
class Domain
|
3
|
+
attr_reader :file,:full_url
|
3
4
|
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
5
|
+
def initialize domain_config_file
|
6
|
+
@file = domain_config_file
|
7
|
+
path = ""
|
8
|
+
if File.exists? @file
|
9
|
+
base_hash = Parse.yaml_file @file
|
10
|
+
sub_domain = base_hash["sub_domain"]
|
11
|
+
path = "/#{sub_domain}" if sub_domain.present?
|
12
|
+
end
|
13
|
+
@full_url = "#{Server.base_url}#{ path.present? ? path: ''}"
|
11
14
|
end
|
12
|
-
@full_url = "#{Server.base_url}#{ path.present? ? path: ''}"
|
13
|
-
end
|
14
15
|
|
16
|
+
end
|
15
17
|
end
|
data/lib/poisol/server.rb
CHANGED
@@ -1,46 +1,54 @@
|
|
1
|
-
module
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
1
|
+
module Poisol
|
2
|
+
module Server
|
3
|
+
extend self
|
4
|
+
|
5
|
+
def start port
|
6
|
+
PoisolLog.info "Starting server... as http://localhost:#{port}"
|
7
|
+
require 'webrick'
|
8
|
+
@server = WEBrick::HTTPServer.new :Port => port, :Logger => log, :AccessLog => access_log
|
9
|
+
@port = port
|
10
|
+
attach_shutdown
|
11
|
+
attach_request_handling
|
12
|
+
Thread.new{@server.start}
|
13
|
+
PoisolLog.info "Server Started at http://localhost:#{port}"
|
14
|
+
end
|
12
15
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
+
def base_url
|
17
|
+
"http://localhost:#{@port}"
|
18
|
+
end
|
16
19
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
20
|
+
def attach_request_handling
|
21
|
+
@server.mount_proc '/' do |req, res|
|
22
|
+
stub_response = ResponseMapper.map(req)
|
23
|
+
res.status = stub_response.status
|
24
|
+
res.body = stub_response.body.to_json
|
25
|
+
res.content_type = 'application/json'
|
26
|
+
end
|
23
27
|
end
|
24
|
-
end
|
25
28
|
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
+
def attach_shutdown
|
30
|
+
trap 'INT' do @server.shutdown end
|
31
|
+
end
|
29
32
|
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
33
|
+
def log
|
34
|
+
FileUtils.mkdir_p "log" unless File.exists?("log")
|
35
|
+
log_file = File.open 'log/poisol_webrick.log', 'a+'
|
36
|
+
WEBrick::Log.new log_file
|
37
|
+
end
|
34
38
|
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
39
|
+
def access_log
|
40
|
+
log_file = File.open 'log/poisol_webrick.log', 'a+'
|
41
|
+
[
|
42
|
+
[log_file, WEBrick::AccessLog::COMBINED_LOG_FORMAT],
|
43
|
+
]
|
44
|
+
end
|
41
45
|
|
42
|
-
|
43
|
-
|
44
|
-
|
46
|
+
def stop
|
47
|
+
if @server.present?
|
48
|
+
@server.shutdown
|
49
|
+
PoisolLog.info "Server is shutdown"
|
50
|
+
end
|
51
|
+
end
|
45
52
|
|
53
|
+
end
|
46
54
|
end
|
@@ -1,112 +1,114 @@
|
|
1
|
-
module
|
1
|
+
module Poisol
|
2
|
+
module RequestBodyBuilder
|
2
3
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
4
|
+
def prepare_request_body
|
5
|
+
return if @stub_config.request.body.blank?
|
6
|
+
if @stub_config.request.is_column_array or @stub_config.request.is_row_array
|
7
|
+
generate_methods_to_alter_request_array
|
8
|
+
else
|
9
|
+
generate_methods_to_alter_request_object
|
10
|
+
end
|
9
11
|
end
|
10
|
-
end
|
11
12
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
13
|
+
def generate_methods_to_alter_request_array
|
14
|
+
@request_array_item = @stub_config.request.body
|
15
|
+
generate_method_to_append_request_array
|
16
|
+
generate_method_to_append_request_array_as_hash_params
|
17
|
+
generate_method_to_alter_request_array_object
|
18
|
+
end
|
18
19
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
20
|
+
def generate_method_to_alter_request_array_object
|
21
|
+
@request_array_item.each do |field|
|
22
|
+
field_name = field[0]
|
23
|
+
actual_field_value = field[1]
|
24
|
+
is_array = (actual_field_value.class.to_s == "Array")
|
25
|
+
actual_field_value = actual_field_value[0] if is_array
|
26
|
+
method_name = is_array ? ("having_#{field_name.classify.underscore}") : ("having_#{field_name.underscore}")
|
27
|
+
define_method(method_name) do |*input_value|
|
28
|
+
input_value = input_value[0]
|
29
|
+
assignment_value = get_assignment_value actual_field_value,input_value
|
30
|
+
@request.body.last[field_name] = is_array ? (@request.body.last[field_name] << assignment_value) : assignment_value
|
31
|
+
self
|
32
|
+
end
|
31
33
|
end
|
32
34
|
end
|
33
|
-
end
|
34
35
|
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
36
|
+
def generate_method_to_append_request_array
|
37
|
+
class_name = self.name.classify.underscore
|
38
|
+
method_name = "by_#{class_name}"
|
39
|
+
define_method(method_name) do |*input_value|
|
40
|
+
if input_value.blank?
|
41
|
+
@request.body << stub_config.request.body.deep_dup
|
42
|
+
else
|
43
|
+
input = JSON.parse(input_value[0].to_json)
|
44
|
+
@request.body << (stub_config.request.body.deep_dup).deep_merge!(input_value[0].stringify_keys)
|
45
|
+
end
|
46
|
+
self
|
44
47
|
end
|
45
|
-
self
|
46
48
|
end
|
47
|
-
end
|
48
49
|
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
50
|
+
def generate_method_to_append_request_array_as_hash_params
|
51
|
+
class_name = self.name.underscore
|
52
|
+
method_name = "by_#{class_name}"
|
53
|
+
define_method(method_name) do |*input_value|
|
54
|
+
input_hashes = input_value[0]
|
55
|
+
input_hashes.each do |input_hash|
|
56
|
+
@request.body << (stub_config.request.body.deep_dup).deep_merge!(input_hash.stringify_keys)
|
57
|
+
end
|
58
|
+
self
|
56
59
|
end
|
57
|
-
self
|
58
60
|
end
|
59
|
-
end
|
60
61
|
|
61
62
|
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
63
|
+
def generate_methods_to_alter_request_object
|
64
|
+
request_body = @stub_config.request.body.clone
|
65
|
+
request_body.each do |field|
|
66
|
+
field_name = field[0]
|
67
|
+
actual_field_value = field[1]
|
68
|
+
is_array = (actual_field_value.class.to_s == "Array")
|
69
|
+
if is_array
|
70
|
+
generate_method_to_alter_request_field_array field_name,actual_field_value
|
71
|
+
else
|
72
|
+
generate_method_to_alter_request_field field_name,actual_field_value
|
73
|
+
end
|
72
74
|
end
|
73
75
|
end
|
74
|
-
end
|
75
76
|
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
77
|
+
def generate_method_to_alter_request_field_array field_name,actual_field_values
|
78
|
+
actual_field_value = actual_field_values[0]
|
79
|
+
method_name = "by_#{field_name.classify.underscore}"
|
80
|
+
define_method(method_name) do |*input_value|
|
81
|
+
input_value = input_value[0]
|
82
|
+
assignment_value = get_assignment_value actual_field_value,input_value
|
83
|
+
@request.body[field_name] = [assignment_value]
|
84
|
+
self
|
85
|
+
end
|
85
86
|
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
87
|
+
method_name = "by_another_#{field_name.classify.underscore}"
|
88
|
+
define_method(method_name) do |*input_value|
|
89
|
+
input_value = input_value[0]
|
90
|
+
assignment_value = get_assignment_value actual_field_value,input_value
|
91
|
+
@request.body[field_name] = @request.body[field_name] << assignment_value
|
92
|
+
self
|
93
|
+
end
|
93
94
|
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
95
|
+
method_name = "by_no_#{field_name.classify.underscore}"
|
96
|
+
define_method(method_name) do
|
97
|
+
@request.body[field_name] = []
|
98
|
+
self
|
99
|
+
end
|
98
100
|
end
|
99
|
-
end
|
100
101
|
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
102
|
+
def generate_method_to_alter_request_field field_name,actual_field_value
|
103
|
+
method_name = "by_#{field_name.underscore}"
|
104
|
+
define_method(method_name) do |*input_value|
|
105
|
+
input_value = input_value[0]
|
106
|
+
assignment_value = get_assignment_value actual_field_value,input_value
|
107
|
+
@request.body[field_name] = assignment_value
|
108
|
+
self
|
109
|
+
end
|
108
110
|
end
|
109
|
-
end
|
110
111
|
|
111
112
|
|
113
|
+
end
|
112
114
|
end
|
@@ -1,17 +1,20 @@
|
|
1
|
-
module
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
1
|
+
module Poisol
|
2
|
+
module UrlBuilder
|
3
|
+
def generate_methods_to_alter_path_params
|
4
|
+
url = @stub_config.request.url
|
5
|
+
url.scan(/{(.+?)}/).each do |path_params|
|
6
|
+
path_param = path_params[0]
|
7
|
+
param_name = path_param.split("|")[0]
|
8
|
+
param_default_value = path_param.split("|")[1]
|
9
|
+
method_name = "of_#{param_name.underscore}"
|
10
|
+
define_method(method_name) do |*input_value|
|
11
|
+
input_value = input_value[0]
|
12
|
+
@request.path.sub!("{#{path_param}}","{#{param_name}|#{input_value}}") unless input_value.blank?
|
13
|
+
self
|
14
|
+
end
|
13
15
|
end
|
14
16
|
end
|
17
|
+
|
15
18
|
end
|
16
19
|
|
17
20
|
end
|
@@ -0,0 +1,75 @@
|
|
1
|
+
module Poisol
|
2
|
+
module ResponseBodyBuilder
|
3
|
+
|
4
|
+
def make_methods_to_alter_response_array
|
5
|
+
@response_array_item = @stub_config.response.body
|
6
|
+
make_method_to_append_response_array
|
7
|
+
make_method_to_append_response_array_as_hash_params
|
8
|
+
make_method_to_alter_response_array_object
|
9
|
+
end
|
10
|
+
|
11
|
+
def make_method_to_append_response_array
|
12
|
+
class_name = self.name.classify.underscore
|
13
|
+
method_name = "has_#{class_name}"
|
14
|
+
define_method(method_name) do |*input_value|
|
15
|
+
assignment_value = input_value.blank? ?
|
16
|
+
stub_config.response.body.deep_dup :
|
17
|
+
(stub_config.response.body.deep_dup).deep_merge!(input_value[0].stringify_keys)
|
18
|
+
if @called_methods.include? __method__
|
19
|
+
@response.body << assignment_value
|
20
|
+
else
|
21
|
+
@response.body = [assignment_value]
|
22
|
+
end
|
23
|
+
@called_methods << __method__
|
24
|
+
remove_array_field_calls
|
25
|
+
self
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
def make_method_to_append_response_array_as_hash_params
|
30
|
+
class_name = self.name.underscore
|
31
|
+
method_name = "has_#{class_name}"
|
32
|
+
define_method(method_name) do |*input_value|
|
33
|
+
@response.body = []
|
34
|
+
input_hashes = input_value[0]
|
35
|
+
input_hashes.each do |input_hash|
|
36
|
+
@response.body << (stub_config.response.body.deep_dup).deep_merge!(input_hash.stringify_keys)
|
37
|
+
end
|
38
|
+
self
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
def make_method_to_alter_response_array_object
|
43
|
+
@response_array_item.each do |field|
|
44
|
+
field_name = field[0]
|
45
|
+
actual_field_value = field[1]
|
46
|
+
is_array = (actual_field_value.class.to_s == "Array")
|
47
|
+
actual_field_value = actual_field_value[0] if is_array
|
48
|
+
|
49
|
+
method_name = "with_#{field_name.underscore}"
|
50
|
+
define_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.last[field_name] = assignment_value
|
54
|
+
self
|
55
|
+
end
|
56
|
+
|
57
|
+
if is_array
|
58
|
+
method_name = "with_#{field_name.classify.underscore}"
|
59
|
+
define_method(method_name) do |*input_value|
|
60
|
+
input_value = input_value[0]
|
61
|
+
assignment_value = get_assignment_value actual_field_value,input_value
|
62
|
+
if @called_methods.include? __method__
|
63
|
+
@response.body.last[field_name] << assignment_value
|
64
|
+
else
|
65
|
+
@response.body.last[field_name] = [assignment_value]
|
66
|
+
end
|
67
|
+
@called_methods << __method__
|
68
|
+
self
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
end
|
75
|
+
end
|
@@ -1,136 +1,69 @@
|
|
1
|
-
module
|
1
|
+
module Poisol
|
2
|
+
module ResponseBodyBuilder
|
2
3
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
else
|
8
|
-
generate_methods_to_alter_response_object
|
9
|
-
end
|
10
|
-
end
|
11
|
-
|
12
|
-
def generate_methods_to_alter_response_array
|
13
|
-
@response_array_item = @stub_config.response.body
|
14
|
-
generate_method_to_append_response_array
|
15
|
-
generate_method_to_append_response_array_as_hash_params
|
16
|
-
generate_method_to_alter_response_array_object
|
17
|
-
end
|
18
|
-
|
19
|
-
def generate_method_to_alter_response_array_object
|
20
|
-
@response_array_item.each do |field|
|
21
|
-
field_name = field[0]
|
22
|
-
actual_field_value = field[1]
|
23
|
-
is_array = (actual_field_value.class.to_s == "Array")
|
24
|
-
actual_field_value = actual_field_value[0] if is_array
|
25
|
-
method_name = "with_#{field_name.underscore}"
|
26
|
-
define_method(method_name) do |*input_value|
|
27
|
-
input_value = input_value[0]
|
28
|
-
assignment_value = get_assignment_value actual_field_value,input_value
|
29
|
-
@response.body.last[field_name] = assignment_value
|
30
|
-
self
|
31
|
-
end
|
32
|
-
|
33
|
-
if is_array
|
34
|
-
method_name = "with_#{field_name.classify.underscore}"
|
35
|
-
define_method(method_name) do |*input_value|
|
36
|
-
input_value = input_value[0]
|
37
|
-
assignment_value = get_assignment_value actual_field_value,input_value
|
38
|
-
@response.body.last[field_name] = @response.body.last[field_name] << assignment_value
|
39
|
-
self
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
def generate_method_to_append_response_array
|
47
|
-
class_name = self.name.classify.underscore
|
48
|
-
method_name = "has_#{class_name}"
|
49
|
-
define_method(method_name) do |*input_value|
|
50
|
-
if input_value.blank?
|
51
|
-
@response.body << stub_config.response.body.deep_dup
|
4
|
+
def prepare_response_body
|
5
|
+
return if @stub_config.response.body.blank?
|
6
|
+
if @stub_config.response.is_column_array or @stub_config.response.is_row_array
|
7
|
+
make_methods_to_alter_response_array
|
52
8
|
else
|
53
|
-
|
54
|
-
@response.body << (stub_config.response.body.deep_dup).deep_merge!(input_value[0].stringify_keys)
|
9
|
+
make_methods_to_alter_response_object
|
55
10
|
end
|
56
|
-
self
|
57
11
|
end
|
58
|
-
end
|
59
12
|
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
13
|
+
def make_methods_to_alter_response_object
|
14
|
+
response_body = @stub_config.response.body.clone
|
15
|
+
response_body.each do |field|
|
16
|
+
field_name = field[0]
|
17
|
+
actual_field_value = field[1]
|
18
|
+
is_array = (actual_field_value.class.to_s == "Array")
|
19
|
+
if is_array
|
20
|
+
make_method_to_alter_response_nested_array field_name,actual_field_value
|
21
|
+
else
|
22
|
+
make_method_to_alter_response_field field_name,actual_field_value
|
23
|
+
end
|
67
24
|
end
|
68
|
-
self
|
69
25
|
end
|
70
|
-
end
|
71
26
|
|
27
|
+
def make_method_to_alter_response_nested_array field_name,actual_field_values
|
28
|
+
actual_field_value = actual_field_values[0]
|
72
29
|
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
generate_method_to_alter_response_field field_name,actual_field_value
|
30
|
+
method_name = "has_#{field_name.underscore}"
|
31
|
+
define_method(method_name) do |*input_value|
|
32
|
+
@response.body[field_name] = []
|
33
|
+
input_hashes = input_value[0]
|
34
|
+
input_hashes.each do |input_hash|
|
35
|
+
assignment_value = get_assignment_value actual_field_value.deep_dup,input_hash.stringify_keys
|
36
|
+
@response.body[field_name] << assignment_value
|
37
|
+
end
|
38
|
+
self
|
83
39
|
end
|
84
|
-
end
|
85
|
-
end
|
86
40
|
|
87
|
-
def generate_method_to_alter_response_field_array field_name,actual_field_values
|
88
|
-
actual_field_value = actual_field_values[0]
|
89
41
|
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
42
|
+
method_name = "has_#{field_name.classify.underscore}"
|
43
|
+
define_method(method_name) do |*input_value|
|
44
|
+
input_value = input_value[0]
|
45
|
+
assignment_value = get_assignment_value actual_field_value,input_value
|
46
|
+
@response.body[field_name] = @called_methods.include?(__method__) ? @response.body[field_name] << assignment_value :[assignment_value]
|
47
|
+
@called_methods << __method__
|
48
|
+
self
|
97
49
|
end
|
98
|
-
self
|
99
|
-
end
|
100
|
-
|
101
|
-
|
102
|
-
method_name = "has_#{field_name.classify.underscore}"
|
103
|
-
define_method(method_name) do |*input_value|
|
104
|
-
input_value = input_value[0]
|
105
|
-
assignment_value = get_assignment_value actual_field_value,input_value
|
106
|
-
@response.body[field_name] = [assignment_value]
|
107
|
-
self
|
108
|
-
end
|
109
50
|
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
self
|
116
|
-
end
|
117
|
-
|
118
|
-
method_name = "has_no_#{field_name.classify.underscore}"
|
119
|
-
define_method(method_name) do
|
120
|
-
@response.body[field_name] = []
|
121
|
-
self
|
51
|
+
method_name = "has_no_#{field_name.classify.underscore}"
|
52
|
+
define_method(method_name) do
|
53
|
+
@response.body[field_name] = []
|
54
|
+
self
|
55
|
+
end
|
122
56
|
end
|
123
|
-
end
|
124
57
|
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
58
|
+
def make_method_to_alter_response_field field_name,actual_field_value
|
59
|
+
method_name = "has_#{field_name.underscore}"
|
60
|
+
define_method(method_name) do |*input_value|
|
61
|
+
input_value = input_value[0]
|
62
|
+
assignment_value = get_assignment_value actual_field_value,input_value
|
63
|
+
@response.body[field_name] = assignment_value
|
64
|
+
self
|
65
|
+
end
|
132
66
|
end
|
133
67
|
end
|
134
68
|
|
135
|
-
|
136
69
|
end
|