module Poisol::ResponseBodyBuilder
Public Instance Methods
make_method_to_alter_response_array_object()
click to toggle source
# File lib/poisol/stub/response/array_response_body.rb, line 42 def make_method_to_alter_response_array_object @response_array_item.each do |field| field_name = field[0] actual_field_value = field[1] is_array = (actual_field_value.class.to_s == "Array") actual_field_value = actual_field_value[0] if is_array method_name = "with_#{field_name.underscore}" define_method(method_name) do |*input_value| input_value = input_value[0] assignment_value = get_assignment_value actual_field_value,input_value @response.body.last[field_name] = assignment_value self end if is_array method_name = "with_#{field_name.classify.underscore}" define_method(method_name) do |*input_value| input_value = input_value[0] assignment_value = get_assignment_value actual_field_value,input_value if @called_methods.include? __method__ @response.body.last[field_name] << assignment_value else @response.body.last[field_name] = [assignment_value] end @called_methods << __method__ self end end end end
make_method_to_alter_response_field(field_name,actual_field_value)
click to toggle source
# File lib/poisol/stub/response/response_body_builder.rb, line 58 def make_method_to_alter_response_field field_name,actual_field_value method_name = "has_#{field_name.underscore}" define_method(method_name) do |*input_value| input_value = input_value[0] assignment_value = get_assignment_value actual_field_value,input_value @response.body[field_name] = assignment_value self end end
make_method_to_alter_response_nested_array(field_name,actual_field_values)
click to toggle source
# File lib/poisol/stub/response/response_body_builder.rb, line 27 def make_method_to_alter_response_nested_array field_name,actual_field_values actual_field_value = actual_field_values[0] method_name = "has_#{field_name.underscore}" define_method(method_name) do |*input_value| @response.body[field_name] = [] input_hashes = input_value[0] input_hashes.each do |input_hash| assignment_value = get_assignment_value actual_field_value.deep_dup,input_hash @response.body[field_name] << assignment_value end self end method_name = "has_#{field_name.classify.underscore}" define_method(method_name) do |*input_value| input_value = input_value[0] assignment_value = get_assignment_value actual_field_value,input_value @response.body[field_name] = @called_methods.include?(__method__) ? @response.body[field_name] << assignment_value :[assignment_value] @called_methods << __method__ self end method_name = "has_no_#{field_name.classify.underscore}" define_method(method_name) do @response.body[field_name] = [] self end end
make_method_to_append_response_array()
click to toggle source
# File lib/poisol/stub/response/array_response_body.rb, line 11 def make_method_to_append_response_array class_name = self.name.classify.underscore method_name = "has_#{class_name}" define_method(method_name) do |*input_value| assignment_value = input_value.blank? ? stub_config.response.body.deep_dup : (stub_config.response.body.deep_dup).deep_merge!(input_value[0].stringify_keys) if @called_methods.include? __method__ @response.body << assignment_value else @response.body = [assignment_value] end @called_methods << __method__ remove_array_field_calls self end end
make_method_to_append_response_array_as_hash_params()
click to toggle source
# File lib/poisol/stub/response/array_response_body.rb, line 29 def make_method_to_append_response_array_as_hash_params class_name = self.name.underscore method_name = "has_#{class_name}" define_method(method_name) do |*input_value| @response.body = [] input_hashes = input_value[0] input_hashes.each do |input_hash| @response.body << (stub_config.response.body.deep_dup).deep_merge!(input_hash.stringify_keys) end self end end
make_methods_to_alter_response_array()
click to toggle source
# File lib/poisol/stub/response/array_response_body.rb, line 4 def make_methods_to_alter_response_array @response_array_item = @stub_config.response.body make_method_to_append_response_array make_method_to_append_response_array_as_hash_params make_method_to_alter_response_array_object end
make_methods_to_alter_response_object()
click to toggle source
# File lib/poisol/stub/response/response_body_builder.rb, line 13 def make_methods_to_alter_response_object response_body = @stub_config.response.body.clone response_body.each do |field| field_name = field[0] actual_field_value = field[1] is_array = (actual_field_value.class.to_s == "Array") if is_array make_method_to_alter_response_nested_array field_name,actual_field_value else make_method_to_alter_response_field field_name,actual_field_value end end end
prepare_response_body()
click to toggle source
# File lib/poisol/stub/response/response_body_builder.rb, line 4 def prepare_response_body return if @stub_config.response.body.blank? if @stub_config.response.is_column_array or @stub_config.response.is_row_array make_methods_to_alter_response_array else make_methods_to_alter_response_object end end