cybertron 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.lock +7 -3
- data/README.md +34 -6
- data/cybertron.gemspec +4 -3
- data/lib/cybertron/cli.rb +5 -13
- data/lib/cybertron/generate_command.rb +47 -0
- data/lib/cybertron/version.rb +1 -1
- metadata +27 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 93377457317174c2befff55d0644ae666071d737f64aa4871dd4ae48154f26f1
|
4
|
+
data.tar.gz: 746579bfd1f69bc0cbec4e4a71607e397de8d4af383f41f04ad62cbdf23c3217
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1ca602d7b69aad6ce12802fd2f130a3e41efd60af0d8cd802a446dc7f8904125d220fce5bc468fb5f856310e5e8ad6d92ae4228421b76ed6fc4529c9e7afd164
|
7
|
+
data.tar.gz: b17f9d7a0078b7f1121e468fc85d28327ddc09536c97a0844275e738b684df594e570ef4730496e0dec0a9028472972eec866756750fe4e6c290588946ed93a7
|
data/Gemfile.lock
CHANGED
@@ -1,12 +1,18 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
cybertron (0.1.
|
4
|
+
cybertron (0.1.1)
|
5
|
+
parser (~> 2.6)
|
6
|
+
rspec (~> 3.0)
|
7
|
+
thor
|
5
8
|
|
6
9
|
GEM
|
7
10
|
remote: https://rubygems.org/
|
8
11
|
specs:
|
12
|
+
ast (2.4.0)
|
9
13
|
diff-lcs (1.3)
|
14
|
+
parser (2.6.4.0)
|
15
|
+
ast (~> 2.4.0)
|
10
16
|
rake (10.5.0)
|
11
17
|
rspec (3.8.0)
|
12
18
|
rspec-core (~> 3.8.0)
|
@@ -30,8 +36,6 @@ DEPENDENCIES
|
|
30
36
|
bundler (~> 2.0)
|
31
37
|
cybertron!
|
32
38
|
rake (~> 10.0)
|
33
|
-
rspec (~> 3.0)
|
34
|
-
thor
|
35
39
|
|
36
40
|
BUNDLED WITH
|
37
41
|
2.0.2
|
data/README.md
CHANGED
@@ -1,8 +1,6 @@
|
|
1
|
-
#
|
1
|
+
# cybertron
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
TODO: Delete this and the text above, and describe your gem
|
3
|
+
cybertron is a command line tool for generating, testing and publishing converters aka Codemods for Ruby.
|
6
4
|
|
7
5
|
## Installation
|
8
6
|
|
@@ -22,7 +20,37 @@ Or install it yourself as:
|
|
22
20
|
|
23
21
|
## Usage
|
24
22
|
|
25
|
-
|
23
|
+
### Create a new codemod project
|
24
|
+
```
|
25
|
+
$ cybertron new <project-name>
|
26
|
+
```
|
27
|
+
Example:
|
28
|
+
|
29
|
+
```
|
30
|
+
$ cybertron new my_ruby_codemod
|
31
|
+
```
|
32
|
+
|
33
|
+
### Generate a new transform
|
34
|
+
```
|
35
|
+
$ cd <project-name>
|
36
|
+
$ cybertron generate <transform-name>
|
37
|
+
```
|
38
|
+
|
39
|
+
Example:
|
40
|
+
```
|
41
|
+
$ cd my_ruby_codemod
|
42
|
+
$ cybertron generate my_transform
|
43
|
+
```
|
44
|
+
|
45
|
+
### Generate a new fixture for transform
|
46
|
+
```
|
47
|
+
$ cybertron generate <transform-name> <fixture-name>
|
48
|
+
```
|
49
|
+
Example:
|
50
|
+
|
51
|
+
```
|
52
|
+
$ cybertron generate my_transform advanced_usage
|
53
|
+
```
|
26
54
|
|
27
55
|
## Development
|
28
56
|
|
@@ -32,7 +60,7 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
|
|
32
60
|
|
33
61
|
## Contributing
|
34
62
|
|
35
|
-
Bug reports and pull requests are welcome on GitHub at https://github.com/
|
63
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/rajasegar/cybertron. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
|
36
64
|
|
37
65
|
## License
|
38
66
|
|
data/cybertron.gemspec
CHANGED
@@ -14,7 +14,7 @@ Gem::Specification.new do |spec|
|
|
14
14
|
spec.license = "MIT"
|
15
15
|
|
16
16
|
spec.metadata["homepage_uri"] = spec.homepage
|
17
|
-
spec.metadata["source_code_uri"] =
|
17
|
+
spec.metadata["source_code_uri"] = spec.homepage
|
18
18
|
|
19
19
|
# Specify which files should be added to the gem when it is released.
|
20
20
|
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
@@ -25,9 +25,10 @@ Gem::Specification.new do |spec|
|
|
25
25
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
26
26
|
spec.require_paths = ["lib"]
|
27
27
|
|
28
|
-
spec.
|
28
|
+
spec.add_runtime_dependency 'thor'
|
29
|
+
spec.add_runtime_dependency 'parser', '~> 2.6'
|
30
|
+
spec.add_runtime_dependency 'rspec', '~> 3.0'
|
29
31
|
|
30
32
|
spec.add_development_dependency "bundler", "~> 2.0"
|
31
33
|
spec.add_development_dependency "rake", "~> 10.0"
|
32
|
-
spec.add_development_dependency "rspec", "~> 3.0"
|
33
34
|
end
|
data/lib/cybertron/cli.rb
CHANGED
@@ -3,6 +3,7 @@
|
|
3
3
|
require 'optparse'
|
4
4
|
require 'cybertron/options'
|
5
5
|
require 'cybertron/version'
|
6
|
+
require 'cybertron/generate_command'
|
6
7
|
require 'thor'
|
7
8
|
require 'fileutils'
|
8
9
|
|
@@ -15,7 +16,7 @@ module Cybertron
|
|
15
16
|
File.expand_path('../templates', __dir__)
|
16
17
|
end
|
17
18
|
|
18
|
-
desc '
|
19
|
+
desc 'new <project-name>', 'Create a new Codemod project'
|
19
20
|
def new(name)
|
20
21
|
puts "Creating new project: #{name}"
|
21
22
|
FileUtils.mkdir_p "#{name}/transforms"
|
@@ -26,17 +27,8 @@ module Cybertron
|
|
26
27
|
template 'readme.tt', "#{name}/README.md"
|
27
28
|
end
|
28
29
|
|
29
|
-
desc '
|
30
|
-
|
31
|
-
|
32
|
-
puts "Creating new transform: #{name}"
|
33
|
-
FileUtils.mkdir_p "transforms/#{name}"
|
34
|
-
FileUtils.mkdir_p "transforms/#{name}/fixtures"
|
35
|
-
template 'transform.tt', "transforms/#{name}/transform.rb"
|
36
|
-
template 'transform_spec.tt', "spec/#{name}_spec.rb"
|
37
|
-
template 'fixture_input.tt', "transforms/#{name}/fixtures/basic_input.rb"
|
38
|
-
template 'fixture_output.tt', "transforms/#{name}/fixtures/basic_output.rb"
|
39
|
-
template 'readme_transform.tt', "transforms/#{name}/README.md"
|
40
|
-
end
|
30
|
+
desc 'generate', 'Generate fixtures and transforms'
|
31
|
+
subcommand 'generate', Generate
|
32
|
+
|
41
33
|
end
|
42
34
|
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'thor'
|
4
|
+
require 'fileutils'
|
5
|
+
|
6
|
+
module Cybertron
|
7
|
+
# CLI class
|
8
|
+
class Generate < Thor
|
9
|
+
include Thor::Actions
|
10
|
+
|
11
|
+
def self.source_root
|
12
|
+
File.expand_path('../templates', __dir__)
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.banner(command, namespace = nil, subcommand = false)
|
16
|
+
"#{basename} #{subcommand_prefix} #{command.usage}"
|
17
|
+
end
|
18
|
+
|
19
|
+
def self.subcommand_prefix
|
20
|
+
self.name.gsub(%r{.*::}, '').gsub(%r{^[A-Z]}) { |match| match[0].downcase }.gsub(%r{[A-Z]}) { |match| "-#{match[0].downcase}" }
|
21
|
+
end
|
22
|
+
|
23
|
+
desc 'transform <transform-name>', 'Generate a new transform'
|
24
|
+
def transform(name)
|
25
|
+
@name = name
|
26
|
+
puts "Creating new transform: #{name}"
|
27
|
+
FileUtils.mkdir_p "transforms/#{name}"
|
28
|
+
FileUtils.mkdir_p "transforms/#{name}/fixtures"
|
29
|
+
template 'transform.tt', "transforms/#{name}/transform.rb"
|
30
|
+
template 'transform_spec.tt', "spec/#{name}_spec.rb"
|
31
|
+
template 'fixture_input.tt', "transforms/#{name}/fixtures/basic_input.rb"
|
32
|
+
template 'fixture_output.tt', "transforms/#{name}/fixtures/basic_output.rb"
|
33
|
+
template 'readme_transform.tt', "transforms/#{name}/README.md"
|
34
|
+
end
|
35
|
+
|
36
|
+
desc 'fixture <transform-name> <fixture-name>', 'Generate a new fixture for a transform'
|
37
|
+
def fixture(codemod, name)
|
38
|
+
@codemod = codemod
|
39
|
+
@name = name
|
40
|
+
puts "Creating new fixture: #{name} for #{codemod}"
|
41
|
+
template 'fixture_input.tt', "transforms/#{codemod}/fixtures/#{name}_input.rb"
|
42
|
+
template 'fixture_output.tt', "transforms/#{codemod}/fixtures/#{name}_output.rb"
|
43
|
+
end
|
44
|
+
|
45
|
+
|
46
|
+
end
|
47
|
+
end
|
data/lib/cybertron/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cybertron
|
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
|
- Rajasegar
|
@@ -17,7 +17,7 @@ dependencies:
|
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '0'
|
20
|
-
type: :
|
20
|
+
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
@@ -25,47 +25,61 @@ dependencies:
|
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: parser
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '2.
|
34
|
-
type: :
|
33
|
+
version: '2.6'
|
34
|
+
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '2.
|
40
|
+
version: '2.6'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: rspec
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '3.0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '3.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: bundler
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '2.0'
|
48
62
|
type: :development
|
49
63
|
prerelease: false
|
50
64
|
version_requirements: !ruby/object:Gem::Requirement
|
51
65
|
requirements:
|
52
66
|
- - "~>"
|
53
67
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
68
|
+
version: '2.0'
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
70
|
+
name: rake
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
58
72
|
requirements:
|
59
73
|
- - "~>"
|
60
74
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
75
|
+
version: '10.0'
|
62
76
|
type: :development
|
63
77
|
prerelease: false
|
64
78
|
version_requirements: !ruby/object:Gem::Requirement
|
65
79
|
requirements:
|
66
80
|
- - "~>"
|
67
81
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
82
|
+
version: '10.0'
|
69
83
|
description: Cybertron is a Ruby CLI to create codemods
|
70
84
|
email:
|
71
85
|
- rajasegar.c@gmail.com
|
@@ -89,6 +103,7 @@ files:
|
|
89
103
|
- exe/cybertron
|
90
104
|
- lib/cybertron.rb
|
91
105
|
- lib/cybertron/cli.rb
|
106
|
+
- lib/cybertron/generate_command.rb
|
92
107
|
- lib/cybertron/options.rb
|
93
108
|
- lib/cybertron/version.rb
|
94
109
|
- lib/templates/Rakefile.tt
|