sf_cli 0.0.7 → 0.0.8

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.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/{rdoc/README.rdoc → README.rdoc} +24 -38
  3. data/lib/sf_cli/console/commands.rb +36 -0
  4. data/lib/sf_cli/console.rb +5 -0
  5. data/lib/sf_cli/sf/apex/core.rb +5 -6
  6. data/lib/sf_cli/sf/apex/run.rb +13 -10
  7. data/lib/sf_cli/sf/core/base.rb +1 -0
  8. data/lib/sf_cli/sf/data/bulk_result_v2.rb +2 -3
  9. data/lib/sf_cli/sf/data/core.rb +5 -6
  10. data/lib/sf_cli/sf/data/create_record.rb +6 -8
  11. data/lib/sf_cli/sf/data/delete_bulk.rb +9 -10
  12. data/lib/sf_cli/sf/data/delete_record.rb +8 -9
  13. data/lib/sf_cli/sf/data/delete_resume.rb +7 -9
  14. data/lib/sf_cli/sf/data/get_record.rb +11 -13
  15. data/lib/sf_cli/sf/data/helper_methods.rb +1 -0
  16. data/lib/sf_cli/sf/data/query.rb +20 -27
  17. data/lib/sf_cli/sf/data/query_helper.rb +3 -0
  18. data/lib/sf_cli/sf/data/resume.rb +6 -6
  19. data/lib/sf_cli/sf/data/search.rb +9 -10
  20. data/lib/sf_cli/sf/data/update_record.rb +11 -14
  21. data/lib/sf_cli/sf/data/upsert_bulk.rb +9 -12
  22. data/lib/sf_cli/sf/data/upsert_resume.rb +7 -10
  23. data/lib/sf_cli/sf/main.rb +7 -3
  24. data/lib/sf_cli/sf/model/base_methods.rb +1 -0
  25. data/lib/sf_cli/sf/model/class_definition.rb +1 -0
  26. data/lib/sf_cli/sf/model/dml_methods.rb +1 -0
  27. data/lib/sf_cli/sf/model/generator.rb +2 -1
  28. data/lib/sf_cli/sf/model/query_condition.rb +1 -0
  29. data/lib/sf_cli/sf/model/query_methods.rb +1 -0
  30. data/lib/sf_cli/sf/model/sf_command_connection.rb +24 -5
  31. data/lib/sf_cli/sf/model.rb +6 -4
  32. data/lib/sf_cli/sf/org/core.rb +6 -6
  33. data/lib/sf_cli/sf/org/display.rb +7 -6
  34. data/lib/sf_cli/sf/org/list.rb +12 -13
  35. data/lib/sf_cli/sf/org/login.rb +22 -28
  36. data/lib/sf_cli/sf/project/core.rb +10 -72
  37. data/lib/sf_cli/sf/project/generate.rb +35 -0
  38. data/lib/sf_cli/sf/project/generate_manifest.rb +31 -0
  39. data/lib/sf_cli/sf/sobject/core.rb +10 -47
  40. data/lib/sf_cli/sf/sobject/describe.rb +29 -0
  41. data/lib/sf_cli/sf/sobject/list.rb +18 -0
  42. data/lib/sf_cli.rb +5 -12
  43. metadata +10 -9
  44. data/CHANGELOG.md +0 -57
  45. data/lib/sf_cli/sf/console.rb +0 -33
  46. data/rdoc/ObjectModel.rdoc +0 -83
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 98f07645a79ccfa6a8f8bbac048a4da5aae6f21bf294445a0888f861d91b8f27
4
- data.tar.gz: a608a4eeb21ff2fd065cac874d6834e1a6c8aec83f9a40ada0f73917e4029ffb
3
+ metadata.gz: fa13644d7e9281efbbb57516775a5edd9b69fb7ff9fbc260332a54d0afebc227
4
+ data.tar.gz: feb9c574b8d0681fbe9ba43572cb9b7725558fc20f69eebbbd3a2b3734aa60b9
5
5
  SHA512:
