Class: RestforceMock::SchemaManager

Inherits:
Object
  • Object
show all
Defined in:
lib/restforce_mock/schema_manager.rb

Instance Method Summary collapse

Constructor Details

#initialize(client = default_client) ⇒ SchemaManager

Returns a new instance of SchemaManager.



9
10
11
# File 'lib/restforce_mock/schema_manager.rb', line 9

def initialize(client = default_client  )
  @client = client
end

Instance Method Details

#default_clientObject



13
14
15
# File 'lib/restforce_mock/schema_manager.rb', line 13

def default_client
  ::Restforce.new
end

#dump_schema(object_names, file) ⇒ Object

Dump schema into file

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



41
42
43
44
45
46
47
# 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) ⇒ Object

Get schema for Salesforce Object

object_name - String

Returns

Hash



24
25
26
27
28
29
30
31
32
33
34
35
# 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) ⇒ Object



49
50
51
52
53
54
# 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