module Poisol::RequestBodyBuilder

Public Instance Methods

generate_method_to_alter_request_array_object() click to toggle source
# File lib/poisol/stub/request/request_body_builder.rb, line 20
def generate_method_to_alter_request_array_object
  @request_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 = is_array ? ("having_#{field_name.classify.underscore}") : ("having_#{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
      @request.body.last[field_name] = is_array ? (@request.body.last[field_name] << assignment_value) :  assignment_value
      self
    end
  end
end
generate_method_to_alter_request_field(field_name,actual_field_value) click to toggle source
# File lib/poisol/stub/request/request_body_builder.rb, line 102
def generate_method_to_alter_request_field field_name,actual_field_value
  method_name = "by_#{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
    @request.body[field_name] = assignment_value
    self
  end
end
generate_method_to_alter_request_field_array(field_name,actual_field_values) click to toggle source
# File lib/poisol/stub/request/request_body_builder.rb, line 77
def generate_method_to_alter_request_field_array field_name,actual_field_values
  actual_field_value = actual_field_values[0] 
  method_name = "by_#{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
    @request.body[field_name] =  [assignment_value]
    self
  end

  method_name = "by_another_#{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
    @request.body[field_name] =  @request.body[field_name] << assignment_value 
    self
  end

  method_name = "by_no_#{field_name.classify.underscore}" 
  define_method(method_name) do 
    @request.body[field_name] = [] 
    self
  end
end
generate_method_to_append_request_array() click to toggle source
# File lib/poisol/stub/request/request_body_builder.rb, line 36
def generate_method_to_append_request_array
  class_name = self.name.classify.underscore
  method_name = "by_#{class_name}"
  define_method(method_name) do |*input_value|
    if input_value.blank?
      @request.body << stub_config.request.body.deep_dup 
    else
      input = JSON.parse(input_value[0].to_json)
      @request.body << (stub_config.request.body.deep_dup).deep_merge!(input_value[0].stringify_keys)
    end
    self
  end
end
generate_method_to_append_request_array_as_hash_params() click to toggle source
# File lib/poisol/stub/request/request_body_builder.rb, line 50
def generate_method_to_append_request_array_as_hash_params
  class_name = self.name.underscore
  method_name = "by_#{class_name}"
  define_method(method_name) do |*input_value|
    input_hashes = input_value[0]
    input_hashes.each do |input_hash|
      @request.body << (stub_config.request.body.deep_dup).deep_merge!(input_hash.stringify_keys)
    end
    self
  end
end
generate_methods_to_alter_request_array() click to toggle source
# File lib/poisol/stub/request/request_body_builder.rb, line 13
def generate_methods_to_alter_request_array
  @request_array_item = @stub_config.request.body
  generate_method_to_append_request_array
  generate_method_to_append_request_array_as_hash_params
  generate_method_to_alter_request_array_object
end
generate_methods_to_alter_request_object() click to toggle source
# File lib/poisol/stub/request/request_body_builder.rb, line 63
def generate_methods_to_alter_request_object
  request_body = @stub_config.request.body.clone
  request_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 
      generate_method_to_alter_request_field_array field_name,actual_field_value
    else 
      generate_method_to_alter_request_field field_name,actual_field_value
    end
  end
end
prepare_request_body() click to toggle source
# File lib/poisol/stub/request/request_body_builder.rb, line 4
def prepare_request_body
  return if @stub_config.request.body.blank?
  if  @stub_config.request.is_column_array or @stub_config.request.is_row_array 
    generate_methods_to_alter_request_array
  else
    generate_methods_to_alter_request_object 
  end
end