6
- metadata.gz: 9f5949bdba034feb1a7265a79fa9cd41c9e6f9d1402e4cf173fc585b0ab44d904570591382066633f5258f55503f0503410d648fb3700856029471678090efed
7
- data.tar.gz: 32a39625a575b1f9e465d9090c1e63a0ec8ee8ed605c4f5c3104b3866121a931780cf7c2f82200ab84ca5924ff798790cf116cf9580280ab1e1e6a26458d1ef4
6
+ metadata.gz: ade35b3acd147ac13367c6d681c31028fef4b661ab2a97101e21b170221231c81c8d76a13c9e6f2688b085ae4889c8872ced4dd72b4f1d21cc8ac465cde78096
7
+ data.tar.gz: f7fb45fc3c50d2ab557f82d28b74119465fddad2c5930710aadbe0b44c19da49b8ac76c6815f0e18132d0f49d1590ed456ed42069ca07385e75db3d630f0812e
@@ -5,75 +5,61 @@ This is a class library for introducing {Salesforce CLI}[https://developer.sales
5
5
  It is designed to be similar usability to the original command.<br>
6
6
  Currently only *sf* command is the target of development.
7
7
 
8
+ [rubygems] https://rubygems.org/gems/sf_cli
9
+ [official document] https://tmkw.github.io/sf_cli/
10
+
8
11
  == prerequisite
9
- Salesforce CLI must be installed.<br>
12
+ {Salesforce CLI}[https://developer.salesforce.com/docs/atlas.en-us.sfdx_cli_reference.meta/sfdx_cli_reference/cli_reference_top.htm] must be installed.<br>
10
13
  As of as of September in 2024, ver.2.56.7 is the development target.
11
14
 
12
15
  == install
13
16
  Rubygem::
14
- the simplest way:
15
- $ gem install sf_cli
17
+ the simplest way:
18
+ $ gem install sf_cli
16
19
  Bundler::
17
- in Gemfile:
18
- gem 'sf_cli'
19
- then,
20
- $ bundle install
21
- == Documents
22
- Class Library Reference::
23
- {Online document}[https://www.rubydoc.info/gems/sf_cli/0.0.7] at rubygems.org
24
-
25
- Or,
26
- Generate locally:
27
- $ git clone https://github.com/tmkw/sf_cli.git
28
- $ cd sf_cli
29
- $ bundle install
30
- $ bundle exec rake rdoc
31
- *As* *of* *0.0.7*, *this* *may* *be* *better* *to* *know* *what* *it* *is* *exactly*.
32
- Salesforce CLI and Sf command::
33
- 1. {Salesforce CLI reference}[https://developer.salesforce.com/docs/atlas.en-us.sfdx_cli_reference.meta/sfdx_cli_reference/cli_reference_top.htm]
34
- 2. {sf command reference}[https://developer.salesforce.com/docs/atlas.en-us.sfdx_cli_reference.meta/sfdx_cli_reference/cli_reference_unified.htm]
35
-
36
- == Short Examples
20
+ in Gemfile:
21
+ gem 'sf_cli'
22
+ then,
23
+ $ bundle install
24
+ == Usage
25
+ Load module
37
26
  require 'sf_cli'
38
27
 
39
- # login to org
28
+ Login to org
40
29
  sf.org.login_web
41
30
 
42
- # get salesforce object schema
31
+ Get Salesforce Object schema
43
32
  sf.sobject.describe :Account
44
33
 
45
- # get a record
34
+ Get a record
46
35
  sf.data.get_record :Account, record_id: 'xxxxxxx'
47
36
  sf.data.get_record :Account, where: {Name: 'Jonny B.Good', Country: 'USA'}
48
37
 
49
- # execute soql
38
+ Execute SOQL
50
39
  sf.data.query "SELECT Id, Name FROM Account LIMIT 1" # => [{Id: "abc", Name: "account name"}]
51
40
 
52
- # create a record
41
+ Create a record
53
42
  sf.data.create_record :TheCustomObject__c, values: {Name: "John Smith", Age: 33}
54
43
 
55
- # update a record
44
+ Update a record
56
45
  sf.data.update_record :Account, record_id: 'xxxxxxx', values: {Name: 'New Account Name'}
57
46
  sf.data.update_record :Hoge__c, where: {Name: 'Jonny B.Good', Country: 'USA'}, values: {Phone: 'xxxxx', bar: 2000}
58
47
 
59
- # delete a record
48
+ Delete a record
60
49
  sf.data.delete_record :Hoge__c, record_id: 'xxxxxxx'
61
50
  sf.data.delete_record :Hoge__c, where: {Name: 'Jonny B.Good', Country: 'USA'}
62
51
 
63
- # using Bulk API 2.0
52
+ Using Bulk API 2.0
64
53
  sf.data.upsert_bulk sobject: :TestCustomObject__c, file: 'upsert.csv', timeout: 5 # waiting for 5 minutes at maximum
65
54
 
66
- # run Apex
55
+ Run Apex
67
56
  sf.apex.run file: 'path/to/file'
68
57
  sf.apex.run file: StringIO.new("System.debug('Hello World')")
69
- == \Object Model Support
70
- As of now, there is experimental support for object model in Salesforce.
71
- === Short examples
72
- ===== With sf command:
58
+ == Object Model Support (experimental)
59
+ With sf command:
73
60
  rows = sf.data.query "SELECT Id, Name FROM Contact WHERE Name = 'Akin Kristen'", model_class: Contact
74
61
  rows.first # <Contact: @Id="0035j00001RW3xbAAD", @Name="Akin Kristen">
75
62
  rows.first.Name # Akin Kristen
76
- ===== Doing the same thing with model independently
63
+ Doing the same thing independently:
77
64
  contact = Contact.select(:Id, :Name).where(Name: 'Akin Kristen').take
78
65
  contact.Name # Akin Kristen
79
- For more details, take a look at {the object model section}[link://files/rdoc/ObjectModel_rdoc.html]
@@ -0,0 +1,36 @@
1
+ require 'sf_cli'
2
+ require 'sf_cli/sf/model'
3
+ require 'sf_cli/sf/model/sf_command_connection'
4
+ require 'stringio'
5
+
6
+ module SfCli
7
+ module Console
8
+ module Commands
9
+ def use(_target_org)
10
+ target_org = _target_org.to_sym == :default ? nil : _target_org
11
+ org_info = sf.org.display target_org: target_org
12
+ conn = SfCli::Sf::Model::SfCommandConnection.new target_org: target_org, instance_url: org_info.instance_url
13
+ SfCli::Sf::Model.set_connection conn
14
+ end
15
+
16
+ def generate(*object_types)
17
+ SfCli::Sf::Model.generate object_types
18
+ end
19
+
20
+ def connection
21
+ SfCli::Sf::Model.connection
22
+ end
23
+
24
+ def target_org
25
+ connection.target_org
26
+ end
27
+
28
+ def apex(apex_code)
29
+ sf.apex.run target_org: target_org, file: StringIO.new(apex_code)
30
+ end
31
+
32
+ alias :gen :generate
33
+ alias :conn :connection
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,5 @@
1
+ require 'sf_cli/console/commands'
2
+
3
+ include SfCli::Console::Commands
4
+
5
+ use ARGV[0]
@@ -3,13 +3,12 @@ require_relative './run'
3
3
 
4
4
  module SfCli
5
5
  module Sf
6
+ # Apex Commands
7
+ #
8
+ # @see https://developer.salesforce.com/docs/atlas.en-us.sfdx_cli_reference.meta/sfdx_cli_reference/cli_reference_apex_commands_unified.htm command reference
9
+ #
6
10
  module Apex
7
- #
8
- # ==== description
9
- # The class representing *sf* *apex*.
10
- #
11
- # https://developer.salesforce.com/docs/atlas.en-us.sfdx_cli_reference.meta/sfdx_cli_reference/cli_reference_apex_commands_unified.htm
12
- #
11
+ # @private :nodoc: just for developers
13
12
  class Core
14
13
  include ::SfCli::Sf::Core::Base
15
14
  include Run
@@ -4,19 +4,25 @@ require 'stringio'
4
4
  module SfCli::Sf::Apex
5
5
  module Run
6
6
  #
7
- # run apex code and returns its result
7
+ # Run apex code and returns its result.
8
+ # If you don't specify the script file, it starts interactive mode.
9
+ # @see https://developer.salesforce.com/docs/atlas.en-us.sfdx_cli_reference.meta/sfdx_cli_reference/cli_reference_apex_commands_unified.htm#cli_reference_apex_run_unified CLI reference
8
10
  #
9
- # *target_org* --- an alias of paticular org, or username can be used<br>
11
+ # @param target_org [Symbol,String]
12
+ # an alias of paticular org, or username can be used.
10
13
  #
11
- # *file* --- (1) path to a local file that contains \Apex code. (2) StringIO object
14
+ # @param file [String,StringIO]
15
+ # (1) path to a local file that contains Apex code.
16
+ # (2) StringIO object
12
17
  #
13
- # == Examples
14
- # Execute apex code in a file
18
+ # @return [ApexResult] Apex execution result.
19
+ #
20
+ # @example Execute apex code in a file
15
21
  # result = sf.apex.run file: "path/to/apex"
16
22
  # result.success # true if the execution succeeds
17
23
  # result.logs # execution log
18
24
  #
19
- # StringIO is usable instead of file path
25
+ # @example StringIO is usable instead of file path
20
26
  # require 'stringio'
21
27
  #
22
28
  # pseudo_file = StringIO.new <<~EOS
@@ -26,9 +32,7 @@ module SfCli::Sf::Apex
26
32
  #
27
33
  # sf.apex.run target_org: :dev, file: pseudo_file
28
34
  #
29
- # == Interactive Mode
30
- #
31
- # If you don't specify *file* argument, it starts interactive mode that may be helpful in IRB environment.
35
+ # @example Interactive Mode
32
36
  # irb(main:) > sf.apex.run target_org: :dev
33
37
  #
34
38
  # Account acc = [SELECT Id, Name FROM Account LIMIT 1];
@@ -48,7 +52,6 @@ module SfCli::Sf::Apex
48
52
  # "Execute Anonymous: Account acc = [SELECT Id, Name FROM Account LIMIT 1];",
49
53
  # "Execute Anonymous: System.debug(acc.Name);",
50
54
  # ....]
51
- # For more command details, see {the command reference}[https://developer.salesforce.com/docs/atlas.en-us.sfdx_cli_reference.meta/sfdx_cli_reference/cli_reference_apex_commands_unified.htm#cli_reference_apex_run_unified]
52
55
  #
53
56
  def run(target_org: nil, file: nil)
54
57
  return run_interactive(target_org) if file.nil?
@@ -2,6 +2,7 @@ require 'json'
2
2
 
3
3
  module SfCli
4
4
  module Sf
5
+ # @private :nodoc: just for developers
5
6
  module Core
6
7
  module Base
7
8
  attr_reader :varbose
@@ -1,7 +1,6 @@
1
1
  module SfCli
2
2
  module Sf
3
3
  module Data
4
- #
5
4
  # Bulk Job information.
6
5
  #
7
6
  # You can check the job status using the following method:
@@ -9,11 +8,11 @@ module SfCli
9
8
  # - upload_completed?
10
9
  # - in_progress?
11
10
  # - completed?
12
- # ==== example:
11
+ # @example
13
12
  # result = sf.data.delete_resume job_id: jobinfo.id
14
13
  # puts 'yey!' if result.job_info.completed? # the job has completed
15
14
  #
16
- # For more details, see {the guide document}[https://developer.salesforce.com/docs/atlas.en-us.api_asynch.meta/api_asynch/bulk_api_2_job_states.htm]
15
+ # See Also: {https://developer.salesforce.com/docs/atlas.en-us.api_asynch.meta/api_asynch/bulk_api_2_job_states.htm the guide document}
17
16
  #
18
17
  JobInfo = Struct.new(
19
18
  :id,
@@ -13,13 +13,12 @@ require_relative './search'
13
13
 
14
14
  module SfCli
15
15
  module Sf
16
+ #
17
+ # Data Command
18
+ # @see https://developer.salesforce.com/docs/atlas.en-us.sfdx_cli_reference.meta/sfdx_cli_reference/cli_reference_data_commands_unified.htm command reference
19
+ #
16
20
  module Data
17
- #
18
- # ==== description
19
- # The class representing *sf* *data*
20
- #
21
- # https://developer.salesforce.com/docs/atlas.en-us.sfdx_cli_reference.meta/sfdx_cli_reference/cli_reference_data_commands_unified.htm
22
- #
21
+ # @private :nodoc: just for developers
23
22
  class Core
24
23
  include ::SfCli::Sf::Core::Base
25
24
  include Query
@@ -1,19 +1,17 @@
1
1
  module SfCli::Sf::Data
2
2
  module CreateRecord
3
3
  # create a object record.
4
+ # @see https://developer.salesforce.com/docs/atlas.en-us.sfdx_cli_reference.meta/sfdx_cli_reference/cli_reference_data_commands_unified.htm#cli_reference_data_create_record_unified command reference
5
+ # @param object_type [Symbol, String] object type(ex. Account)
6
+ # @param values [Hash] field values to be assigned
7
+ # @param target_org [Symbol, String] an alias of paticular org, or username can be used
4
8
  #
5
- # *object_type* --- \Object Type (ex. Account)<br>
9
+ # @return [String] record ID
6
10
  #
7
- # *values* --- field values to be assigned<br>
8
- #
9
- # *target_org* --- an alias of paticular org, or username can be used<br>
10
- #
11
- # ======
11
+ # @example
12
12
  # # create a TheCustomObject record with name and age
13
13
  # sf.data.create_record :TheCustomObject__c, values: {Name: "John Smith", Age: 33}
14
14
  #
15
- # For more command details, see {the command reference}[https://developer.salesforce.com/docs/atlas.en-us.sfdx_cli_reference.meta/sfdx_cli_reference/cli_reference_data_commands_unified.htm#cli_reference_data_create_record_unified]
16
- #
17
15
  def create_record(object_type, values: {}, target_org: nil)
18
16
  field_values = field_value_pairs(values)
19
17
  flags = {
@@ -2,17 +2,15 @@ require_relative './bulk_result_v2'
2
2
 
3
3
  module SfCli::Sf::Data
4
4
  module DeleteBulk
5
- # delete records using Bulk API 2.0
5
+ # Delete records using Bulk API 2.0
6
+ # @param file [String] path of a CSV file, which is written record IDs to delete
7
+ # @param sobject [Symbol, String] object type (ex. Account)
8
+ # @param timeout [Integer] max minutes to wait for the job complete the task.
9
+ # @param target_org [Symbol, String] an alias of paticular org, or username can be used
6
10
  #
7
- # *file* --- a CSV file, which is written record IDs to delete<br>
11
+ # @return [JobInfo, BulkResultV2] the job result, whose type is changed by situation
8
12
  #
9
- # *sobject* --- \Object Type (ex. Account)<br>
10
- #
11
- # *timeout* --- max minutes to wait for the job complete the task.<br>
12
- #
13
- # *target_org* --- an alias of paticular org, or username can be used<br>
14
- #
15
- # ======
13
+ # @example
16
14
  # # start a delete job
17
15
  # jobinfo = sf.data.delete_bulk sobject: :TestCustomObject__c, file: 'delete.csv' # this returns immediately
18
16
  # jobinfo.id # => "750J4000003g1OaIAI" it's job ID
@@ -23,7 +21,8 @@ module SfCli::Sf::Data
23
21
  # # Or, you can wait for the job completion with one try.
24
22
  # result = sf.data.delete_bulk sobject: :TestCustomObject__c, file: 'delete.csv', timeout: 5 # wait within 5 minutes
25
23
  #
26
- # For more command details, see {the command reference}[https://developer.salesforce.com/docs/atlas.en-us.sfdx_cli_reference.meta/sfdx_cli_reference/cli_reference_data_commands_unified.htm#cli_reference_data_delete_bulk_unified]
24
+ # @see https://developer.salesforce.com/docs/atlas.en-us.sfdx_cli_reference.meta/sfdx_cli_reference/cli_reference_data_commands_unified.htm#cli_reference_data_delete_bulk_unified command reference
25
+ #
27
26
  #
28
27
  def delete_bulk(file:, sobject:, timeout: nil, target_org: nil)
29
28
  flags = {
@@ -1,20 +1,19 @@
1
1
  module SfCli::Sf::Data
2
2
  module DeleteRecord
3
- # delete a object record.
3
+ # Delete a object record.
4
4
  #
5
- # *object_type* --- \Object Type (ex. Account)<br>
5
+ # @param object_type [Symbol, String] Object Type (ex. Account)
6
+ # @param record_id [String] Id of the object
7
+ # @param where [Hash] conditions to identify a record
8
+ # @param target_org [Symbol, String] an alias of paticular org, or username can be used
6
9
  #
7
- # *record_id* --- id of the object<br>
10
+ # @return [String] ID that is deleted.
8
11
  #
9
- # *where* --- hash object that is used to identify a record<br>
10
- #
11
- # *target_org* --- an alias of paticular org, or username can be used<br>
12
- #
13
- # ======
12
+ # @example
14
13
  # sf.data.delete_record :Hoge__c, record_id: 'xxxxxxx'
15
14
  # sf.data.delete_record :Hoge__c, where: {Name: 'Jonny B.Good', Country: 'USA'}
16
15
  #
17
- # For more command details, see {the command reference}[https://developer.salesforce.com/docs/atlas.en-us.sfdx_cli_reference.meta/sfdx_cli_reference/cli_reference_data_commands_unified.htm#cli_reference_data_delete_record_unified]
16
+ # @see https://developer.salesforce.com/docs/atlas.en-us.sfdx_cli_reference.meta/sfdx_cli_reference/cli_reference_data_commands_unified.htm#cli_reference_data_delete_record_unified the command reference
18
17
  #
19
18
  def delete_record(object_type, record_id: nil, where: nil, target_org: nil)
20
19
  where_conditions = field_value_pairs(where)
@@ -2,15 +2,15 @@ require_relative './bulk_result_v2'
2
2
 
3
3
  module SfCli::Sf::Data
4
4
  module DeleteResume
5
- # resume a bulk delete job you previously started with Bulk API 2.0 and return a bulk result object.
5
+ # Resume a bulk delete job you previously started with Bulk API 2.0 and return a bulk result object.
6
6
  #
7
- # *job_id* --- job ID you want to resume<br>
7
+ # @param job_id [String] job ID you want to resume<br>
8
+ # @param timeout [Integer] max minutes to wait for the job complete the task.<br>
9
+ # @param target_org [Symbol, String] an alias of paticular org, or username can be used<br>
8
10
  #
9
- # *timeout* --- max minutes to wait for the job complete the task.<br>
11
+ # @return [JobInfo, BulkResultV2] the job result, whose type is changed by situation
10
12
  #
11
- # *target_org* --- an alias of paticular org, or username can be used<br>
12
- #
13
- # ======
13
+ # @example
14
14
  # # start a delete job
15
15
  # jobinfo = sf.data.delete_bulk sobject: :TestCustomObject__c, file: 'delete.csv' # this returns immediately
16
16
  # jobinfo.id # => "750J4000003g1OaIAI" it's job ID
@@ -22,9 +22,7 @@ module SfCli::Sf::Data
22
22
  #
23
23
  # puts 'yey!' if result.job_info.completed? # the job has completed
24
24
  #
25
- # To know more about a job result, take a look at SfCli::Sf::Data module
26
- #
27
- # For more command details, see {the command reference}[https://developer.salesforce.com/docs/atlas.en-us.sfdx_cli_reference.meta/sfdx_cli_reference/cli_reference_data_commands_unified.htm#cli_reference_data_delete_resume_unified]
25
+ # @see https://developer.salesforce.com/docs/atlas.en-us.sfdx_cli_reference.meta/sfdx_cli_reference/cli_reference_data_commands_unified.htm#cli_reference_data_delete_resume_unified the command reference
28
26
  #
29
27
  def delete_resume(job_id:, timeout: nil, target_org: nil)
30
28
  flags = {
@@ -1,26 +1,24 @@
1
1
  module SfCli::Sf::Data
2
2
  module GetRecord
3
3
 
4
- # get a object record. (eqivalent to *sf* *data* *get* *record*)
4
+ # Get a object record.
5
+ # @param object_type [Symbol,String] object type(ex. Account)
6
+ # @param record_id [String] id of the object
7
+ # @param where [Hash] conditions to identify a record
8
+ # @param target_org [Symbol,String] an alias of paticular org, not default one
9
+ # @param model_class [Class] the object model class
5
10
  #
6
- # *object_type* --- \Object Type (ex. Account)<br>
11
+ # @return [Hash,Class] if proper model class is specified, the return value is the instance of the class. Otherwise, it's a Hash object.
7
12
  #
8
- # *record_id* --- id of the object<br>
9
- #
10
- # *where* --- hash object that is used to identify a record<br>
11
- #
12
- # *target_org* --- an alias of paticular org, not default one<br>
13
- #
14
- # *model_class* --- the object model class<br>
15
- #
16
- # ======
13
+ # @example
17
14
  # sf.data.get_record :Account, record_id: 'xxxxxxx'
18
15
  # sf.data.get_record :Account, where: {Name: 'Jonny B.Good', Country: 'USA'}
19
16
  #
20
17
  # CustomObject = Struct.new(:Id, :Name)
21
- # sf.data.get_record :TheCustomObject__c, record_id: 'xxxxx', model_class: CustomObject # returns a CustomObject instance
18
+ # obj = sf.data.get_record :TheCustomObject__c, record_id: 'xxxxx', model_class: CustomObject # returns a CustomObject instance
19
+ # obj.Name # Name field of the record
22
20
  #
23
- # For more command details, see {the command reference}[https://developer.salesforce.com/docs/atlas.en-us.sfdx_cli_reference.meta/sfdx_cli_reference/cli_reference_data_commands_unified.htm#cli_reference_data_get_record_unified]
21
+ # @see https://developer.salesforce.com/docs/atlas.en-us.sfdx_cli_reference.meta/sfdx_cli_reference/cli_reference_data_commands_unified.htm#cli_reference_data_get_record_unified command reference
24
22
  #
25
23
  def get_record(object_type, record_id: nil, where: nil, target_org: nil, model_class: nil)
26
24
  where_conditions = field_value_pairs(where)
@@ -1,6 +1,7 @@
1
1
  module SfCli
2
2
  module Sf
3
3
  module Data
4
+ # @private
4
5
  module HelperMethods
5
6
  def prepare_record(hash) # :doc:
6
7
  hash.delete 'attributes'
@@ -3,21 +3,17 @@ require_relative './query_helper'
3
3
 
4
4
  module SfCli::Sf::Data
5
5
  module Query
6
- # get object records using SOQL.
6
+ # Get object records using SOQL.
7
+ # @param soql [String] SOQL
8
+ # @param target_org [Symbol,String] an alias of paticular org, or username can be used
9
+ # @param format [Symbol,String] get the command's raw output. human, csv, json can be available
10
+ # @param model_class [Class] the object model class
11
+ # @param bulk [Boolean] use Bulk API
12
+ # @param timeout [Integer] max minutes to wait for the job complete in Bulk API mode
7
13
  #
8
- # *soql* --- SOQL<br>
14
+ # @return [Array,[String,Array]] records or a tuple containing a flag and records
9
15
  #
10
- # *target_org* --- an alias of paticular org, or username can be used<br>
11
- #
12
- # *format* --- get the command's raw output. human, csv, json can be available<br>
13
- #
14
- # *model_class* --- the object model class<br>
15
- #
16
- # *bulk* --- use Bulk API<br>
17
- #
18
- # *timeout* --- max minutes to wait for the job complete in Bulk API mode<br>
19
- #
20
- # ======
16
+ # @example
21
17
  # sf.data.query 'SELECT Id, Name FROM Account LIMIT 1' # => [{Id: "abc", Name: "account name"}]
22
18
  #
23
19
  # Account = Struct.new(:Id, :Name)
@@ -32,7 +28,7 @@ module SfCli::Sf::Data
32
28
  # When using Bulk API, you get the records when the query job completes within time limit.
33
29
  # The method returns a tapple(an array), which changes its contents according to the job result.
34
30
  #
35
- # ======
31
+ # @example
36
32
  # done, result = sf.data.query 'SELECT Id, Name FROM Account', bulk: true # max wait 1 min to get result (default)
37
33
  # done, result = sf.data.query 'SELECT Id, Name FROM Account', bulk: true, timeout: 5 # max wait 5 min to get result
38
34
  # done, result = sf.data.query 'SELECT Id, Name FROM Account', bulk: true, timeout: 0 # returns immediately
@@ -40,9 +36,7 @@ module SfCli::Sf::Data
40
36
  # rows = result if done # if job is completed, the result is an array of record
41
37
  # job_id = result unless done # if job hasn't completed or it has aborted, the result is the job ID
42
38
  #
43
- # For more command details, see {the command reference}[https://developer.salesforce.com/docs/atlas.en-us.sfdx_cli_reference.meta/sfdx_cli_reference/cli_reference_data_commands_unified.htm#cli_reference_data_query_unified]
44
- #
45
- # About querying with auto generated object model, see the section {"Object Model support"}[link://files/README_rdoc.html#label-Object+Model+support+-28experimental-2C+since+0.0.4-29] in README.
39
+ # @see https://developer.salesforce.com/docs/atlas.en-us.sfdx_cli_reference.meta/sfdx_cli_reference/cli_reference_data_commands_unified.htm#cli_reference_data_query_unified command reference
46
40
  #
47
41
  def query(soql, target_org: nil, format: nil, bulk: false, timeout: nil, model_class: nil)
48
42
  flags = {
@@ -62,17 +56,15 @@ module SfCli::Sf::Data
62
56
  return_result(result, raw_output, bulk, model_class)
63
57
  end
64
58
 
65
- # resume a bulk query job, which you previously started, and get records
66
- #
67
- # *job_id* --- job ID you want to resume<br>
68
- #
69
- # *target_org* --- an alias of paticular org, or username can be used<br>
59
+ # Resume a bulk query job, which you previously started, and get records
60
+ # @param job_id [String] job ID you want to resume
61
+ # @param target_org [Symbol,String] an alias of paticular org, or username can be used
62
+ # @param format [Symbol,String] get the command's raw output. human, csv, json can be available
63
+ # @param model_class [Class] the object model class
70
64
  #
71
- # *format* --- get the command's raw output. human, csv, json can be available<br>
65
+ # @return [Array,[String,Array]] records or a tuple containing a flag and records
72
66
  #
73
- # *model_class* --- the object model class<br>
74
- #
75
- # ======
67
+ # @example
76
68
  # # start a query job
77
69
  # result1 = sf.data.query 'SELECT Id, Name FROM Account', bulk: true, timeout: 0 # returns immediately
78
70
  #
@@ -86,7 +78,8 @@ module SfCli::Sf::Data
86
78
  #
87
79
  # result2 # => if done is true, this is an array of record. Otherwise it should be the Job ID.
88
80
  #
89
- # For more command details, see {the command reference}[https://developer.salesforce.com/docs/atlas.en-us.sfdx_cli_reference.meta/sfdx_cli_reference/cli_reference_data_commands_unified.htm#cli_reference_data_query_resume_unified]
81
+ # @see https://developer.salesforce.com/docs/atlas.en-us.sfdx_cli_reference.meta/sfdx_cli_reference/cli_reference_data_commands_unified.htm#cli_reference_data_query_resume_unified command reference
82
+ #
90
83
  def query_resume(job_id:, target_org: nil, format: nil, model_class: nil)
91
84
  flags = {
92
85
  :"bulk-query-id" => job_id,
@@ -2,6 +2,7 @@ require_relative './helper_methods'
2
2
 
3
3
  module SfCli::Sf::Data
4
4
  module Query
5
+ # @private
5
6
  class RegularResultAdjuster # :nodoc: all
6
7
  include ::SfCli::Sf::Data::HelperMethods
7
8
 
@@ -20,6 +21,7 @@ module SfCli::Sf::Data
20
21
  end
21
22
  end
22
23
 
24
+ # @private
23
25
  class BulkResultAdjuster # :nodoc: all
24
26
  include ::SfCli::Sf::Data::HelperMethods
25
27
 
@@ -42,6 +44,7 @@ module SfCli::Sf::Data
42
44
  end
43
45
  end
44
46
 
47
+ # @private
45
48
  class RawOutputResultAdjuster # :nodoc: all
46
49
  attr_reader :result
47
50
 
@@ -49,12 +49,12 @@ module SfCli::Sf::Data
49
49
  end
50
50
 
51
51
  # View the status of a bulk job.
52
+ # @param job_id [String] job ID you want to resume
53
+ # @param target_org [Symbol,String] an alias of paticular org, or username can be used
52
54
  #
53
- # *job_id* --- job ID you want to resume<br>
55
+ # @return [JobInfo] job information
54
56
  #
55
- # *target_org* --- an alias of paticular org, or username can be used<br>
56
- #
57
- # ======
57
+ # @example
58
58
  # # start a delete job
59
59
  # jobinfo = sf.data.delete_bulk sobject: :TestCustomObject__c, file: 'delete.csv' # this returns immediately
60
60
  # jobinfo.id # => "750J4000003g1OaIAI" it's job ID
@@ -69,9 +69,9 @@ module SfCli::Sf::Data
69
69
  # - in_progress?
70
70
  # - completed?
71
71
  #
72
- # To know job status more, take a look at {the bulk API developer guide}[https://developer.salesforce.com/docs/atlas.en-us.api_asynch.meta/api_asynch/bulk_api_2_job_states.htm]
72
+ # To know job status more, take a look at {https://developer.salesforce.com/docs/atlas.en-us.api_asynch.meta/api_asynch/bulk_api_2_job_states.htm the bulk API developer guide}
73
73
  #
74
- # For more command details, see {the command reference}[https://developer.salesforce.com/docs/atlas.en-us.sfdx_cli_reference.meta/sfdx_cli_reference/cli_reference_data_commands_unified.htm#cli_reference_data_resume_unified]
74
+ # @see https://developer.salesforce.com/docs/atlas.en-us.sfdx_cli_reference.meta/sfdx_cli_reference/cli_reference_data_commands_unified.htm#cli_reference_data_resume_unified command reference
75
75
  #
76
76
  def resume(job_id:, target_org: nil)
77
77
  flags = {
@@ -1,16 +1,15 @@
1
1
  module SfCli::Sf::Data
2
2
  module Search
3
- # search objects using SOSL.
3
+ # Search objects using SOSL.
4
+ # @param sosl [String] SOSL
5
+ # @param target_org [Symbol,String] an alias of paticular org, or username can be used
6
+ # @param format [Symbol,String] get the command's raw output. human, csv, json can be available.
4
7
  #
5
- # *sosl* --- SOSL<br>
6
- #
7
- # *target_org* --- an alias of paticular org, or username can be used<br>
8
- #
9
- # *format* --- get the command's raw output. human, csv, json can be available. *NOTE*: if you choose csv, csv files are downloaded in current directory<br>
10
- #
11
- # ======
12
- # # example (in irb):
8
+ # @return [Hash] the search result
9
+ # @note if you choose csv as format, csv files are downloaded in current directory
13
10
  #
11
+ # @example
12
+ # (in irb):
14
13
  # > sf.data.search "FIND {TIM OR YOUNG OR OIL} IN Name Fields"
15
14
  # =>
16
15
  # {"Lead"=>["00Q5j00000WgEuDEAV"],
@@ -24,7 +23,7 @@ module SfCli::Sf::Data
24
23
  # "0065j00001XHJLJAA5"],
25
24
  # "User"=>["0055j00000CcL2bAAF", "0055j00000CcL1YAAV"]}
26
25
  #
27
- # For more command details, see {the command reference}[https://developer.salesforce.com/docs/atlas.en-us.sfdx_cli_reference.meta/sfdx_cli_reference/cli_reference_data_commands_unified.htm#cli_reference_data_search_unified]
26
+ # @see https://developer.salesforce.com/docs/atlas.en-us.sfdx_cli_reference.meta/sfdx_cli_reference/cli_reference_data_commands_unified.htm#cli_reference_data_search_unified command reference
28
27
  #
29
28
  def search(sosl, target_org: nil, format: nil)
30
29
  flags = {