ronin-gen 1.0.1 → 1.1.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
@@ -20,6 +20,6 @@
20
20
  module Ronin
21
21
  module Gen
22
22
  # Ronin Gen version
23
- VERSION = '1.0.1'
23
+ VERSION = '1.1.0.rc1'
24
24
  end
25
25
  end
@@ -21,6 +21,8 @@ require 'ronin/ui/cli/command'
21
21
  require 'ronin/gen/gen'
22
22
  require 'ronin/gen/version'
23
23
 
24
+ require 'parameters/options'
25
+
24
26
  module Ronin
25
27
  module UI
26
28
  module CLI
@@ -30,14 +32,43 @@ module Ronin
30
32
  #
31
33
  class Gen < Command
32
34
 
33
- desc "Prints the list of available generators"
34
- class_option :version, :type => :boolean
35
+ summary "Prints the list of available generators"
36
+
37
+ usage '[options] | GENERATOR [options]'
38
+
39
+ option :version, :type => true,
40
+ :flag => '-V',
41
+ :description => 'Prints the ronin-gen version'
42
+
43
+ #
44
+ # Starts the `ronin-gen` command.
45
+ #
46
+ # @param [Array<String>] argv
47
+ # The arguments for the command.
48
+ #
49
+ def start(argv=ARGV)
50
+ if (argv.empty? || argv.first.start_with?('-'))
51
+ super(argv)
52
+ else
53
+ generator_name = argv.shift
54
+ generator = Ronin::Gen.generator(generator_name).new
55
+
56
+ opts = Parameters::Options.parser(generator) do |opts|
57
+ opts.banner = "ronin-gen #{generator_name} PATH [options]"
58
+ end
59
+
60
+ args = opts.parse(argv)
61
+
62
+ generator.path = args.first
63
+ generator.generate!
64
+ end
65
+ end
35
66
 
36
67
  #
37
68
  # Lists the available generators.
38
69
  #
39
70
  def execute
40
- if options.version?
71
+ if version?
41
72
  puts "ronin-gen #{Ronin::Gen::VERSION}"
42
73
  return
43
74
  end
data/ronin-gen.gemspec CHANGED
@@ -99,7 +99,7 @@ Gem::Specification.new do |gemspec|
99
99
  end
100
100
 
101
101
  if gemspec.respond_to?(:required_rubygems_version=)
102
- gemspec.required_rubygems_version = metadata['required_ruby_version']
102
+ gemspec.required_rubygems_version = metadata['required_rubygems_version']
103
103
  end
104
104
 
