Module: Metaforce::Metadata::Client::CRUD

Included in:
Metaforce::Metadata::Client
Defined in:
lib/metaforce/metadata/client/crud.rb

Instance Method Summary collapse

Instance Method Details

#_create(type, metadata = {}) ⇒ Object

Public: Create metadata

Examples

client._create(:apex_page, :full_name => 'TestPage', label: 'Test page', :content => '<apex:page>foobar</apex:page>')


11
12
13
14
15
16
17
18
# File 'lib/metaforce/metadata/client/crud.rb', line 11

def _create(type, ={})
  type = type.to_s.camelize
  request :create do |soap|
    soap.body = {
      :metadata => prepare()
    }.merge(attributes!(type))
  end
end

#_delete(type, *args) ⇒ Object

Public: Delete metadata

Examples

client._delete(:apex_component, 'Component')


25
26
27
28
29
30
31
32
33
# File 'lib/metaforce/metadata/client/crud.rb', line 25

def _delete(type, *args)
  type = type.to_s.camelize
   = args.map { |full_name| {:full_name => full_name} }
  request :delete do |soap|
    soap.body = {
      :metadata => 
    }.merge(attributes!(type))
  end
end

#_update(type, current_name, metadata = {}) ⇒ Object

Public: Update metadata

Examples

client._update(:apex_page, 'OldPage', :full_name => 'TestPage', :label => 'Test page', :content => '<apex:page>hello world</apex:page>')


40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/metaforce/metadata/client/crud.rb', line 40

def _update(type, current_name, ={})
  type = type.to_s.camelize
  request :update do |soap|
    soap.body = {
      :metadata => {
        :current_name => current_name,
        :metadata => prepare(),
        :attributes! => { :metadata => { 'xsi:type' => "ins0:#{type}" } }
      }
    }
  end
end

#create(*args) ⇒ Object



53
54
55
# File 'lib/metaforce/metadata/client/crud.rb', line 53

def create(*args)
  Job::CRUD.new(self, :_create, args)
end

#delete(*args) ⇒ Object



61
62
63
# File 'lib/metaforce/metadata/client/crud.rb', line 61

def delete(*args)
  Job::CRUD.new(self, :_delete, args)
end

#update(*args) ⇒ Object



57
58
59
# File 'lib/metaforce/metadata/client/crud.rb', line 57

def update(*args)
  Job::CRUD.new(self, :_update, args)
end