salesforce-dcgen 0.0.6 → 0.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f95ebb03e8268b14d48158046322b0c3999b147f
4
- data.tar.gz: d53c5db88b4bf669196ce14708ede23080acf9ea
3
+ metadata.gz: 8d6344bd52f41193c4e258fc1386491a8727c5ad
4
+ data.tar.gz: 2779839a8c80f7ad64527613cf61128c5a5110dd
5
5
  SHA512:
6
- metadata.gz: b73779d583d9a16e6014287f7b5b3682cd5c02ec9060250aca270c731a0b0654e1d2ddd5250a43162823339c0960e2dc9e29bcdd9021719f6107f173a9c4cb01
7
- data.tar.gz: 30a969e973b15fc38e69c0f9bfc72c4d755fb6fd8ca9f14bcac8c886e6825f4fbed247d724cb88d5589cc1607c37697a6a26aa1357ff8dba05282dcb53bc940c
6
+ metadata.gz: 4b4033ec8664c3ae468980d448be86319cea65180b85efac7696de37e037d34c61febcaccf9fda2e730ce4bef1d4a1bc0bf9bf2cf5a86953bd152db1ec2dcf8a
7
+ data.tar.gz: 88de73796a60b3dcedc995837586beaa8cfac4ba467327cc75765e50db657a86f1f1a7ff30f592e86fc89d8e4a2be5768ff20c877b05f43bd39f77d314a32999
data/README.md CHANGED
@@ -1,24 +1,42 @@
1
1
  # Dcgen
2
2
 
3
- TODO: Write a gem description
3
+ dcgen is a simple tool that generates a destructiveChanges.xml by comparing
4
+ two salesforce source directories.
5
+
6
+ A typical usage example is if you use an SCM to manage your salesforce code and
7
+ metadata. You can compare your repository contents against what is in a sandbox.
8
+ Any element that is in you sandbox but is not on your SCM will be included in the
9
+ destructiveChange.xml.
4
10
 
5
11
  ## Installation
6
12
 
7
- Add this line to your application's Gemfile:
13
+ ```
14
+ # gem install salesforce-dcgen
15
+ ```
16
+ ## Usage
8
17
 
9
- gem 'dcgen'
18
+ To get destructiveChanges.xml between two directories just run:
10
19
 
11
- And then execute:
20
+ ```
21
+ $ dcgen -m dir/to/scm/repo -d dir/to/sandbox/source/code
22
+ ```
12
23
 
13
- $ bundle
24
+ ## Metadata API supported:
14
25
 
15
- Or install it yourself as:
26
+ At the moment the following metadata is supported:
16
27
 
17
- $ gem install dcgen
28
+ apexclass
29
+ apexpage
30
+ approvalprocess
31
+ customfield
32
+ group
33
+ permissionset
34
+ workflowrule
35
+ labels
18
36
 
19
- ## Usage
37
+ More to come...
20
38
 
21
- TODO: Write usage instructions here
39
+ Checkout the code, at the moment is VERY easy to add more metadata
22
40
 
23
41
  ## Contributing
24
42
 
data/bin/dcgen CHANGED
@@ -26,6 +26,11 @@ parser = OptionParser.new do |opts|
26
26
  options[:exclude] = exclude.split(',')
27
27
  end
28
28
 
29
+ opts.on('-v', '--version', 'Show current version') do
30
+ puts Dcgen::VERSION
31
+ exit 0
32
+ end
33
+
29
34
  opts.on('-h', '--help', 'Displays Help') do
30
35
  puts opts
31
36
  exit
@@ -0,0 +1,38 @@
1
+ require 'nokogiri'
2
+
3
+ module Dcgen
4
+
5
+ def self.label master , destination
6
+
7
+ remove_labels = []
8
+
9
+ master_labels = Dir.glob(master + '/labels/*labels').map {|c| c.match(/^.*\/(.*).labels$/)[1] }
10
+
11
+ master_labels.each do |label|
12
+
13
+ master_labels_file = File.join(master,'labels',label + '.labels')
14
+ destination_labels_file = File.join(destination,'labels',label + '.labels')
15
+
16
+ if File.exists? destination_labels_file
17
+
18
+ master_labels_xml = File.open(master_labels_file).read
19
+ destination_labels_xml = File.open(destination_labels_file).read
20
+
21
+ master_doc = Nokogiri::XML(master_labels_xml).remove_namespaces!
22
+ destination_doc = Nokogiri::XML(destination_labels_xml).remove_namespaces!
23
+
24
+ # Find all the customfields that are in destination, if they are not present in
25
+ # master, then they have to be in the remove list
26
+ destination_doc.xpath('//labels/fullName').each do |lb|
27
+ remove_labels << "#{lb.text}" if master_doc.xpath("//labels[fullName=\"#{lb.text}\"]").empty?
28
+ end
29
+
30
+ end
31
+
32
+ end
33
+
34
+ remove_labels
35
+
36
+ end
37
+ end
38
+
data/lib/dcgen/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Dcgen
2
- VERSION = "0.0.6"
2
+ VERSION = "0.0.7"
3
3
  end
@@ -56,4 +56,12 @@
56
56
  <name>WorkflowRule</name>
57
57
  </types>
58
58
  <% end %>
59
+ <% if not @metadata[:label].empty? %>
60
+ <types>
61
+ <% for @label in @metadata[:label] %>
62
+ <members><%= @label %></members>
63
+ <% end %>
64
+ <name>CustomLabel</name>
65
+ </types>
66
+ <% end %>
59
67
  </Package>
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: salesforce-dcgen
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Juan Breinlinger
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-10-29 00:00:00.000000000 Z
11
+ date: 2014-10-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -59,6 +59,7 @@ files:
59
59
  - lib/dcgen/plugins/approvalprocess.rb
60
60
  - lib/dcgen/plugins/customfield.rb
61
61
  - lib/dcgen/plugins/group.rb
62
+ - lib/dcgen/plugins/label.rb
62
63
  - lib/dcgen/plugins/permissionset.rb
63
64
  - lib/dcgen/plugins/workflowrule.rb
64
65
  - lib/dcgen/version.rb