alet 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/bin/alet +4 -0
- data/lib/alet/app.rb +77 -0
- data/lib/alet/config/locales/en.yml +103 -0
- data/lib/alet/config/locales/ja.yml +104 -0
- data/lib/alet/config.rb +31 -0
- data/lib/alet/generate/project.rb +22 -0
- data/lib/alet/irb/command/export.rb +24 -0
- data/lib/alet/irb/command/generate_model.rb +10 -0
- data/lib/alet/irb/command/query.rb +21 -0
- data/lib/alet/irb/command/sh.rb +18 -0
- data/lib/alet/irb/helper_methods.rb +45 -0
- data/lib/alet/irb.rb +48 -0
- data/lib/alet/utils/irb.rb +19 -0
- data/lib/alet/version.rb +3 -0
- metadata +157 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: dd98bfc5b916cdb44ed82a989ff245b3d9beb2d1a718b041daa04aec1c80d702
|
4
|
+
data.tar.gz: 63022319f768a23d3b8a263510e76ed9e757d5108141a8fd0998fc1c50c8b52b
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: eddff301a4933e57d9f319131926936fc7de7f6aef2cba066bc136d7233a43b34a49978ba8ef24729ccda52f0cdef96b954e8e381a3c17ae1e6c2639789d88d2
|
7
|
+
data.tar.gz: b931f8e9185e58c9ea0a4dd6285af06ec2fb0c2f3e2ab24eaf1d080438dcadbb15540d42eab82bea764fdee7fb5966dff751f4b9567485f4558e6b7eef79062e
|
data/bin/alet
ADDED
data/lib/alet/app.rb
ADDED
@@ -0,0 +1,77 @@
|
|
1
|
+
require 'gli'
|
2
|
+
require 'irb'
|
3
|
+
require 'alet/config'
|
4
|
+
require 'alet/utils/irb'
|
5
|
+
require 'alet/generate/project'
|
6
|
+
require 'alet/version'
|
7
|
+
require 'i18n'
|
8
|
+
|
9
|
+
#
|
10
|
+
# i18n settings
|
11
|
+
#
|
12
|
+
I18n.load_path += Alet.config.i18n.load_path
|
13
|
+
I18n.default_locale = :en
|
14
|
+
I18n.locale = /jp|JP|ja|ja_JP/.match?(ENV['LANG']) ? :ja : :en
|
15
|
+
|
16
|
+
def t(indicator)
|
17
|
+
I18n.t(indicator)
|
18
|
+
end
|
19
|
+
|
20
|
+
module Alet
|
21
|
+
class App
|
22
|
+
extend GLI::App
|
23
|
+
|
24
|
+
using IRBUtils
|
25
|
+
|
26
|
+
program_desc t('cli.desc')
|
27
|
+
version Alet::VERSION
|
28
|
+
|
29
|
+
desc t('cli.target_org')
|
30
|
+
flag [:o, 'target-org'], default_value: nil, arg_name: 'org'
|
31
|
+
|
32
|
+
|
33
|
+
desc t('cli.irb.desc')
|
34
|
+
command :irb do |c|
|
35
|
+
c.desc desc t('cli.target_org')
|
36
|
+
c.flag [:o, 'target-org'], default_value: nil, arg_name: 'org'
|
37
|
+
|
38
|
+
c.example "alet", desc: t('cli.irb.example.default')
|
39
|
+
c.example "alet -o org", desc: t('cli.irb.example.target_org')
|
40
|
+
|
41
|
+
c.action do |global_options, options, args|
|
42
|
+
Alet.config.cli_options[:"target-org"] = global_options['target-org'] || options['target-org']
|
43
|
+
IRB.start(__FILE__, ['-r', 'alet/irb', '--noscript', global_options['target-org']])
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
desc t('cli.generate.desc')
|
48
|
+
command [:generate, :g] do |c|
|
49
|
+
c.desc desc t('cli.generate.project.desc')
|
50
|
+
c.arg_name 'project_name'
|
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'
|
54
|
+
|
55
|
+
prj.desc t('cli.generate.project.manifest')
|
56
|
+
prj.switch [:m, :manifest], negatable: false
|
57
|
+
|
58
|
+
prj.desc t('cli.generate.project.open_editor')
|
59
|
+
prj.switch [:e, 'editor-open'], negatable: false
|
60
|
+
|
61
|
+
prj.desc t('cli.generate.project.retrieve')
|
62
|
+
prj.switch [:r, 'retrieve'], negatable: false
|
63
|
+
|
64
|
+
prj.example "alet generate project MyProject", desc: t('cli.generate.project.example.default')
|
65
|
+
prj.example "alet generate project MyProject -m", desc: t('cli.generate.project.example.manifest')
|
66
|
+
prj.example "alet generate project MyProject -m -o org", desc: t('cli.generate.project.example.from_org')
|
67
|
+
prj.example "alet generate project MyProject -mr -o org", desc:t('cli.generate.project.example.retrieve')
|
68
|
+
|
69
|
+
prj.action do |_, options, args|
|
70
|
+
Alet::Project.generate(args.first, **options)
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
default_command :irb
|
76
|
+
end
|
77
|
+
end
|
@@ -0,0 +1,103 @@
|
|
1
|
+
en:
|
2
|
+
cli:
|
3
|
+
desc: A Ruby-styled Salesforce console utility
|
4
|
+
target_org: Username or alias of the target org
|
5
|
+
irb:
|
6
|
+
desc: start irb session(if there is no subcommand specified, irb gets default)
|
7
|
+
example:
|
8
|
+
default: start irb session
|
9
|
+
target_org: start irb session with specifying target org
|
10
|
+
generate:
|
11
|
+
desc: generate resources that are related to Salesforce DX project
|
12
|
+
project:
|
13
|
+
desc: generate salesforce DX project
|
14
|
+
target_org: Username or alias of the target org, which the manifest and source files are generated based on
|
15
|
+
manifest: Generate a manifest (package.xml)
|
16
|
+
retrieve: Retrieve source files from org
|
17
|
+
open_editor: open editor(vs code) to edit the project
|
18
|
+
example:
|
19
|
+
default: create a Salesfore DX project
|
20
|
+
manifest: create a Salesfore DX project with manifest file (package.xml)
|
21
|
+
from_org: The manifest file is built based on org
|
22
|
+
retrieve: The manifest file and medadata source files are built based on org. This option is only available with -o option.
|
23
|
+
connection:
|
24
|
+
description: Current connection with Salesforce
|
25
|
+
apex:
|
26
|
+
description: Execute Apex code
|
27
|
+
gen:
|
28
|
+
description: Generate sObject classes
|
29
|
+
help: |
|
30
|
+
## Name
|
31
|
+
gen
|
32
|
+
|
33
|
+
## SYNOPSIS
|
34
|
+
gene sObjectType...
|
35
|
+
|
36
|
+
## DESCRIPTION
|
37
|
+
generate sObject classes
|
38
|
+
|
39
|
+
## ARGUMENTS
|
40
|
+
**sObjectType** sObject type
|
41
|
+
|
42
|
+
## EXAMPLES
|
43
|
+
```shell
|
44
|
+
gen Account Contact User
|
45
|
+
query:
|
46
|
+
description: Query by SOQL
|
47
|
+
help: |
|
48
|
+
## NAME
|
49
|
+
query
|
50
|
+
|
51
|
+
## SYNOPSIS
|
52
|
+
query SOQL
|
53
|
+
|
54
|
+
## DESCRIPTION
|
55
|
+
query by SOQL
|
56
|
+
|
57
|
+
## ARGUMENTS
|
58
|
+
**SOQL** - a SOQL query (SELECT statement)
|
59
|
+
|
60
|
+
## EXAMPLE
|
61
|
+
```shell
|
62
|
+
query SELECT Id, Name FROM Account Name LIKE '%hoge%'
|
63
|
+
```
|
64
|
+
sh:
|
65
|
+
description: Excute shell command
|
66
|
+
help: |
|
67
|
+
## NAME
|
68
|
+
sh
|
69
|
+
|
70
|
+
## SYNOPSIS
|
71
|
+
sh [command]
|
72
|
+
|
73
|
+
## DESCRIPTION
|
74
|
+
excute shell command
|
75
|
+
|
76
|
+
## ARGUMENTS
|
77
|
+
**command** - shell command
|
78
|
+
|
79
|
+
If no command is specified, it starts interactive mode. To escape interactive mode, press CTRL-D
|
80
|
+
|
81
|
+
## EXAMPLE
|
82
|
+
```shell
|
83
|
+
sh ls -aF
|
84
|
+
```
|
85
|
+
export:
|
86
|
+
description: Export sObject records
|
87
|
+
help: |
|
88
|
+
## NAME
|
89
|
+
export
|
90
|
+
|
91
|
+
## SYNOPSIS
|
92
|
+
export SOQL
|
93
|
+
|
94
|
+
## DESCRIPTION
|
95
|
+
export sObject records. If it succeeds, a csv file is created.
|
96
|
+
|
97
|
+
## ARGUMENTS
|
98
|
+
**SOQL** SOQL(SELECT statement)
|
99
|
+
|
100
|
+
## EXAMPLE
|
101
|
+
```shell
|
102
|
+
export SELECT Id, Name FROM Account
|
103
|
+
```
|
@@ -0,0 +1,104 @@
|
|
1
|
+
ja:
|
2
|
+
cli:
|
3
|
+
desc: RubyスタイルのSalesforceコンソールユーティリティ
|
4
|
+
target_org: ユーザー名またはSF組織の別名
|
5
|
+
irb:
|
6
|
+
desc: irbセッションを開始
|
7
|
+
example:
|
8
|
+
default: irbセッションを開始.
|
9
|
+
target_org: SF組織の別名またはログインユーザー名を指定してirbを起動
|
10
|
+
generate:
|
11
|
+
desc: Salesforce DXプロジェクトに関連した資材を生成する
|
12
|
+
project:
|
13
|
+
desc: salesforce DX projectを生成する
|
14
|
+
target_org: マニフェストファイルとソースファイルの読み込み先となるSF組織の別名またはその組織のユーザー名
|
15
|
+
manifest: マニフェストファイル(package.xml)を生成する
|
16
|
+
retrieve: マニフェストファイルの内容を元にSF組織からソースファイルを取得する
|
17
|
+
open_editor: プロジェクト構築完了後、そのプロジェクトをカレントディレクトとしてvs codeを起動する
|
18
|
+
example:
|
19
|
+
default: a Salesfore DXプロジェクトのディレクトリを作成する
|
20
|
+
manifest: プロジェクトディレクトリにマニフェストファイル(package.xml)を含める
|
21
|
+
from_org: 接続組織のメタデータ情報を元にマニフェストファイルの内容を書き込む.
|
22
|
+
retrieve: メタデータのソースファイルをDXプロジェクト内に生成する
|
23
|
+
connection:
|
24
|
+
description: 現在のSalesforce組織との接続情報
|
25
|
+
apex:
|
26
|
+
description: Apexコードを実行する
|
27
|
+
gen:
|
28
|
+
description: 1つ以上のsObjectクラスを生成する
|
29
|
+
help: |
|
30
|
+
## Name
|
31
|
+
gen
|
32
|
+
|
33
|
+
## SYNOPSIS
|
34
|
+
gen sObjectType...
|
35
|
+
|
36
|
+
## DESCRIPTION
|
37
|
+
1つ以上のsObjectクラスを生成する
|
38
|
+
|
39
|
+
## ARGUMENTS
|
40
|
+
**sObjectType** sObjectの型名
|
41
|
+
|
42
|
+
## EXAMPLES
|
43
|
+
```shell
|
44
|
+
gen Account Contact User
|
45
|
+
```
|
46
|
+
query:
|
47
|
+
description: SOQLを使ってレコードを検索する
|
48
|
+
help: |
|
49
|
+
## NAME
|
50
|
+
query
|
51
|
+
|
52
|
+
## SYNOPSIS
|
53
|
+
query SOQL
|
54
|
+
|
55
|
+
## DESCRIPTION
|
56
|
+
SOQLを使ってレコードを検索する
|
57
|
+
|
58
|
+
## ARGUMENTS
|
59
|
+
**SOQL** - SOQL(SELECT 構文)
|
60
|
+
|
61
|
+
## EXAMPLE
|
62
|
+
```shell
|
63
|
+
query SELECT Id, Name FROM Account Name LIKE '%hoge%'
|
64
|
+
```
|
65
|
+
sh:
|
66
|
+
description: シェルコマンドを実行する
|
67
|
+
help: |
|
68
|
+
## NAME
|
69
|
+
sh
|
70
|
+
|
71
|
+
## SYNOPSIS
|
72
|
+
sh [command]
|
73
|
+
|
74
|
+
## DESCRIPTION
|
75
|
+
シェルコマンドを実行する
|
76
|
+
|
77
|
+
## ARGUMENTS
|
78
|
+
**command** - 実行するコマンドライン
|
79
|
+
|
80
|
+
コマンドを指定せずにEnterを押すとインタラクティブモードに移行する。インタラクティブモードから抜けるにはCTR-Dを押す
|
81
|
+
|
82
|
+
## EXAMPLE
|
83
|
+
```shell
|
84
|
+
sh ls -aF
|
85
|
+
```
|
86
|
+
export:
|
87
|
+
description: レコードをエクスポートする
|
88
|
+
help: |
|
89
|
+
## NAME
|
90
|
+
export
|
91
|
+
|
92
|
+
## SYNOPSIS
|
93
|
+
export SOQL
|
94
|
+
|
95
|
+
## DESCRIPTION
|
96
|
+
レコードをエクスポートする.正常に終了するとカレントディレクトリにCSVファイルが生成される.
|
97
|
+
|
98
|
+
## ARGUMENTS
|
99
|
+
**SOQL** SOQL(SELECT構文)
|
100
|
+
|
101
|
+
## EXAMPLE
|
102
|
+
```shell
|
103
|
+
export SELECT Id, Name FROM Account
|
104
|
+
```
|
data/lib/alet/config.rb
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
module Alet
|
2
|
+
def self.config
|
3
|
+
@config ||= Config.new
|
4
|
+
end
|
5
|
+
|
6
|
+
class Config
|
7
|
+
def connection
|
8
|
+
@connection
|
9
|
+
end
|
10
|
+
alias conn connection
|
11
|
+
|
12
|
+
def connection=(conn)
|
13
|
+
@connection = conn
|
14
|
+
end
|
15
|
+
alias conn= connection=
|
16
|
+
|
17
|
+
def cli_options
|
18
|
+
@cli_options ||= {}
|
19
|
+
end
|
20
|
+
|
21
|
+
def i18n
|
22
|
+
@i18n ||= I18nConfig.new
|
23
|
+
end
|
24
|
+
|
25
|
+
class I18nConfig
|
26
|
+
def load_path
|
27
|
+
Dir[File.expand_path("../config/locales", __FILE__) + "/*.yml"]
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'sf_cli'
|
2
|
+
|
3
|
+
module Alet
|
4
|
+
module Project
|
5
|
+
def self.generate(project_name, params)
|
6
|
+
base_dir = Dir.pwd
|
7
|
+
target_org = params[:"target-org"]
|
8
|
+
retrieve_source = params[:retrieve]
|
9
|
+
editor = params[:"editor-open"]
|
10
|
+
|
11
|
+
sf.project.generate project_name, manifest: true
|
12
|
+
|
13
|
+
Dir.chdir project_name
|
14
|
+
|
15
|
+
sf.project.generate_manifest from_org: target_org, output_dir: 'manifest' if target_org
|
16
|
+
sf.project.retrieve_start manifest: 'manifest/package.xml', target_org: target_org if retrieve_source
|
17
|
+
system 'code .' if editor
|
18
|
+
ensure
|
19
|
+
Dir.chdir base_dir
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
class Export < IRB::Command::Base
|
2
|
+
category "Alet"
|
3
|
+
description t('export.description')
|
4
|
+
help_message TTY::Markdown.parse t('export.help')
|
5
|
+
|
6
|
+
def execute(arg)
|
7
|
+
soql =
|
8
|
+
if /\ASELECT/.match?(arg.strip.upcase)
|
9
|
+
arg
|
10
|
+
else
|
11
|
+
object = eval(arg)
|
12
|
+
object.to_soql if object&.instance_of? Yamori::QueryMethods::QueryCondition
|
13
|
+
end
|
14
|
+
|
15
|
+
return if soql.nil?
|
16
|
+
|
17
|
+
csv = sf.data.query(soql, format: :csv, target_org: ::Alet.config.connection.alias)
|
18
|
+
|
19
|
+
filename = "#{Time.now.strftime('%Y%m%d%H%M%S')}_export.csv"
|
20
|
+
File.open(filename, 'w'){|f| f.write(csv) }
|
21
|
+
|
22
|
+
puts filename
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
class GenerateModel < IRB::Command::Base
|
2
|
+
category "Alet"
|
3
|
+
description t('gen.description')
|
4
|
+
help_message TTY::Markdown.parse t('gen.help')
|
5
|
+
|
6
|
+
def execute(arg)
|
7
|
+
object_types = arg.split(' ').map{|s| s.tr(' ', '')}
|
8
|
+
Yamori.generate(*object_types)
|
9
|
+
end
|
10
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'yamori/query_condition'
|
2
|
+
|
3
|
+
class Query < IRB::Command::Base
|
4
|
+
category "Alet"
|
5
|
+
description t('query.description')
|
6
|
+
help_message TTY::Markdown.parse t('query.help')
|
7
|
+
|
8
|
+
def execute(arg)
|
9
|
+
soql =
|
10
|
+
if /\ASELECT/.match?(arg.strip.upcase)
|
11
|
+
arg
|
12
|
+
else
|
13
|
+
object = eval(arg)
|
14
|
+
object.to_soql if object&.instance_of? Yamori::QueryMethods::QueryCondition
|
15
|
+
end
|
16
|
+
|
17
|
+
return if soql.nil?
|
18
|
+
|
19
|
+
puts sf.data.query(soql, format: :human, target_org: ::Alet.config.connection.alias)
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
class Shell < IRB::Command::Base
|
2
|
+
category "Alet"
|
3
|
+
description t('sh.description')
|
4
|
+
help_message TTY::Markdown.parse t('sh.help')
|
5
|
+
|
6
|
+
def execute(arg)
|
7
|
+
::IRB.conf[:INSPECT_MODE] = false
|
8
|
+
return puts `#{arg}` if arg.size > 0
|
9
|
+
|
10
|
+
s = $stdin.gets
|
11
|
+
while s
|
12
|
+
puts `#{s}`
|
13
|
+
s = $stdin.gets
|
14
|
+
end
|
15
|
+
ensure
|
16
|
+
::IRB.conf[:INSPECT_MODE] = true
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
require 'irb/helper_method/base'
|
2
|
+
|
3
|
+
class CurrentConnection < IRB::HelperMethod::Base
|
4
|
+
description t('connection.description')
|
5
|
+
|
6
|
+
def execute
|
7
|
+
info = Alet.config.connection
|
8
|
+
table =
|
9
|
+
TTY::Table.new(rows: [
|
10
|
+
[:id, info.id],
|
11
|
+
[:alias, info.alias],
|
12
|
+
[:user_name, info.user_name],
|
13
|
+
[:status, info.status],
|
14
|
+
[:instance_url, info.instance_url],
|
15
|
+
[:api_version, info.api_version],
|
16
|
+
[:access_token, info.access_token]
|
17
|
+
])
|
18
|
+
puts table.render :unicode
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
class Apex < IRB::HelperMethod::Base
|
23
|
+
description t('apex.description')
|
24
|
+
|
25
|
+
def execute(apex_code = nil, verbose: false)
|
26
|
+
result =
|
27
|
+
if apex_code
|
28
|
+
sf.apex.run target_org: Alet.config.conn.alias, file: StringIO.new(apex_code)
|
29
|
+
else
|
30
|
+
sf.apex.run target_org: Alet.config.conn.alias
|
31
|
+
end
|
32
|
+
|
33
|
+
IRB.conf[:INSPECT_MODE] = false
|
34
|
+
if verbose
|
35
|
+
result.logs.each{|line| puts line }
|
36
|
+
else
|
37
|
+
pastel = Pastel.new
|
38
|
+
result.logs.select{|line| line.include? "USER_DEBUG"}.each do |line|
|
39
|
+
match_result = /USER_DEBUG\|.+DEBUG\|(.+)\Z/.match(line)
|
40
|
+
puts pastel.cyan(match_result[1])
|
41
|
+
end
|
42
|
+
end
|
43
|
+
IRB.conf[:INSPECT_MODE] = true
|
44
|
+
end
|
45
|
+
end
|
data/lib/alet/irb.rb
ADDED
@@ -0,0 +1,48 @@
|
|
1
|
+
require 'sf_cli'
|
2
|
+
require 'yamori'
|
3
|
+
require 'alet/config'
|
4
|
+
require 'irb/command/base'
|
5
|
+
require 'tty-markdown'
|
6
|
+
require 'tty-table'
|
7
|
+
require 'pastel'
|
8
|
+
require 'i18n'
|
9
|
+
|
10
|
+
I18n.locale = IRB.conf[:LC_MESSAGES].lang.to_sym
|
11
|
+
|
12
|
+
#
|
13
|
+
# load commands
|
14
|
+
#
|
15
|
+
require_relative 'irb/command/generate_model'
|
16
|
+
require_relative 'irb/command/query'
|
17
|
+
require_relative 'irb/command/sh'
|
18
|
+
require_relative 'irb/command/export'
|
19
|
+
|
20
|
+
IRB::Command.register :gen, GenerateModel
|
21
|
+
IRB::Command.register :query, Query
|
22
|
+
IRB::Command.register :export, Export
|
23
|
+
IRB::Command.register :sh, Shell
|
24
|
+
|
25
|
+
#
|
26
|
+
# load helper methods
|
27
|
+
#
|
28
|
+
require_relative 'irb/helper_methods'
|
29
|
+
|
30
|
+
IRB::HelperMethod.register(:conn, CurrentConnection)
|
31
|
+
IRB::HelperMethod.register(:apex, Apex)
|
32
|
+
|
33
|
+
|
34
|
+
#
|
35
|
+
# set connection
|
36
|
+
#
|
37
|
+
conn = sf.org.display target_org: Alet.config.cli_options[:"target-org"]
|
38
|
+
|
39
|
+
Alet.config.connection = conn
|
40
|
+
|
41
|
+
sf.org.login_web target_org: conn.alias, instance_url: conn.instance_url unless conn.connected?
|
42
|
+
|
43
|
+
Yamori.connect(
|
44
|
+
:rest,
|
45
|
+
instance_url: conn.instance_url,
|
46
|
+
access_token: conn.access_token,
|
47
|
+
api_version: conn.api_version
|
48
|
+
)
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module IRBUtils
|
2
|
+
refine IRB do
|
3
|
+
def IRB.start(ap_path, argv)
|
4
|
+
STDOUT.sync = true
|
5
|
+
$0 = File::basename(ap_path, ".rb") if ap_path
|
6
|
+
|
7
|
+
setup(ap_path, argv: argv)
|
8
|
+
|
9
|
+
@CONF[:USE_COLORIZE] = false
|
10
|
+
|
11
|
+
if @CONF[:SCRIPT]
|
12
|
+
irb = ::IRB::Irb.new(nil, @CONF[:SCRIPT])
|
13
|
+
else
|
14
|
+
irb = ::IRB::Irb.new
|
15
|
+
end
|
16
|
+
irb.run(@CONF)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
data/lib/alet/version.rb
ADDED
metadata
ADDED
@@ -0,0 +1,157 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: alet
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Takanobu Maekawa
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2024-10-26 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: gli
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 2.21.5
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 2.21.5
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: sf_cli
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.2'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.2'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: yamori
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0.1'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0.1'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: tty-markdown
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 0.7.2
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 0.7.2
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: tty-table
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 0.12.0
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 0.12.0
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: pastel
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 0.8.0
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: 0.8.0
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: i18n
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 1.14.6
|
104
|
+
type: :runtime
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 1.14.6
|
111
|
+
description: Salesforce console utility for Ruby users
|
112
|
+
email:
|
113
|
+
executables:
|
114
|
+
- alet
|
115
|
+
extensions: []
|
116
|
+
extra_rdoc_files: []
|
117
|
+
files:
|
118
|
+
- bin/alet
|
119
|
+
- lib/alet/app.rb
|
120
|
+
- lib/alet/config.rb
|
121
|
+
- lib/alet/config/locales/en.yml
|
122
|
+
- lib/alet/config/locales/ja.yml
|
123
|
+
- lib/alet/generate/project.rb
|
124
|
+
- lib/alet/irb.rb
|
125
|
+
- lib/alet/irb/command/export.rb
|
126
|
+
- lib/alet/irb/command/generate_model.rb
|
127
|
+
- lib/alet/irb/command/query.rb
|
128
|
+
- lib/alet/irb/command/sh.rb
|
129
|
+
- lib/alet/irb/helper_methods.rb
|
130
|
+
- lib/alet/utils/irb.rb
|
131
|
+
- lib/alet/version.rb
|
132
|
+
homepage: https://github.com/tmkw/alet
|
133
|
+
licenses:
|
134
|
+
- BSD-2-Clause
|
135
|
+
metadata:
|
136
|
+
homepage_uri: https://github.com/tmkw/alet
|
137
|
+
post_install_message:
|
138
|
+
rdoc_options: []
|
139
|
+
require_paths:
|
140
|
+
- lib
|
141
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - ">="
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: 3.3.3
|
146
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
147
|
+
requirements:
|
148
|
+
- - ">="
|
149
|
+
- !ruby/object:Gem::Version
|
150
|
+
version: '0'
|
151
|
+
requirements:
|
152
|
+
- 'Salesforce CLI ( >= 2.56.7): https://developer.salesforce.com/tools/salesforcecli'
|
153
|
+
rubygems_version: 3.5.11
|
154
|
+
signing_key:
|
155
|
+
specification_version: 4
|
156
|
+
summary: A Ruby-styled Salesforce console utility
|
157
|
+
test_files: []
|