class Salesforce::Metadata::PermissionSet

A Salesforce PermissionSet metadata object.

See developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_permissionset.htm

@author Ben Burwell

Attributes

filename[RW]

Public Class Methods

read(name, dir) click to toggle source

Read a permissionset file from its name and directory

The default file path is `./src/permissionsets/NAME.permissionset`, but the directory can be overridden by passing a non-nil String.

@param name [String] the name of the permissionset to read, like 'Admin' @param dir [String] the directory to search for the permissionset in. If

nil, defaults to `./src/permissionsets`.

@return [PermissionSet] the permissionset object that has been instantiated

# File lib/mdata/metadata/PermissionSet.rb, line 75
def self.read name, dir
    dir = './src/permissionsets' if dir.nil?
    filename = "#{dir}/#{name}.permissionset"
    permissionset = PermissionSet.from_xml(File.read(filename))
    permissionset.filename = filename
    permissionset
end
touch(name, dir) click to toggle source

Create an empty permissionset by name in directory

@param name [String] the name of the permissionset to create @param dir [String] the directory to create it in, defaulting to

`./src/permissionsets`.
# File lib/mdata/metadata/PermissionSet.rb, line 100
def self.touch name, dir
    dir = './src/permissionsets' if dir.nil?
    filename = "#{dir}/#{name}.permissionset"
    permissionset = PermissionSet.new
    permissionset.filename = filename
    permissionset.save
end

Public Instance Methods

save() click to toggle source

Save the permissionset to disk, writing it to the file from whence it came

Relies on the permissionset object having a `@filename` to save to.

# File lib/mdata/metadata/PermissionSet.rb, line 86
def save
    doc = ::Nokogiri::XML::Document.new
    doc.root = to_xml()
    doc.root.add_namespace nil, 'http://soap.sforce.com/2006/04/metadata'
    File.open @filename, 'w' do |file|
                      file << doc.to_xml(:indent => 4, :encoding => 'UTF-8')
    end
end