alet 0.1.1 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/alet/app.rb +27 -22
- data/lib/alet/config/locales/en.yml +264 -18
- data/lib/alet/config/locales/ja.yml +264 -15
- data/lib/alet/config.rb +4 -10
- data/lib/alet/irb/command/conn.rb +25 -0
- data/lib/alet/irb/command/deploy.rb +73 -0
- data/lib/alet/irb/command/describe.rb +131 -0
- data/lib/alet/irb/command/export.rb +2 -2
- data/lib/alet/irb/command/gen/apex.rb +36 -0
- data/lib/alet/irb/command/gen/lwc.rb +99 -0
- data/lib/alet/irb/command/gen.rb +58 -0
- data/lib/alet/irb/command/generate_model.rb +26 -4
- data/lib/alet/irb/command/grep.rb +38 -0
- data/lib/alet/irb/command/org.rb +11 -0
- data/lib/alet/irb/command/query.rb +3 -3
- data/lib/alet/irb/helper_methods.rb +4 -21
- data/lib/alet/irb/shared_functions.rb +56 -0
- data/lib/alet/irb.rb +38 -19
- data/lib/alet/project.rb +44 -0
- data/lib/alet/version.rb +1 -1
- data/lib/alet.rb +23 -0
- metadata +33 -9
- data/lib/alet/generate/project.rb +0 -22
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 132887d88cce23c1ca1eef8d0d7da205f334d814259e22bfdb88481342050fba
|
4
|
+
data.tar.gz: 628305b1623058660782f647ddad310969844f9450cd5d3dc719927868931784
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8e1f2220dee8fa6982806f026b7080572e9807fa75a52a778cc5d8133f2a5a57d2760f8c4d1d5d92f234a717e4f7c6dfe419123664133cbdd255ecdf8faf65d4
|
7
|
+
data.tar.gz: 3cd1d82e9d7f81850ee4d53eb03243f6e51ecab3d63c7b9b2c28daa8b6c26e563a0b2cbdb997f592cb2696b4ab68e08520a08d90930a3b28397e30853e462781
|
data/lib/alet/app.rb
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
require 'gli'
|
2
2
|
require 'irb'
|
3
|
-
require 'alet
|
3
|
+
require 'alet'
|
4
4
|
require 'alet/utils/irb'
|
5
|
-
require 'alet/
|
5
|
+
require 'alet/project'
|
6
6
|
require 'alet/version'
|
7
7
|
require 'i18n'
|
8
8
|
|
@@ -29,11 +29,9 @@ module Alet
|
|
29
29
|
desc t('cli.target_org')
|
30
30
|
flag [:o, 'target-org'], default_value: nil, arg_name: 'org'
|
31
31
|
|
32
|
-
|
33
32
|
desc t('cli.irb.desc')
|
34
33
|
command :irb do |c|
|
35
34
|
c.desc desc t('cli.target_org')
|
36
|
-
c.flag [:o, 'target-org'], default_value: nil, arg_name: 'org'
|
37
35
|
|
38
36
|
c.example "alet", desc: t('cli.irb.example.default')
|
39
37
|
c.example "alet -o org", desc: t('cli.irb.example.target_org')
|
@@ -44,32 +42,39 @@ module Alet
|
|
44
42
|
end
|
45
43
|
end
|
46
44
|
|
47
|
-
desc t('cli.
|
48
|
-
command [:
|
49
|
-
|
50
|
-
|
51
|
-
c.command :project do |prj|
|
52
|
-
prj.desc t('cli.generate.project.target_org')
|
53
|
-
prj.flag [:o, 'target-org'], default_value: nil, arg_name: 'org'
|
45
|
+
desc t('cli.project.desc')
|
46
|
+
command [:project, :p] do |prj|
|
47
|
+
prj.desc desc t('cli.project.generate.desc')
|
48
|
+
prj.arg_name 'project_name'
|
54
49
|
|
55
|
-
|
56
|
-
|
50
|
+
prj.desc t('cli.project.open_editor')
|
51
|
+
prj.switch [:e, 'editor-open'], negatable: false
|
57
52
|
|
58
|
-
|
59
|
-
|
53
|
+
prj.command [:generate, :g] do |gen|
|
54
|
+
gen.desc t('cli.project.generate.manifest')
|
55
|
+
gen.switch [:m, :manifest], negatable: false
|
60
56
|
|
61
|
-
|
62
|
-
|
57
|
+
gen.desc t('cli.project.generate.retrieve')
|
58
|
+
gen.switch [:r, 'retrieve'], negatable: false
|
63
59
|
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
60
|
+
gen.example "alet generate project MyProject", desc: t('cli.project.generate.example.default')
|
61
|
+
gen.example "alet generate project MyProject -m", desc: t('cli.project.generate.example.manifest')
|
62
|
+
gen.example "alet -o org generate project MyProject -m", desc: t('cli.project.generate.example.from_org')
|
63
|
+
gen.example "alet -o org generate project MyProject -mr", desc:t('cli.project.generate.example.retrieve')
|
68
64
|
|
69
|
-
|
65
|
+
gen.action do |global_options, _options, args|
|
66
|
+
options = global_options.merge _options
|
70
67
|
Alet::Project.generate(args.first, **options)
|
71
68
|
end
|
72
69
|
end
|
70
|
+
|
71
|
+
prj.desc desc t('cli.project.update.desc')
|
72
|
+
prj.command [:update, :u] do |update|
|
73
|
+
update.action do |global_options, _options, args|
|
74
|
+
options = global_options.merge _options
|
75
|
+
Alet::Project.update(args.first, **options)
|
76
|
+
end
|
77
|
+
end
|
73
78
|
end
|
74
79
|
|
75
80
|
default_command :irb
|
@@ -3,45 +3,52 @@ en:
|
|
3
3
|
desc: A Ruby-styled Salesforce console utility
|
4
4
|
target_org: Username or alias of the target org
|
5
5
|
irb:
|
6
|
-
desc:
|
6
|
+
desc: Start irb session(if there is no subcommand specified, irb gets default)
|
7
7
|
example:
|
8
|
-
default:
|
9
|
-
target_org:
|
10
|
-
|
11
|
-
desc:
|
12
|
-
project
|
13
|
-
|
8
|
+
default: Start irb session
|
9
|
+
target_org: Start irb session with specifying target org
|
10
|
+
project:
|
11
|
+
desc: Create/Update a Salesforce DX project
|
12
|
+
open_editor: Open editor(vs code) to edit the project
|
13
|
+
generate:
|
14
|
+
desc: Generate a salesforce DX project
|
14
15
|
target_org: Username or alias of the target org, which the manifest and source files are generated based on
|
15
16
|
manifest: Generate a manifest (package.xml)
|
16
17
|
retrieve: Retrieve source files from org
|
17
|
-
open_editor: open editor(vs code) to edit the project
|
18
18
|
example:
|
19
19
|
default: create a Salesfore DX project
|
20
20
|
manifest: create a Salesfore DX project with manifest file (package.xml)
|
21
21
|
from_org: The manifest file is built based on org
|
22
22
|
retrieve: The manifest file and medadata source files are built based on org. This option is only available with -o option.
|
23
|
-
|
24
|
-
|
23
|
+
update:
|
24
|
+
desc: Update a salesforce DX project based on current org
|
25
25
|
apex:
|
26
26
|
description: Execute Apex code
|
27
|
-
|
28
|
-
description: Generate sObject classes
|
27
|
+
model:
|
28
|
+
description: List/Generate sObject classes
|
29
|
+
list:
|
30
|
+
noclass: No class is generated in this session
|
31
|
+
title: 【Generated Classes】
|
29
32
|
help: |
|
30
33
|
## Name
|
31
|
-
|
34
|
+
model
|
32
35
|
|
33
36
|
## SYNOPSIS
|
34
|
-
|
37
|
+
model [list|load sObjectType...]
|
35
38
|
|
36
39
|
## DESCRIPTION
|
37
|
-
|
40
|
+
1. show sobject model classes that has been generated already.
|
41
|
+
2. generate classes that represent sobjects.
|
38
42
|
|
39
43
|
## ARGUMENTS
|
40
|
-
**
|
44
|
+
**list** list model classes that has been generated already.
|
45
|
+
**load sObjectType...** generate sObject classes
|
41
46
|
|
42
47
|
## EXAMPLES
|
43
48
|
```shell
|
44
|
-
|
49
|
+
model # shows sobject model classes that has been generated already.
|
50
|
+
model list # same as above
|
51
|
+
model load Account Contact User # load Account, Contact and User sobject classes
|
45
52
|
query:
|
46
53
|
description: Query by SOQL
|
47
54
|
help: |
|
@@ -76,7 +83,8 @@ en:
|
|
76
83
|
## ARGUMENTS
|
77
84
|
**command** - shell command
|
78
85
|
|
79
|
-
If no command is specified, it starts interactive mode.
|
86
|
+
If no command is specified, it starts interactive mode.
|
87
|
+
To escape interactive mode, press CTRL-D (CTR-Z for Windows)
|
80
88
|
|
81
89
|
## EXAMPLE
|
82
90
|
```shell
|
@@ -101,3 +109,241 @@ en:
|
|
101
109
|
```shell
|
102
110
|
export SELECT Id, Name FROM Account
|
103
111
|
```
|
112
|
+
org:
|
113
|
+
description: Current connection with Salesforce
|
114
|
+
help: |
|
115
|
+
## NAME
|
116
|
+
org
|
117
|
+
|
118
|
+
## SYNOPSIS
|
119
|
+
org
|
120
|
+
|
121
|
+
## DESCRIPTION
|
122
|
+
show current connection settings
|
123
|
+
grep:
|
124
|
+
description: find sObject
|
125
|
+
help: |
|
126
|
+
## NAME
|
127
|
+
grep
|
128
|
+
|
129
|
+
## SYNOPSIS
|
130
|
+
grep [-ln] regexp
|
131
|
+
|
132
|
+
## DESCRIPTION
|
133
|
+
find sobject by name or label
|
134
|
+
|
135
|
+
## ARGUMENTS
|
136
|
+
**regexp** regular expression that indicates name or label
|
137
|
+
|
138
|
+
## OPTIONS
|
139
|
+
**-l, [---label]** find by only label
|
140
|
+
**-n, [---api-name]** find by only api name
|
141
|
+
|
142
|
+
## EXAMPLE
|
143
|
+
```shell
|
144
|
+
grep Account
|
145
|
+
grep -n Account*
|
146
|
+
```
|
147
|
+
desc:
|
148
|
+
description: show object summary
|
149
|
+
table:
|
150
|
+
field: Fields
|
151
|
+
relation: Relations
|
152
|
+
record_type: RecordType
|
153
|
+
column:
|
154
|
+
label: label
|
155
|
+
name: name
|
156
|
+
type: type
|
157
|
+
relation_name: relation name
|
158
|
+
relation_type: relation type
|
159
|
+
relation_class: class name
|
160
|
+
relation_field: field name
|
161
|
+
record_type_name: name
|
162
|
+
record_type_id: id
|
163
|
+
record_type_developer_name: developer name
|
164
|
+
relation_type:
|
165
|
+
parent: child-parent
|
166
|
+
child: parent-child
|
167
|
+
error:
|
168
|
+
notfound: Not Found
|
169
|
+
help: |
|
170
|
+
## NAME
|
171
|
+
desc
|
172
|
+
|
173
|
+
## SYNOPSIS
|
174
|
+
desc [-rta] object-name
|
175
|
+
|
176
|
+
## DESCRIPTION
|
177
|
+
show an object summary
|
178
|
+
|
179
|
+
## ARGUMENTS
|
180
|
+
**object-name** object name
|
181
|
+
|
182
|
+
## OPTIONS
|
183
|
+
**-r, [---relation]** show relationships
|
184
|
+
**-t, [---record-type]** show record types
|
185
|
+
**-a, [---all])** show all summary
|
186
|
+
|
187
|
+
if there is no options only field summary is shown.
|
188
|
+
|
189
|
+
## EXAMPLE
|
190
|
+
```shell
|
191
|
+
desc Account # show Account's field summary
|
192
|
+
desc -r Account # show Account's relationships
|
193
|
+
```
|
194
|
+
conn:
|
195
|
+
description: connection settings
|
196
|
+
invalid_subcommand: invalid subcommand
|
197
|
+
help: |
|
198
|
+
## NAME
|
199
|
+
conn
|
200
|
+
|
201
|
+
## SYNOPSIS
|
202
|
+
conn [reset]
|
203
|
+
|
204
|
+
## DESCRIPTION
|
205
|
+
Show current connection settings when no subcommand is specified. Or reset the connection when "reset" subcommand is executed.
|
206
|
+
gen:
|
207
|
+
description: generate Salesforce DX project resources
|
208
|
+
error:
|
209
|
+
no_subcommand: subcommand isn't specified
|
210
|
+
invalid_subcommand: invalid subcommand
|
211
|
+
file_duplicated: the same component already exists
|
212
|
+
help: |
|
213
|
+
## NAME
|
214
|
+
gen
|
215
|
+
|
216
|
+
## SYNOPSIS
|
217
|
+
`gen sub-command ...`
|
218
|
+
|
219
|
+
## DESCRIPTION
|
220
|
+
generate resources in your local Salesforce DX project
|
221
|
+
|
222
|
+
## ARGUMENTS
|
223
|
+
you must specify a subcommand and its arguments.
|
224
|
+
**apex** generate an Apex class or Apex trigger in local project
|
225
|
+
**lwc** generate an lwc in local project
|
226
|
+
|
227
|
+
### apex subcommand:
|
228
|
+
|
229
|
+
#### SYNOPSIS
|
230
|
+
`gen apex [-t|-e event1,event2,...|-o object-name] name`
|
231
|
+
|
232
|
+
#### DESCRIPTION
|
233
|
+
generate an Apex class or Apex trigger in local project.
|
234
|
+
|
235
|
+
#### ARGUMENTS
|
236
|
+
`name` the name of the Apex class or Apex trigger
|
237
|
+
|
238
|
+
#### OPTIONS
|
239
|
+
`-t`, `--trigger` generate a trigger
|
240
|
+
`-o`, `--sobject` sobject that the trigger works
|
241
|
+
`-e`, `--event` events that the trigger works.Available values are: bi, ai, bu, au, bd, ad and aud.If there are multiple values they must join with camma like "bi,bu" (no space).
|
242
|
+
|
243
|
+
##### available values of event
|
244
|
+
|
245
|
+
|value|meaning|
|
246
|
+
|bi|before insert|
|
247
|
+
|ai|after insert|
|
248
|
+
|bu|before update|
|
249
|
+
|au|after update|
|
250
|
+
|bd|before delete|
|
251
|
+
|ad|after delete|
|
252
|
+
|aud|after undelete|
|
253
|
+
|
254
|
+
## EXAMPLE
|
255
|
+
```shell
|
256
|
+
gen apex MyClass1
|
257
|
+
gen apex MyTrigger --trigger
|
258
|
+
gen apex -t MyTrigger -o Account
|
259
|
+
gen apex -t MyTrigger -o Account --event bi,au # generate trigger named MyTrigger that works when before insert and after update on Account object
|
260
|
+
```
|
261
|
+
|
262
|
+
### lwc subcommand
|
263
|
+
|
264
|
+
#### SYNOPSIS
|
265
|
+
`gen lwc [-l label|-d description|-e|-t target1,target2,...|-o object1,object2,...] name`
|
266
|
+
|
267
|
+
#### DESCRIPTION
|
268
|
+
generate LWC(Lightning Web Component) files in local project.
|
269
|
+
|
270
|
+
#### ARGUMENTS
|
271
|
+
`name` component name of LWC
|
272
|
+
|
273
|
+
#### OPTIONS
|
274
|
+
`-l`, `--label` specify `masterLabel` section in the xml configulation file.
|
275
|
+
`-d`, `--description` specify `description` section in the xml configulation file.
|
276
|
+
`-e`, `--exposed` specify `isExposed` section in the xml configulation file. Default is false
|
277
|
+
`-t`, `--target` specify `target` section in the xml configulation file.If there are multiple values they must join with camma.
|
278
|
+
`-o`, `--object` specify `object` section in the xml configulation file. this options is only available when `target` includes **record**.If there are multiple values they must join with camma.
|
279
|
+
|
280
|
+
##### available values of target
|
281
|
+
|
282
|
+
|value |meaning |
|
283
|
+
|app |lightning__AppPage |
|
284
|
+
|flow |lightning__FlowScreen |
|
285
|
+
|home |lightning__HomePage |
|
286
|
+
|action|lightning__RecordAction|
|
287
|
+
|record|lightning__RecordPage |
|
288
|
+
|tab |lightning__Tab |
|
289
|
+
|bar |lightning__UtilityBar |
|
290
|
+
|
291
|
+
#### EXAMPLE
|
292
|
+
```shell
|
293
|
+
gen lwc LWC1
|
294
|
+
gen lwc LWC1 -l "my first LWC"
|
295
|
+
gen lwc LWC1 -d "this is my first LWC"
|
296
|
+
gen lwc LWC1 -t app,home,record
|
297
|
+
gen lwc LWC1 -o Account -t record
|
298
|
+
```
|
299
|
+
|
300
|
+
#### SEE ALSO
|
301
|
+
[XML Configuration File Elements](https://developer.salesforce.com/docs/platform/lwc/guide/reference-configuration-tags.html)
|
302
|
+
deploy:
|
303
|
+
description: deploy project's resources
|
304
|
+
error:
|
305
|
+
no_arguments: no arguments
|
306
|
+
help: |
|
307
|
+
## NAME
|
308
|
+
deploy
|
309
|
+
|
310
|
+
## SYNOPSIS
|
311
|
+
`deploy [-d|-t test1,test2...|-l test-level] component-type component-name...`
|
312
|
+
|
313
|
+
## DESCRIPTION
|
314
|
+
deploy(upload) local project's files to the Salesforce org
|
315
|
+
|
316
|
+
## ARGUMENTS
|
317
|
+
`component-type` `file` or metadata type name. for metadata type, some shortcut names are available.
|
318
|
+
`component-name` name of the component. if `component-type` is `file` this must be a file path or directory path. If `component-type` is metadata type the name can include wildcard(*)
|
319
|
+
|
320
|
+
### shortcut name of metadata type
|
321
|
+
|
322
|
+
|shortcut name|metadata type|
|
323
|
+
|apex|ApexClass|
|
324
|
+
|trigger|ApexTrigger|
|
325
|
+
|lwc|LightningComponentBundle|
|
326
|
+
|
327
|
+
you can check all metadata types by sf command (`sf org list metadata-type`)
|
328
|
+
|
329
|
+
## OPTIONS
|
330
|
+
`-d`, `--dryrun` Validate deploy and run Apex tests but don’t save to the org.
|
331
|
+
`-l`, `--test-level` deployment Apex testing level
|
332
|
+
`-t`, `--tests` Apex tests to run when --test-level is RunSpecifiedTests. when multiple tests are specified, join them with comma (no space).
|
333
|
+
`-m`, `--manifest` deploy files according to manifest file. When this options is specified `component-name` is ignored.
|
334
|
+
|
335
|
+
### available test-level value
|
336
|
+
|
337
|
+
|value|meaning|
|
338
|
+
|RunSpecifiedTests|Runs only the tests that you specify with the --tests flag|
|
339
|
+
|RunLocalTests|All tests in your org are run, except the ones that originate from installed managed and unlocked packages|
|
340
|
+
|RunLocalTests|All tests in your org are run, including tests of managed packages.|
|
341
|
+
|
342
|
+
## EXAMPLE
|
343
|
+
```shell
|
344
|
+
deploy apex MyClass1
|
345
|
+
deploy lwc myLWC
|
346
|
+
deploy apex MyClass --test-level RunSpecifiedTests --tests test1,test2
|
347
|
+
deploy file -m manifest/package.xml
|
348
|
+
deploy file force-app/main/default/class/MyClass1.cls
|
349
|
+
```
|