105
105
  parse_versions = lambda { |versions|
@@ -4,13 +4,11 @@ class BasicGenerator < Gen::Generator
4
4
 
5
5
  attr_reader :var
6
6
 
7
- def generate
8
- end
9
-
10
- protected
11
-
12
7
  def setup
13
8
  @var = 'test'
14
9
  end
15
10
 
11
+ def generate
12
+ end
13
+
16
14
  end
@@ -3,8 +3,8 @@ require 'ronin/gen/generator'
3
3
  class FileGenerator < Gen::Generator
4
4
 
5
5
  def generate
6
- create_file('test.txt') do
7
- "hello"
6
+ write('test.txt') do |file|
7
+ file << "hello"
8
8
  end
9
9
  end
10
10
 
@@ -4,10 +4,10 @@ class TemplatedGenerator < Gen::Generator
4
4
 
5
5
  TEMPLATE_FILE = File.join('generators','templated.txt.erb')
6
6
 
7
- class_option :message, :type => :string
7
+ parameter :message, :type => String
8
8
 
9
9
  def generate
10
- erb TEMPLATE_FILE, 'templated.txt'
10
+ template TEMPLATE_FILE, 'templated.txt'
11
11
  end
12
12
 
13
13
  end
@@ -3,7 +3,7 @@ require 'ronin/gen/generator'
3
3
  class TouchGenerator < Gen::Generator
4
4
 
5
5
  def generate
6
- touch('test2.txt')
6
+ touch 'test2.txt'
7
7
  end
8
8
 
9
9
  end
data/spec/gen/gen_spec.rb CHANGED
@@ -11,7 +11,7 @@ describe Gen do
11
11
  generator = subject.generator('library')
12
12
 
13
13
  generator.should_not be_nil
14
- generator.name.should == 'Ronin::Gen::Generators::Library'
14
+ generator.should == Ronin::Gen::Generators::Library
15
15
  end
16
16
 
17
17
  it "should raise an UnknownGenerator exception on missing generators" do
@@ -11,15 +11,11 @@ require 'tmpdir'
11
11
  require 'fileutils'
12
12
 
13
13
  describe Gen::Generator do
14
- it "should include Thor::Actions" do
15
- Gen::Generator.should include(Thor::Actions)
16
- end
17
-
18
14
  describe "setup" do
19
15
  subject { BasicGenerator.new }
20
16
 
21
17
  before(:all) do
22
- subject.invoke_all
18
+ subject.setup
23
19
  end
24
20
 
25
21
  it "should set default values before invoking any tasks" do
@@ -55,9 +51,11 @@ describe Gen::Generator do
55
51
  end
56
52
 
57
53
  it "should generate files using templates" do
54
+ path = File.join(@dir,'templated.txt')
55
+
58
56
  TemplatedGenerator.generate(:message => 'hello')
59
57
 
60
- File.read(File.join(@dir,'templated.txt')).should == "message: hello\n"
58
+ File.read(path).chomp.should == "message: hello"
61
59
  end
62
60
 
63
61
  after(:all) do
@@ -98,7 +98,7 @@ describe Gen::Generators::Library do
98
98
  let(:path) { Pathname.new(Dir.tmpdir).join('ronin-library') }
99
99
 
100
100
  before(:all) do
101
- Gen::Generators::Library.generate(path, {:name => name})
101
+ Gen::Generators::Library.generate(path, :name => name)
102
102
  end
103
103
 
104
104
  it "should create a lib/ronin/name.rb file" do
@@ -15,8 +15,7 @@ describe Gen::Generators::Repository do
15
15
  let(:description) { 'This is a test repository' }
16
16
 
17
17
  before(:all) do
18
- Gen::Generators::Repository.generate(
19
- path,
18
+ Gen::Generators::Repository.generate(path,
20
19
  :title => title,
21
20
  :uri => uri,
22
21
  :source => source,
@@ -1 +1 @@
1
- message: <%= options[:message] %>
1
+ message: <%= @message %>
metadata CHANGED
@@ -1,108 +1,103 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: ronin-gen
3
- version: !ruby/object:Gem::Version
4
- prerelease:
5
- version: 1.0.1
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.1.0.rc1
5
+ prerelease: 6
6
6
  platform: ruby
7
- authors:
7
+ authors:
8
8
  - Postmodern
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
-
13
- date: 2011-07-04 00:00:00 Z
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
12
+ date: 2011-12-31 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
16
15
  name: open_namespace
17
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: &18377340 !ruby/object:Gem::Requirement
18
17
  none: false
19
- requirements:
18
+ requirements:
20
19
  - - ~>
21
- - !ruby/object:Gem::Version
22
- version: "0.3"
20
+ - !ruby/object:Gem::Version
21
+ version: '0.3'
23
22
  type: :runtime
24
23
  prerelease: false
25
- version_requirements: *id001
26
- - !ruby/object:Gem::Dependency
24
+ version_requirements: *18377340
25
+ - !ruby/object:Gem::Dependency
27
26
  name: data_paths
28
- requirement: &id002 !ruby/object:Gem::Requirement
27
+ requirement: &18376620 !ruby/object:Gem::Requirement
29
28
  none: false
30
- requirements:
29
+ requirements:
31
30
  - - ~>
32
- - !ruby/object:Gem::Version
33
- version: "0.3"
31
+ - !ruby/object:Gem::Version
32
+ version: '0.3'
34
33
  type: :runtime
35
34
  prerelease: false
36
- version_requirements: *id002
37
- - !ruby/object:Gem::Dependency
38
- name: thor
39
- requirement: &id003 !ruby/object:Gem::Requirement
35
+ version_requirements: *18376620
36
+ - !ruby/object:Gem::Dependency
37
+ name: parameters
38
+ requirement: &18376060 !ruby/object:Gem::Requirement
40
39
  none: false
41
- requirements:
40
+ requirements:
42
41
  - - ~>
43
- - !ruby/object:Gem::Version
44
- version: 0.14.3
42
+ - !ruby/object:Gem::Version
43
+ version: '0.4'
45
44
  type: :runtime
46
45
  prerelease: false
47
- version_requirements: *id003
48
- - !ruby/object:Gem::Dependency
46
+ version_requirements: *18376060
47
+ - !ruby/object:Gem::Dependency
49
48
  name: ronin-support
50
- requirement: &id004 !ruby/object:Gem::Requirement
49
+ requirement: &18375580 !ruby/object:Gem::Requirement
51
50
  none: false
52
- requirements:
51
+ requirements:
53
52
  - - ~>
54
- - !ruby/object:Gem::Version
55
- version: "0.1"
53
+ - !ruby/object:Gem::Version
54
+ version: 0.4.0.rc1
56
55
  type: :runtime
57
56
  prerelease: false
58
- version_requirements: *id004
59
- - !ruby/object:Gem::Dependency
57
+ version_requirements: *18375580
58
+ - !ruby/object:Gem::Dependency
60
59
  name: ronin
61
- requirement: &id005 !ruby/object:Gem::Requirement
60
+ requirement: &18375080 !ruby/object:Gem::Requirement
62
61
  none: false
63
- requirements:
62
+ requirements:
64
63
  - - ~>
65
- - !ruby/object:Gem::Version
66
- version: "1.0"
64
+ - !ruby/object:Gem::Version
65
+ version: 1.4.0.rc1
67
66
  type: :runtime
68
67
  prerelease: false
69
- version_requirements: *id005
70
- - !ruby/object:Gem::Dependency
68
+ version_requirements: *18375080
69
+ - !ruby/object:Gem::Dependency
71
70
  name: bundler
72
- requirement: &id006 !ruby/object:Gem::Requirement
71
+ requirement: &18374540 !ruby/object:Gem::Requirement
73
72
  none: false
74
- requirements:
73
+ requirements:
75
74
  - - ~>
76
- - !ruby/object:Gem::Version
75
+ - !ruby/object:Gem::Version
77
76
  version: 1.0.10
78
77
  type: :development
79
78
  prerelease: false
80
- version_requirements: *id006
81
- - !ruby/object:Gem::Dependency
79
+ version_requirements: *18374540
80
+ - !ruby/object:Gem::Dependency
82
81
  name: yard
83
- requirement: &id007 !ruby/object:Gem::Requirement
82
+ requirement: &18374040 !ruby/object:Gem::Requirement
84
83
  none: false
85
- requirements:
84
+ requirements:
86
85
  - - ~>
87
- - !ruby/object:Gem::Version
86
+ - !ruby/object:Gem::Version
88
87
  version: 0.7.0
89
88
  type: :development
90
89
  prerelease: false
91
- version_requirements: *id007
90
+ version_requirements: *18374040
92
91
  description: Ronin Gen is a Ruby library for Ronin that provides various generators.
93
- email:
94
- - postmodern.mod3@gmail.com
95
- executables:
92
+ email: postmodern.mod3@gmail.com
93
+ executables:
96
94
  - ronin-gen
97
95
  extensions: []
98
-
99
- extra_rdoc_files:
100
- - README.md
101
- - ChangeLog.md
102
- - COPYING.txt
103
- files:
96
+ extra_rdoc_files: []
97
+ files:
104
98
  - .document
105
99
  - .gemtest
100
+ - .gitignore
106
101
  - .rspec
107
102
  - .yardopts
108
103
  - COPYING.txt
@@ -166,34 +161,34 @@ files:
166
161
  - spec/gen/helpers/data/generators/templated.txt.erb
167
162
  - spec/spec_helper.rb
168
163
  homepage: http://github.com/ronin-ruby/ronin-gen
169
- licenses:
164
+ licenses:
170
165
  - GPL-3
171
166
  post_install_message:
172
167
  rdoc_options: []
173
-
174
- require_paths:
168
+ require_paths:
175
169
  - lib
176
- required_ruby_version: !ruby/object:Gem::Requirement
170
+ required_ruby_version: !ruby/object:Gem::Requirement
177
171
  none: false
178
- requirements:
179
- - - ">="
180
- - !ruby/object:Gem::Version
181
- version: "0"
182
- required_rubygems_version: !ruby/object:Gem::Requirement
172
+ requirements:
173
+ - - ! '>='
174
+ - !ruby/object:Gem::Version
175
+ version: '0'
176
+ required_rubygems_version: !ruby/object:Gem::Requirement
183
177
  none: false
184
- requirements:
185
- - - ">="
186
- - !ruby/object:Gem::Version
187
- version: 1.3.6
188
- requirements:
178
+ requirements:
179
+ - - ! '>='
180
+ - !ruby/object:Gem::Version
181
+ version: '0'
182
+ requirements:
189
183
  - git >= 1.6.0.0, for the library generator
190
- rubyforge_project: ronin-gen
191
- rubygems_version: 1.8.5
184
+ rubyforge_project:
185
+ rubygems_version: 1.8.10
192
186
  signing_key:
193
187
  specification_version: 3
194
188
  summary: A Ruby library for Ronin that provides various generators.
195
- test_files:
189
+ test_files:
196
190
  - spec/gen/gen_spec.rb
191
+ - spec/gen/generator_spec.rb
197
192
  - spec/gen/generators/library_spec.rb
198
193
  - spec/gen/generators/repository_spec.rb
199
- - spec/gen/generator_spec.rb
194
+ has_rdoc: