class PactBroker::Config::Setting

Public Class Methods

get_db_type(object) click to toggle source

rubocop: disable Metrics/CyclomaticComplexity

# File lib/pact_broker/config/setting.rb, line 50
def self.get_db_type(object)
  case object
  when true, false
    "boolean"
  when String, nil
    "string"
  when SpaceDelimitedStringList
    "space_delimited_string_list"
  when Array, Hash
    "json"
  when Integer
    "integer"
  when Float
    "float"
  when Symbol
    "symbol"
  else
    nil
  end
end
get_db_value(object) click to toggle source

rubocop: enable Metrics/CyclomaticComplexity

# File lib/pact_broker/config/setting.rb, line 32
def self.get_db_value(object)
  case object
  when String, Integer, Float, NilClass
    object
  when TrueClass
    "1"
  when FalseClass
    "0"
  when SpaceDelimitedStringList, Symbol
    object.to_s
  when Array, Hash
    object.to_json
  else
    nil
  end
end

Public Instance Methods

set_value_from(object) click to toggle source
# File lib/pact_broker/config/setting.rb, line 5
def set_value_from(object)
  self.type = Setting.get_db_type(object)
  self.value = Setting.get_db_value(object)
  self
end
value_object() click to toggle source

rubocop: disable Metrics/CyclomaticComplexity

# File lib/pact_broker/config/setting.rb, line 12
def value_object
  case type
  when "json"
    JSON.parse(value, symbolize_names: true)
  when "string"
    value
  when "symbol"
    value.to_sym
  when "integer"
    Integer(value)
  when "float"
    Float(value)
  when "space_delimited_string_list"
    SpaceDelimitedStringList.parse(value)
  when "boolean"
    value == "1"
  end
end