class RestforceMock::SchemaManager

Public Class Methods

new(client = default_client ) click to toggle source
# File lib/restforce_mock/schema_manager.rb, line 9
def initialize(client = default_client  )
  @client = client
end

Public Instance Methods

default_client() click to toggle source
# File lib/restforce_mock/schema_manager.rb, line 13
def default_client
  ::Restforce.new
end
dump_schema(object_names, file) click to toggle source

Dump schema into file

object_names - Array array of name of objects in SF file - String yml file

# File lib/restforce_mock/schema_manager.rb, line 41
def dump_schema(object_names, file)
  schema = {}
  object_names.each do |o|
    schema[o] = get_schema(o)
  end
  File.open(file, 'w') {|f| f.write schema.to_yaml }
end
get_schema(object_name) click to toggle source

Get schema for Salesforce Object

object_name - String

Returns

Hash

# File lib/restforce_mock/schema_manager.rb, line 24
def get_schema(object_name)
  s = @client.describe(object_name)
  object_schema = {}
  s["fields"].each do |field|
    object_schema[field["name"]]= {
      type: field["type"],
      # http://salesforce.stackexchange.com/questions/25233/is-there-a-way-to-find-required-fields-on-an-objects
      required: field["createable"] && !field["nillable"] && !field["defaultedOnCreate"]
    }
  end
  object_schema
end
load_schema(file) click to toggle source
# File lib/restforce_mock/schema_manager.rb, line 49
def load_schema(file)
  if file.nil?
    raise "Schema file is not defined"
  end
  thing = YAML.load_file(file)
end