gorails 0.1.0 → 0.1.1
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.
- checksums.yaml +4 -4
- data/Gemfile +3 -1
- data/Gemfile.lock +65 -0
- data/exe/gorails +17 -0
- data/gorails.gemspec +4 -3
- data/lib/gorails/commands/episodes.rb +25 -0
- data/lib/gorails/commands/example.rb +19 -0
- data/lib/gorails/commands/help.rb +21 -0
- data/lib/gorails/commands/jobs.rb +25 -0
- data/lib/gorails/commands/jumpstart.rb +29 -0
- data/lib/gorails/commands/railsbytes.rb +26 -0
- data/lib/gorails/commands.rb +22 -0
- data/lib/gorails/entry_point.rb +10 -0
- data/lib/gorails/version.rb +1 -1
- data/lib/gorails.rb +31 -1
- metadata +58 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7405b120eabf5b2ace5c2e122ab57b456567e1c985471f45582ad538e5a48345
|
4
|
+
data.tar.gz: a08c99241ad71f5dcd87af57867c9e6644dd8bf02fed5a5a9909941f9870f673
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 624969edaed32a320bfeec953e44e291dc1620b83f15fed11d5a45dd9d31362be1b6a4679198c55e8c2ea6b3fc52243c71dcdad51172a1fa89d65e45909405eb
|
7
|
+
data.tar.gz: 5d31c6e7e0be210a8b6f4bf81f62f7dd0f8e1899233cfaac86376b2d2d0dd3f6c72576100faaa5176253d13507b63080b6ee26f1d0d28d518677f848b50d5652
|
data/Gemfile
CHANGED
data/Gemfile.lock
ADDED
@@ -0,0 +1,65 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
gorails (0.1.1)
|
5
|
+
cli-kit (~> 4.0.0)
|
6
|
+
cli-ui (~> 1.5.1)
|
7
|
+
|
8
|
+
GEM
|
9
|
+
remote: https://rubygems.org/
|
10
|
+
specs:
|
11
|
+
ansi (1.5.0)
|
12
|
+
ast (2.4.2)
|
13
|
+
builder (3.2.4)
|
14
|
+
cli-kit (4.0.0)
|
15
|
+
cli-ui (>= 1.1.4)
|
16
|
+
cli-ui (1.5.1)
|
17
|
+
metaclass (0.0.4)
|
18
|
+
minitest (5.15.0)
|
19
|
+
minitest-reporters (1.5.0)
|
20
|
+
ansi
|
21
|
+
builder
|
22
|
+
minitest (>= 5.0)
|
23
|
+
ruby-progressbar
|
24
|
+
mocha (1.5.0)
|
25
|
+
metaclass (~> 0.0.1)
|
26
|
+
parallel (1.21.0)
|
27
|
+
parser (3.1.1.0)
|
28
|
+
ast (~> 2.4.1)
|
29
|
+
rainbow (3.1.1)
|
30
|
+
rake (13.0.6)
|
31
|
+
regexp_parser (2.2.1)
|
32
|
+
rexml (3.2.5)
|
33
|
+
rubocop (1.25.1)
|
34
|
+
parallel (~> 1.10)
|
35
|
+
parser (>= 3.1.0.0)
|
36
|
+
rainbow (>= 2.2.2, < 4.0)
|
37
|
+
regexp_parser (>= 1.8, < 3.0)
|
38
|
+
rexml
|
39
|
+
rubocop-ast (>= 1.15.1, < 2.0)
|
40
|
+
ruby-progressbar (~> 1.7)
|
41
|
+
unicode-display_width (>= 1.4.0, < 3.0)
|
42
|
+
rubocop-ast (1.16.0)
|
43
|
+
parser (>= 3.1.1.0)
|
44
|
+
rubocop-performance (1.13.3)
|
45
|
+
rubocop (>= 1.7.0, < 2.0)
|
46
|
+
rubocop-ast (>= 0.4.0)
|
47
|
+
ruby-progressbar (1.11.0)
|
48
|
+
standard (1.7.3)
|
49
|
+
rubocop (= 1.25.1)
|
50
|
+
rubocop-performance (= 1.13.3)
|
51
|
+
unicode-display_width (2.1.0)
|
52
|
+
|
53
|
+
PLATFORMS
|
54
|
+
arm64-darwin-21
|
55
|
+
|
56
|
+
DEPENDENCIES
|
57
|
+
gorails!
|
58
|
+
minitest (>= 5.0.0)
|
59
|
+
minitest-reporters
|
60
|
+
mocha (~> 1.5.0)
|
61
|
+
rake (~> 13.0)
|
62
|
+
standard
|
63
|
+
|
64
|
+
BUNDLED WITH
|
65
|
+
2.3.8
|
data/exe/gorails
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
Encoding.default_external = Encoding::UTF_8
|
4
|
+
Encoding.default_internal = Encoding::UTF_8
|
5
|
+
|
6
|
+
unshift_path = ->(path) {
|
7
|
+
p = File.expand_path("../../#{path}", __FILE__)
|
8
|
+
$LOAD_PATH.unshift(p) unless $LOAD_PATH.include?(p)
|
9
|
+
}
|
10
|
+
unshift_path.call("lib")
|
11
|
+
|
12
|
+
require "bundler/setup"
|
13
|
+
require "gorails"
|
14
|
+
|
15
|
+
exit(Gorails::ErrorHandler.call do
|
16
|
+
Gorails::EntryPoint.call(ARGV.dup)
|
17
|
+
end)
|
data/gorails.gemspec
CHANGED
@@ -16,7 +16,7 @@ Gem::Specification.new do |spec|
|
|
16
16
|
|
17
17
|
spec.metadata["homepage_uri"] = spec.homepage
|
18
18
|
spec.metadata["source_code_uri"] = spec.homepage
|
19
|
-
#spec.metadata["changelog_uri"] = "TODO: Put your gem's CHANGELOG.md URL here."
|
19
|
+
# spec.metadata["changelog_uri"] = "TODO: Put your gem's CHANGELOG.md URL here."
|
20
20
|
|
21
21
|
# Specify which files should be added to the gem when it is released.
|
22
22
|
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
@@ -29,8 +29,9 @@ Gem::Specification.new do |spec|
|
|
29
29
|
spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
|
30
30
|
spec.require_paths = ["lib"]
|
31
31
|
|
32
|
-
|
33
|
-
|
32
|
+
spec.add_dependency "cli-kit", "~> 4.0.0"
|
33
|
+
spec.add_dependency "cli-ui", "~> 1.5.1"
|
34
|
+
spec.add_development_dependency "standard"
|
34
35
|
|
35
36
|
# For more information and examples about making a new gem, checkout our
|
36
37
|
# guide at: https://bundler.io/guides/creating_gem.html
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require "gorails"
|
2
|
+
require "net/http"
|
3
|
+
require "json"
|
4
|
+
|
5
|
+
module Gorails
|
6
|
+
module Commands
|
7
|
+
class Episodes < Gorails::Command
|
8
|
+
def call(_args, _name)
|
9
|
+
episodes = JSON.parse Net::HTTP.get(URI("https://gorails.com/episodes.json"))
|
10
|
+
|
11
|
+
CLI::UI::Frame.open("Latest GoRails episodes") do
|
12
|
+
episodes.each do |episode|
|
13
|
+
puts CLI::UI.fmt "##{episode["number"]} {{green:#{episode["name"]}}}"
|
14
|
+
puts episode["url"]
|
15
|
+
puts
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.help
|
21
|
+
"View the latest GoRails episodes.\nUsage: {{command:#{Gorails::TOOL_NAME} episodes}}"
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require "gorails"
|
2
|
+
|
3
|
+
module Gorails
|
4
|
+
module Commands
|
5
|
+
class Example < Gorails::Command
|
6
|
+
def call(_args, _name)
|
7
|
+
puts "neato"
|
8
|
+
|
9
|
+
if rand < 0.05
|
10
|
+
raise(CLI::Kit::Abort, "you got unlucky!")
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.help
|
15
|
+
"A dummy command.\nUsage: {{command:#{Gorails::TOOL_NAME} example}}"
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require "gorails"
|
2
|
+
|
3
|
+
module Gorails
|
4
|
+
module Commands
|
5
|
+
class Help < Gorails::Command
|
6
|
+
def call(args, _name)
|
7
|
+
puts CLI::UI.fmt("{{bold:Available commands}}")
|
8
|
+
puts ""
|
9
|
+
|
10
|
+
Gorails::Commands::Registry.resolved_commands.each do |name, klass|
|
11
|
+
next if name == "help"
|
12
|
+
puts CLI::UI.fmt("{{command:#{Gorails::TOOL_NAME} #{name}}}")
|
13
|
+
if (help = klass.help)
|
14
|
+
puts CLI::UI.fmt(help)
|
15
|
+
end
|
16
|
+
puts ""
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require "gorails"
|
2
|
+
require "net/http"
|
3
|
+
require "json"
|
4
|
+
|
5
|
+
module Gorails
|
6
|
+
module Commands
|
7
|
+
class Jobs < Gorails::Command
|
8
|
+
def call(_args, _name)
|
9
|
+
jobs = JSON.parse Net::HTTP.get(URI("https://jobs.gorails.com/jobs.json"))
|
10
|
+
|
11
|
+
CLI::UI::Frame.open("Ruby on Rails jobs") do
|
12
|
+
jobs.each do |job|
|
13
|
+
puts CLI::UI.fmt "{{green:#{job["title"]}}} at {{blue:#{job.dig("company", "name")}}}"
|
14
|
+
puts job["url"]
|
15
|
+
puts
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.help
|
21
|
+
"View the latest Ruby on Rails jobs.\nUsage: {{command:#{Gorails::TOOL_NAME} jobs}}"
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require "gorails"
|
2
|
+
require "net/http"
|
3
|
+
require "json"
|
4
|
+
|
5
|
+
module Gorails
|
6
|
+
module Commands
|
7
|
+
class Jumpstart < Gorails::Command
|
8
|
+
def call(args, _name)
|
9
|
+
name = args.first
|
10
|
+
|
11
|
+
if name.nil?
|
12
|
+
puts CLI::UI.fmt "{{red:Application name is required.}}"
|
13
|
+
puts "Try again with \"gorails jumpstart myapp\""
|
14
|
+
exit 1
|
15
|
+
end
|
16
|
+
|
17
|
+
CLI::UI::Frame.open("Generating Jumpstart application \"#{name}\"") do
|
18
|
+
Bundler.with_original_env do
|
19
|
+
system "rails new #{name} -d postgresql -m https://raw.githubusercontent.com/excid3/jumpstart/master/template.rb"
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.help
|
25
|
+
"Create a new Ruby on Rails application with the Jumpstart template. https://github.com/excid3/jumpstart\nUsage: {{command:#{Gorails::TOOL_NAME} jumpstart myapp}}"
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require "gorails"
|
2
|
+
require "net/http"
|
3
|
+
require "json"
|
4
|
+
|
5
|
+
module Gorails
|
6
|
+
module Commands
|
7
|
+
class Railsbytes < Gorails::Command
|
8
|
+
def call(_args, _name)
|
9
|
+
bytes = JSON.parse Net::HTTP.get(URI("https://railsbytes.com/public/templates.json"))
|
10
|
+
|
11
|
+
CLI::UI::Frame.open("Railsbytes") do
|
12
|
+
bytes.each do |byte|
|
13
|
+
puts CLI::UI.fmt "{{green:#{byte["name"]}}} by #{byte["created_by"]}"
|
14
|
+
puts byte["short_description"]
|
15
|
+
puts "#{byte["id"]} - #{byte["url"]}"
|
16
|
+
puts
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def self.help
|
22
|
+
"View the latest Railsbytes templates.\nUsage: {{command:#{Gorails::TOOL_NAME} railsbytes}}"
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require "gorails"
|
2
|
+
|
3
|
+
module Gorails
|
4
|
+
module Commands
|
5
|
+
Registry = CLI::Kit::CommandRegistry.new(
|
6
|
+
default: "help",
|
7
|
+
contextual_resolver: nil
|
8
|
+
)
|
9
|
+
|
10
|
+
def self.register(const, cmd, path)
|
11
|
+
autoload(const, path)
|
12
|
+
Registry.add(-> { const_get(const) }, cmd)
|
13
|
+
end
|
14
|
+
|
15
|
+
register :Episodes, "episodes", "gorails/commands/episodes"
|
16
|
+
register :Jobs, "jobs", "gorails/commands/jobs"
|
17
|
+
register :Jumpstart, "jumpstart", "gorails/commands/jumpstart"
|
18
|
+
register :Railsbytes, "railsbytes", "gorails/commands/railsbytes"
|
19
|
+
# register :Example, 'example', 'gorails/commands/example'
|
20
|
+
register :Help, "help", "gorails/commands/help"
|
21
|
+
end
|
22
|
+
end
|
data/lib/gorails/version.rb
CHANGED
data/lib/gorails.rb
CHANGED
@@ -1,8 +1,38 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require_relative "gorails/version"
|
4
|
+
require "cli/ui"
|
5
|
+
require "cli/kit"
|
6
|
+
|
7
|
+
CLI::UI::StdoutRouter.enable
|
4
8
|
|
5
9
|
module Gorails
|
6
10
|
class Error < StandardError; end
|
7
|
-
|
11
|
+
|
12
|
+
extend CLI::Kit::Autocall
|
13
|
+
|
14
|
+
TOOL_NAME = "gorails"
|
15
|
+
ROOT = File.expand_path("../..", __FILE__)
|
16
|
+
LOG_FILE = "/tmp/myproject.log"
|
17
|
+
|
18
|
+
autoload(:EntryPoint, "gorails/entry_point")
|
19
|
+
autoload(:Commands, "gorails/commands")
|
20
|
+
|
21
|
+
autocall(:Config) { CLI::Kit::Config.new(tool_name: TOOL_NAME) }
|
22
|
+
autocall(:Command) { CLI::Kit::BaseCommand }
|
23
|
+
|
24
|
+
autocall(:Executor) { CLI::Kit::Executor.new(log_file: LOG_FILE) }
|
25
|
+
autocall(:Resolver) do
|
26
|
+
CLI::Kit::Resolver.new(
|
27
|
+
tool_name: TOOL_NAME,
|
28
|
+
command_registry: Gorails::Commands::Registry
|
29
|
+
)
|
30
|
+
end
|
31
|
+
|
32
|
+
autocall(:ErrorHandler) do
|
33
|
+
CLI::Kit::ErrorHandler.new(
|
34
|
+
log_file: LOG_FILE,
|
35
|
+
exception_reporter: nil
|
36
|
+
)
|
37
|
+
end
|
8
38
|
end
|
metadata
CHANGED
@@ -1,32 +1,85 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gorails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Oliver
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
12
|
-
dependencies:
|
11
|
+
date: 2022-03-13 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: cli-kit
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 4.0.0
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 4.0.0
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: cli-ui
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 1.5.1
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 1.5.1
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: standard
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
13
55
|
description: The GoRails rubygem
|
14
56
|
email:
|
15
57
|
- excid3@gmail.com
|
16
|
-
executables:
|
58
|
+
executables:
|
59
|
+
- gorails
|
17
60
|
extensions: []
|
18
61
|
extra_rdoc_files: []
|
19
62
|
files:
|
20
63
|
- CHANGELOG.md
|
21
64
|
- CODE_OF_CONDUCT.md
|
22
65
|
- Gemfile
|
66
|
+
- Gemfile.lock
|
23
67
|
- LICENSE.txt
|
24
68
|
- README.md
|
25
69
|
- Rakefile
|
26
70
|
- bin/console
|
27
71
|
- bin/setup
|
72
|
+
- exe/gorails
|
28
73
|
- gorails.gemspec
|
29
74
|
- lib/gorails.rb
|
75
|
+
- lib/gorails/commands.rb
|
76
|
+
- lib/gorails/commands/episodes.rb
|
77
|
+
- lib/gorails/commands/example.rb
|
78
|
+
- lib/gorails/commands/help.rb
|
79
|
+
- lib/gorails/commands/jobs.rb
|
80
|
+
- lib/gorails/commands/jumpstart.rb
|
81
|
+
- lib/gorails/commands/railsbytes.rb
|
82
|
+
- lib/gorails/entry_point.rb
|
30
83
|
- lib/gorails/version.rb
|
31
84
|
- sig/gorails.rbs
|
32
85
|
homepage: https://github.com/excid3/gorails-ruby
|
@@ -50,7 +103,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
50
103
|
- !ruby/object:Gem::Version
|
51
104
|
version: '0'
|
52
105
|
requirements: []
|
53
|
-
rubygems_version: 3.
|
106
|
+
rubygems_version: 3.3.5
|
54
107
|
signing_key:
|
55
108
|
specification_version: 4
|
56
109
|
summary: GoRails rubygem
|