ronin-gen 1.0.1 → 1.1.0.rc1

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.
@@ -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: