poisol 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- 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
|