cybertron 0.1.0 → 0.1.1

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: 8be6125a4e7ec2acaad74513dcb0153a12fd21e34626610bf6f4eb48b2d571cd
4
- data.tar.gz: 6944169b656572e7168ecc650d81ccdd656e1758e8b1869124a107ec46afe46d
3
+ metadata.gz: 93377457317174c2befff55d0644ae666071d737f64aa4871dd4ae48154f26f1
4
+ data.tar.gz: 746579bfd1f69bc0cbec4e4a71607e397de8d4af383f41f04ad62cbdf23c3217
5
5
  SHA512:
6
- metadata.gz: f8bd247f9e822b7b8e315b05416e5882a3804a4b16c138329da47d09c94309760b1c1c8cd803e22ff6ac1a62a86dd5425c5df8534d56e4af7e94c8bd50cce792
7
- data.tar.gz: 74478904943b9f53c3ea712a75de39859976a16709f8d34d1726e64ad7b3dcd86651705b1cd1bc596d01cd362591d87b9148638bef57adc876d99896df954250
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.0)
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
- # Cybertron
1
+ # cybertron
2
2
 
3
- Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/cybertron`. To experiment with that code, run `bin/console` for an interactive prompt.
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
- TODO: Write usage instructions here
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/[USERNAME]/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.
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"] = "https://github.com/rajasegar/cybertron"
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.add_development_dependency "thor"
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 ' new <project-name>', 'Create a new Codemod project'
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 ' generate <name-of-transform>', 'Generate a new transform'
30
- def generate(name)
31
- @name = name
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
@@ -1,3 +1,3 @@
1
1
  module Cybertron
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
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.0
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: :development
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: bundler
28
+ name: parser
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '2.0'
34
- type: :development
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.0'
40
+ version: '2.6'
41
41
  - !ruby/object:Gem::Dependency
42
- name: rake
42
+ name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '10.0'
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: '10.0'
68
+ version: '2.0'
55
69
  - !ruby/object:Gem::Dependency
56
- name: rspec
70
+ name: rake
57
71
  requirement: !ruby/object:Gem::Requirement
58
72
  requirements:
59
73
  - - "~>"
60
74
  - !ruby/object:Gem::Version
61
- version: '3.0'
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: '3.0'
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