leap_salesforce 0.1.5 → 0.1.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/.leap_salesforce.yml +2 -1
- data/ChangeLog +6 -0
- data/README.md +20 -1
- data/exe/leap_salesforce +1 -1
- data/lib/leap_salesforce/ext/string.rb +7 -4
- data/lib/leap_salesforce/generator/default.rb +5 -2
- data/lib/leap_salesforce/generator/generator.rb +7 -2
- data/lib/leap_salesforce/generator/soql_enums.rb +1 -1
- data/lib/leap_salesforce/generator/soql_objects.rb +2 -2
- data/lib/leap_salesforce/generator/templates/.gitignore.erb +2 -0
- data/lib/leap_salesforce/generator/templates/.leap_salesforce.yml.erb +2 -1
- data/lib/leap_salesforce/generator/templates/picklist.rb.erb +1 -0
- data/lib/leap_salesforce/generator/templates/soql_object_field_names.rb.erb +3 -0
- data/lib/leap_salesforce/rake/setup.rake +4 -4
- data/lib/leap_salesforce/soql_data/soql_object_describe.rb +1 -1
- data/lib/leap_salesforce/version.rb +1 -1
- metadata +2 -2
- data/.idea/workspace.xml +0 -1306
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1bc5400e3a22260ee15346243caca18a4e839d5a32237a236cedb4488e8a073d
|
4
|
+
data.tar.gz: be7c25e87d9dfd868ae7e7347b64ef61bb520a9f017c031e4ec5c0e5b8b27832
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 48685d0acfa0a8b0b9ae08b94bdf64d41636df9982d45636a3d9e526ff9bef3d32cea0389767a4a2b31b6f6b5b45273c16bb221fc50d0121b96ddaa799b1769d
|
7
|
+
data.tar.gz: e62daf28879015af67c9eda73b495cd106450c962562c72556a4af97492511b238db493f3c21094d81fa2eba362dc05babae9f554b8b873584a1aa7002f59732
|
data/.gitignore
CHANGED
data/.leap_salesforce.yml
CHANGED
data/ChangeLog
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
Version 0.1.6
|
2
|
+
* Bug Fix
|
3
|
+
* Fix 'create_all' rake task
|
4
|
+
* Update string matcher so it excludes ALL non ruby characters
|
5
|
+
* Add example of setting an associated field through a lookup
|
6
|
+
|
1
7
|
Version 0.1.5
|
2
8
|
* Bug Fix
|
3
9
|
* Handle name starting with 0, currency. This time adding string unit tests
|
data/README.md
CHANGED
@@ -24,8 +24,11 @@ Or install it yourself as:
|
|
24
24
|
$ gem install leap_salesforce
|
25
25
|
|
26
26
|
## Usage
|
27
|
-
|
27
|
+
### Getting started
|
28
28
|
After installing the gem, to get started in creating a fresh repository, the `leap_salesforce` executable can be used.
|
29
|
+
It will ask for credentials and setup files that will locally store them.
|
30
|
+
This assumes that a Salesforce OAuth app be set up to be used for the API which can be done by
|
31
|
+
following [this wiki]('https://gitlab.com/leap-dojo/leap_salesforce/wikis/SetUpOAuthApp').
|
29
32
|
|
30
33
|
E.g
|
31
34
|
|
@@ -33,6 +36,22 @@ E.g
|
|
33
36
|
leap_salesforce init
|
34
37
|
```
|
35
38
|
|
39
|
+
Credentials are not stored in stored in source control. They can be setting through the following environment variables:
|
40
|
+
|
41
|
+
* 'client_id'
|
42
|
+
* 'client_secret'
|
43
|
+
* 'password'
|
44
|
+
|
45
|
+
Tests can be run using the default `Rake` task.
|
46
|
+
|
47
|
+
E.g.,
|
48
|
+
|
49
|
+
`rake` # Run all tests
|
50
|
+
|
51
|
+
API Traffic logs can be seen in the `logs` folder.
|
52
|
+
|
53
|
+
TODO: Finish this. A lot more needed
|
54
|
+
|
36
55
|
## Docs
|
37
56
|
|
38
57
|
Technical docs [here](https://www.rubydoc.info/gems/leap_salesforce)
|
data/exe/leap_salesforce
CHANGED
@@ -33,7 +33,7 @@ module LeapSalesforce
|
|
33
33
|
end
|
34
34
|
|
35
35
|
query_for_parameters
|
36
|
-
generate_files binding, ['Gemfile', 'Rakefile', '.leap_salesforce.yml', '.rspec',
|
36
|
+
generate_files binding, ['Gemfile', 'Rakefile', '.leap_salesforce.yml', '.rspec', '.gitignore',
|
37
37
|
{ config: ['general.rb', { credentials: 'salesforce_oauth2.yml' }] },
|
38
38
|
{ spec: %w[spec_helper.rb limit_spec.rb crud_eg_spec.rb picklists_spec.rb] }]
|
39
39
|
|
@@ -7,12 +7,15 @@ require 'active_support/core_ext/string'
|
|
7
7
|
|
8
8
|
# Override string object to provide convenience methods for Strings
|
9
9
|
class String
|
10
|
+
# @note This removes '?' which is allowed in a method but is not desired for automatic creation of their names
|
11
|
+
# in the way that is being used here
|
10
12
|
# @return [String] Convert string to something that would be friendly to use as in Ruby
|
11
13
|
def to_ruby_friendly
|
12
|
-
tr(
|
13
|
-
|
14
|
-
|
15
|
-
|
14
|
+
tr('&|=', '_').gsub('<', '_lt_').gsub('>', '_gt_')
|
15
|
+
.remove_macrons
|
16
|
+
.humanize_numbered_string
|
17
|
+
.gsub(/[\s]+/, '_')
|
18
|
+
.gsub(/[\W]/, '') # Remove any other special characters
|
16
19
|
end
|
17
20
|
|
18
21
|
# @return [String] Convert String to form a class could use
|
@@ -21,13 +21,15 @@ module LeapSalesforce
|
|
21
21
|
when 'string' then set("Faker::Lorem.paragraph_by_chars(#{field['length']})")
|
22
22
|
when 'id' then set('Best to not hard code this', use_quotes: true)
|
23
23
|
when 'boolean' then set('true')
|
24
|
-
when 'picklist' then set("#{class_name}::#{field['name']}.sample")
|
24
|
+
when 'picklist' then set("#{class_name}::#{field['name'].to_class_name}.sample")
|
25
25
|
when 'reference'
|
26
|
+
return set('User.find(CreatedDate: "<#{0.days.ago}").id') if field['name'] == 'OwnerId'
|
27
|
+
|
26
28
|
soql_obj = LeapSalesforce.soql_objects.find { |so| so.backend_name == field['relationshipName'] }&.reference
|
27
29
|
if soql_obj
|
28
30
|
"association :#{@field['label'].unused_ruby_name}, factory: :#{soql_obj}"
|
29
31
|
else
|
30
|
-
"# Please add #{field['relationshipName']} to .leap_salesforce.yml to create association for #{field}"
|
32
|
+
"# Please add #{field['relationshipName']} to .leap_salesforce.yml (if it's a table) to create association for #{field['relationshipName']}"
|
31
33
|
end
|
32
34
|
else
|
33
35
|
set("Content depending on #{field['type']}", use_quotes: true)
|
@@ -43,6 +45,7 @@ module LeapSalesforce
|
|
43
45
|
%w[FirstName LastName]
|
44
46
|
end
|
45
47
|
|
48
|
+
# @return [Array] List of backend field names to be populated by default for account
|
46
49
|
def account
|
47
50
|
['Name']
|
48
51
|
end
|
@@ -19,10 +19,15 @@ module LeapSalesforce
|
|
19
19
|
# @param [String] content Content to put within file
|
20
20
|
def generate_file(filename, content, overwrite: true)
|
21
21
|
FileUtils.mkdir_p File.dirname filename unless File.directory? File.dirname(filename)
|
22
|
-
|
22
|
+
action = if File.exist?(filename)
|
23
|
+
return puts "File '#{filename}' already exists, skipping...".colorize :red unless overwrite
|
23
24
|
|
25
|
+
'Updated'
|
26
|
+
else
|
27
|
+
'Created'
|
28
|
+
end
|
24
29
|
File.write filename, content
|
25
|
-
puts "\u2713
|
30
|
+
puts "\u2713 #{action} #{filename}".colorize :green
|
26
31
|
end
|
27
32
|
|
28
33
|
# @example Create a spec_helper file and test file in spec folder
|
@@ -33,7 +33,7 @@ module LeapSalesforce
|
|
33
33
|
@picklist = picklist
|
34
34
|
@enum_name = picklist.to_class_name
|
35
35
|
picklist_name = picklist.to_key_name
|
36
|
-
values = entity.picklist_for
|
36
|
+
values = entity.picklist_for(picklist)
|
37
37
|
@enum_values = {}
|
38
38
|
values.each { |value| @enum_values[value.to_key_name] = value }
|
39
39
|
content = read_template 'picklist.rb.erb', binding
|
@@ -32,7 +32,7 @@ module LeapSalesforce
|
|
32
32
|
end
|
33
33
|
content = read_template 'soql_object.rb.erb', binding
|
34
34
|
file = File.join(SOQL_OBJECT_FOLDER, "#{@soql_object.reference}.rb")
|
35
|
-
generate_file file, content
|
35
|
+
generate_file file, content, overwrite: false
|
36
36
|
end
|
37
37
|
|
38
38
|
# Generate module with fields for Soql Object
|
@@ -47,7 +47,7 @@ module LeapSalesforce
|
|
47
47
|
@default_fields, @other_fields = filter_fields
|
48
48
|
content = read_template 'factory.rb.erb', binding
|
49
49
|
file = File.join(FACTORY_FOLDER, "#{@soql_object.reference}.rb")
|
50
|
-
generate_file file, content
|
50
|
+
generate_file file, content, overwrite: false
|
51
51
|
end
|
52
52
|
|
53
53
|
# Generate soql_object and it's related modules, factories
|
@@ -1,3 +1,6 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# This file is generated and updated automatically so best not to edit manually
|
1
4
|
# Fields for <%= @soql_object.class_name %> mapped from SOQL <%= @soql_object.backend_name %>
|
2
5
|
class <%= @soql_object.class_name %> < SoqlData
|
3
6
|
module Fields
|
@@ -13,11 +13,11 @@ namespace :leaps do
|
|
13
13
|
LeapSalesforce::Generator::SoqlObjects.new.create_all
|
14
14
|
end
|
15
15
|
|
16
|
-
# TODO: This does not work
|
17
16
|
desc 'Create objects, fields, enums'
|
18
17
|
task create_all: :create_soql_objects do
|
19
|
-
#
|
20
|
-
|
21
|
-
|
18
|
+
# TODO: This is not ideal. But only way I could get it to work
|
19
|
+
puts `bundle exec rake leaps:create_soql_objects`
|
20
|
+
puts 'Creating enums. Please wait until finished for output'
|
21
|
+
puts `bundle exec rake leaps:create_enums`
|
22
22
|
end
|
23
23
|
end
|
@@ -52,7 +52,7 @@ module SoqlObjectDescribe
|
|
52
52
|
def picklist_for(field_name)
|
53
53
|
properties = properties_for field_name
|
54
54
|
|
55
|
-
properties['picklistValues'].collect { |list| list['label'] }
|
55
|
+
properties['picklistValues'].collect { |list| list['label'] }.compact
|
56
56
|
end
|
57
57
|
|
58
58
|
# @param [String, Symbol] field_name Salesforce backend field name
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: leap_salesforce
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- IQA
|
@@ -242,7 +242,6 @@ files:
|
|
242
242
|
- ".idea/misc.xml"
|
243
243
|
- ".idea/modules.xml"
|
244
244
|
- ".idea/vcs.xml"
|
245
|
-
- ".idea/workspace.xml"
|
246
245
|
- ".leap_salesforce.yml"
|
247
246
|
- ".rspec"
|
248
247
|
- ".rubocop.yml"
|
@@ -267,6 +266,7 @@ files:
|
|
267
266
|
- lib/leap_salesforce/generator/generator.rb
|
268
267
|
- lib/leap_salesforce/generator/soql_enums.rb
|
269
268
|
- lib/leap_salesforce/generator/soql_objects.rb
|
269
|
+
- lib/leap_salesforce/generator/templates/.gitignore.erb
|
270
270
|
- lib/leap_salesforce/generator/templates/.leap_salesforce.yml.erb
|
271
271
|
- lib/leap_salesforce/generator/templates/.rspec.erb
|
272
272
|
- lib/leap_salesforce/generator/templates/Gemfile.erb
|