sf_cli 1.0.0.beta3 → 1.0.0.beta4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f7bbf9d5241f6fcaadbcd5777b5396d1d25f52488d61559a5f674dde6e1fc0a2
4
- data.tar.gz: 275ce4a1ed1e10c4f96e38bdb48e3258dd5e21c440269e552951377b7d76fd1f
3
+ metadata.gz: a2cc80df9cc280f3fa0eda5ec72a2972ac5f036d3e9e407030668d984eab92c4
4
+ data.tar.gz: d8cd2eb983c18f81825d8bc83fa7cdee78b6c9c725970873d40ed42b52dd0ce4
5
5
  SHA512:
6
- metadata.gz: f8db2418276d2a496aa2dc3d594eebc8444b217af660a3f5ce4f5741edd4e00d13530f526ec64c771ba405d4ad4844592845679510872f98e2437f48f8249ad4
7
- data.tar.gz: e6b77f34683b31776332c719ef313693108e4f9243acc2c2dfd7acf1264e55c60b583a95c10e3be6c2d2cfeffc516cc8eba58755b2df62404db6d49f086b4d34
6
+ metadata.gz: 06153a22706b868d9100f7f2f4f980c3847ee73d793f6649574ebaecf4c68f1bf21245217c432382669448a9f23bf6867772fe5853f1795dcafaa4f28a1428a5
7
+ data.tar.gz: 929bca993b4acf6c6a52d07ebe8adcbaa77dfa4b691ce72049e6a71d00e32a1bd79ee7c6211fe083d8d669959166bf3c82f68e7fa9f72eea7548165f7752e37a
@@ -8,27 +8,31 @@ module SfCli
8
8
  module Console
9
9
  #
10
10
  # Developer Console commands
11
- # @example
12
- # $ bundle exec rake irb[your_target_org]
13
- # irb(main):001> gen :Account, :Contact # generate Account and Contact class
14
- # => [:Account, :Contact]
15
- #
16
- # irb(main):002> Account.describe.label
17
- # => "Account"
18
- #
19
- # irb(main):003> apex "System.debug('abc');" # execute Apex code
20
- # => returns the result
21
11
  #
22
12
  module Commands
23
13
  def use(_target_org)
24
14
  target_org = _target_org.to_sym == :default ? nil : _target_org
25
15
  org_info = sf.org.display target_org: target_org
16
+ raise "The connection is not ready. Please check by `sf org list`" unless org_info.connected?
17
+
26
18
  conn = SfCli::Sf::Model::SfCommandConnection.new target_org: target_org, instance_url: org_info.instance_url
27
19
  SfCli::Sf::Model.set_connection conn
20
+
21
+ available_models.each do |model|
22
+ Object.const_get(model).connection = conn
23
+ end
24
+
25
+ true
26
+ end
27
+
28
+ def available_models
29
+ @available_models ||= []
28
30
  end
29
31
 
30
32
  def generate(*object_types)
31
33
  SfCli::Sf::Model.generate object_types
34
+ available_models.append(*object_types).flatten
35
+ object_types
32
36
  end
33
37
 
34
38
  def connection
@@ -45,8 +49,63 @@ module SfCli
45
49
  sf.apex.run target_org: target_org, file: StringIO.new(apex_code)
46
50
  end
47
51
 
52
+ def query(soql)
53
+ conf.inspect_mode = false
54
+ puts sf.data.query(soql, format: :human, target_org: target_org)
55
+ conf.inspect_mode = true
56
+ end
57
+
48
58
  alias :gen :generate
49
59
  alias :conn :connection
60
+
61
+ def help(command = nil)
62
+ conf.inspect_mode = false
63
+ puts <<~HELP
64
+ Available commands:
65
+ use --- set current org
66
+ gen --- generate Object model classes
67
+ query --- Query by SOQL with human readable format
68
+ apex --- run Apex code
69
+ conn --- show current connection setting
70
+
71
+ Syntax:
72
+ [use]
73
+ use target-org
74
+
75
+ parameters:
76
+ targat-org --- Username or alias of the org you are going to use.
77
+
78
+ [gen]
79
+ gen object-name, object-name, ...
80
+ generate object-name, object-name, ...
81
+
82
+ parameters:
83
+ object-name --- Comma separated Names. Symbol or String can be OK. At least 1 object name is required.
84
+
85
+ example:
86
+ gen :Account, :Contact, :User
87
+
88
+ [query]
89
+ query SOQL
90
+
91
+ parameters:
92
+ SOQL --- soql
93
+
94
+ [apex]
95
+ apex apex_code
96
+
97
+ parameters:
98
+ apex code --- Apex code you want to execute
99
+
100
+ example:
101
+ apex "System.debug('abc');"
102
+
103
+ [conn]
104
+ conn
105
+ connection
106
+ HELP
107
+ conf.inspect_mode = true
108
+ end
50
109
  end
51
110
  end
52
111
  end
@@ -1,6 +1,10 @@
1
1
  module SfCli::Sf::Org
2
2
  module Display
3
- ConnectionInfo = Struct.new(:id, :access_token, :alias, :instance_url, :user_name, :api_version, :status)
3
+ ConnectionInfo = Struct.new(:id, :access_token, :alias, :instance_url, :user_name, :api_version, :status) do
4
+ def connected?
5
+ status == 'Connected'
6
+ end
7
+ end
4
8
 
5
9
  #
6
10
  # Returns the org's connection information
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sf_cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.beta3
4
+ version: 1.0.0.beta4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Takanobu Maekawa