skullet 0.0.0 → 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile.rb +12 -0
- data/Readme.md +54 -0
- data/bin/skullet +7 -0
- data/lib/skullet.rb +8 -0
- data/lib/skullet/base_files/Gemfile.rb +5 -0
- data/lib/skullet/base_files/Rakefile.rb +12 -0
- data/lib/skullet/base_files/executable.rb +3 -0
- data/lib/skullet/base_files/project_file.erb +4 -0
- data/lib/skullet/base_files/spec_helper.erb +3 -0
- data/lib/skullet/cli.rb +58 -0
- data/lib/skullet/generator.rb +98 -0
- data/lib/skullet/string_extensions.rb +19 -0
- data/skullet.gemspec +28 -0
- data/spec/skullet/cli_spec.rb +43 -0
- data/spec/skullet/generator_spec.rb +162 -0
- data/spec/skullet_spec.rb +91 -0
- data/spec/spec_helper.rb +3 -0
- metadata +43 -9
data/Rakefile.rb
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
desc "same as rake specs"
|
2
|
+
task :default => [:specs]
|
3
|
+
|
4
|
+
desc "same as rake specs:all"
|
5
|
+
task :specs => [:"specs:all"]
|
6
|
+
namespace :specs do
|
7
|
+
require 'rspec/core/rake_task'
|
8
|
+
RSpec::Core::RakeTask.new "all" do |t|
|
9
|
+
t.pattern = "spec/**/*_spec.rb"
|
10
|
+
t.rspec_opts = ['--color', '--format documentation', '--require spec_helper']
|
11
|
+
end
|
12
|
+
end
|
data/Readme.md
ADDED
@@ -0,0 +1,54 @@
|
|
1
|
+
skullet
|
2
|
+
=======
|
3
|
+
|
4
|
+
#What is this?
|
5
|
+
A (one more) Ruby project skeleton generator, creates the initial dir
|
6
|
+
structure.
|
7
|
+
|
8
|
+
#Why is this?
|
9
|
+
* a scratch your own itch gem
|
10
|
+
|
11
|
+
I don't wanna look for the dir structure and the basic spec files
|
12
|
+
every time I need to create a new project, so I decided to automate it.
|
13
|
+
|
14
|
+
#How is this?
|
15
|
+
You install the gem:
|
16
|
+
|
17
|
+
gem install skullet
|
18
|
+
|
19
|
+
##Usage
|
20
|
+
If you want to create a project named full_of_awesome, you can use the
|
21
|
+
skullet executable:
|
22
|
+
|
23
|
+
skullet full_of_awesome
|
24
|
+
|
25
|
+
The current default dir structure is the follow:
|
26
|
+
|
27
|
+
full_of_awesome/
|
28
|
+
-bin/
|
29
|
+
full_of_awesome
|
30
|
+
-lib/
|
31
|
+
full_of_awesome/
|
32
|
+
full_of_awesome.rb
|
33
|
+
-spec/
|
34
|
+
full_of_awesome/
|
35
|
+
spec_helper.rb
|
36
|
+
.gitignore
|
37
|
+
.rvmrc
|
38
|
+
Gemfile
|
39
|
+
Rakefile.rb
|
40
|
+
|
41
|
+
###Rakefile.rb
|
42
|
+
The rake tasks created within the Rakefile.rb are listed below:
|
43
|
+
|
44
|
+
```
|
45
|
+
$ rake -T
|
46
|
+
rake default # same as rake specs
|
47
|
+
rake specs # same as rake specs:all
|
48
|
+
rake specs:all # Run RSpec code examples
|
49
|
+
```
|
50
|
+
|
51
|
+
###TODO:
|
52
|
+
* add -g parameter to create the git repo after the dir structure
|
53
|
+
* add -b parameter to install bundler and run `bundle install`
|
54
|
+
* add rdoc to this gem
|
data/bin/skullet
ADDED
data/lib/skullet.rb
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
desc "same as rake specs"
|
2
|
+
task :default => [:specs]
|
3
|
+
|
4
|
+
desc "same as rake specs:all"
|
5
|
+
task :specs => [:"specs:all"]
|
6
|
+
namespace :specs do
|
7
|
+
require 'rspec/core/rake_task'
|
8
|
+
RSpec::Core::RakeTask.new "all" do |t|
|
9
|
+
t.pattern = "spec/**/*_spec.rb"
|
10
|
+
t.rspec_opts = ['--color', '--format documentation', '--require spec_helper']
|
11
|
+
end
|
12
|
+
end
|
data/lib/skullet/cli.rb
ADDED
@@ -0,0 +1,58 @@
|
|
1
|
+
require 'optparse'
|
2
|
+
|
3
|
+
module Skullet
|
4
|
+
|
5
|
+
class CLI
|
6
|
+
def initialize(output=STDOUT)
|
7
|
+
@out = output
|
8
|
+
end
|
9
|
+
|
10
|
+
def run(args=ARGV)
|
11
|
+
options = parse(args)
|
12
|
+
generator = args[0] && Generator.new(args[0])
|
13
|
+
process(options, generator)
|
14
|
+
end
|
15
|
+
|
16
|
+
private
|
17
|
+
def parse(args)
|
18
|
+
options = {}
|
19
|
+
|
20
|
+
@parser ||= OptionParser.new do |args|
|
21
|
+
args.banner = banner
|
22
|
+
|
23
|
+
args.on("-v", "--version", "print the version") do
|
24
|
+
options[:version] = true
|
25
|
+
end
|
26
|
+
|
27
|
+
args.on("-h", "--help", "print this help") do
|
28
|
+
options[:help] = true
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
@parser.parse!(args)
|
33
|
+
|
34
|
+
options
|
35
|
+
end
|
36
|
+
|
37
|
+
def banner
|
38
|
+
banner = "Usage: #{Skullet::NAME} PROJECT [OPTION]...\n"
|
39
|
+
banner << "Generate a Ruby project skeleton"
|
40
|
+
end
|
41
|
+
|
42
|
+
def version
|
43
|
+
"#{Skullet::NAME} version #{Skullet::VERSION}"
|
44
|
+
end
|
45
|
+
|
46
|
+
def exit_with(msg, code)
|
47
|
+
@out.puts(msg)
|
48
|
+
exit(code)
|
49
|
+
end
|
50
|
+
|
51
|
+
def process(options, generator)
|
52
|
+
exit_with(version, 0) if options[:version]
|
53
|
+
exit_with(@parser.help, 0) if options[:help]
|
54
|
+
|
55
|
+
generator && generator.make_project
|
56
|
+
end
|
57
|
+
end# CLI
|
58
|
+
end
|
@@ -0,0 +1,98 @@
|
|
1
|
+
require 'fileutils'
|
2
|
+
require 'erb'
|
3
|
+
|
4
|
+
module Skullet
|
5
|
+
|
6
|
+
class Generator
|
7
|
+
|
8
|
+
def initialize(project)
|
9
|
+
@project = project
|
10
|
+
|
11
|
+
@base_files_path = File.join(File.expand_path("../", __FILE__), "base_files")
|
12
|
+
@project_dir = @project.dup
|
13
|
+
end
|
14
|
+
|
15
|
+
def make_root_dir
|
16
|
+
mkdir
|
17
|
+
end
|
18
|
+
|
19
|
+
def make_rake_file
|
20
|
+
copy("Rakefile.rb", "Rakefile.rb")
|
21
|
+
end
|
22
|
+
|
23
|
+
def make_bin_dir
|
24
|
+
mkdir("bin")
|
25
|
+
executable = copy("executable.rb", File.join("bin", @project))
|
26
|
+
system("chmod +x #{executable}")
|
27
|
+
end
|
28
|
+
|
29
|
+
def make_spec_dir
|
30
|
+
spec_dir = mkdir(File.join("spec", @project))
|
31
|
+
file_from_template(File.join("spec", "spec_helper.rb"), "spec_helper.erb")
|
32
|
+
end
|
33
|
+
|
34
|
+
def make_git_repo
|
35
|
+
file(".gitignore", ".rvmrc")
|
36
|
+
end
|
37
|
+
|
38
|
+
def make_rvm
|
39
|
+
ruby_version = %x(ruby -v).split(" ")[1]
|
40
|
+
if ruby_version.include? "p"
|
41
|
+
with_patch = ruby_version.split "p"
|
42
|
+
ruby_version = "#{with_patch[0]}-p#{with_patch[1]}"
|
43
|
+
end
|
44
|
+
file(".rvmrc", "rvm #{ruby_version}@#{@project} --create")
|
45
|
+
end
|
46
|
+
|
47
|
+
def make_lib_dir
|
48
|
+
project_lib_dir = mkdir(File.join("lib", @project))
|
49
|
+
file_from_template(File.join("lib", "#{@project}.rb"), "project_file.erb")
|
50
|
+
end
|
51
|
+
|
52
|
+
def make_bundle
|
53
|
+
copy("Gemfile.rb", "Gemfile")
|
54
|
+
end
|
55
|
+
|
56
|
+
def make_project
|
57
|
+
make_root_dir
|
58
|
+
make_bin_dir
|
59
|
+
make_lib_dir
|
60
|
+
make_spec_dir
|
61
|
+
make_git_repo
|
62
|
+
make_rvm
|
63
|
+
make_bundle
|
64
|
+
make_rake_file
|
65
|
+
end
|
66
|
+
|
67
|
+
private
|
68
|
+
def path_to(file_or_dir)
|
69
|
+
File.join @project_dir, file_or_dir
|
70
|
+
end
|
71
|
+
|
72
|
+
def file_from_template(file, template_file)
|
73
|
+
erb_file = File.join(@base_files_path, template_file)
|
74
|
+
tpl = ERB.new(IO.read(erb_file))
|
75
|
+
project = @project.dup
|
76
|
+
project.class.send(:include, Skullet::StringExtensions)
|
77
|
+
bind = Object.new.instance_eval { project_name = project; binding }
|
78
|
+
file(file, tpl.result(bind))
|
79
|
+
end
|
80
|
+
|
81
|
+
def mkdir(subdir=nil)
|
82
|
+
new_dir = path_to(subdir || "")
|
83
|
+
FileUtils.mkdir_p(new_dir)
|
84
|
+
new_dir
|
85
|
+
end
|
86
|
+
|
87
|
+
def copy(base_file, dest_file)
|
88
|
+
from = File.join @base_files_path, base_file
|
89
|
+
to = path_to(dest_file)
|
90
|
+
FileUtils.cp(from, to)
|
91
|
+
to
|
92
|
+
end
|
93
|
+
|
94
|
+
def file(file, content)
|
95
|
+
File.open(path_to(file), "w+") { |f| f.write(content) }
|
96
|
+
end
|
97
|
+
end# Generator
|
98
|
+
end# Skullet
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Skullet
|
2
|
+
module StringExtensions
|
3
|
+
|
4
|
+
def camelize
|
5
|
+
camelize_feature(self)
|
6
|
+
end
|
7
|
+
|
8
|
+
private
|
9
|
+
# the next one is brought to you by rails...
|
10
|
+
# File activesupport/lib/active_support/inflector/methods.rb, line 28
|
11
|
+
def camelize_feature(lower_case_and_underscored_word, first_letter_in_uppercase = true)
|
12
|
+
if first_letter_in_uppercase
|
13
|
+
lower_case_and_underscored_word.to_s.gsub(/\/(.?)/) { "::#{$1.upcase}" }.gsub(/(?:^|_)(.)/) { $1.upcase }
|
14
|
+
else
|
15
|
+
lower_case_and_underscored_word.to_s[0].chr.downcase + camelize(lower_case_and_underscored_word)[1..-1]
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end# StringExtensions
|
19
|
+
end# Skullet
|
data/skullet.gemspec
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
lib = File.expand_path('../lib/', __FILE__)
|
4
|
+
$:.unshift lib unless $:.include?(lib)
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = "skullet"
|
8
|
+
s.version = "0.0.1"
|
9
|
+
s.platform = Gem::Platform::RUBY
|
10
|
+
s.authors = ["Ricardo Valeriano"]
|
11
|
+
s.email = ["ricardo.valeriano@gmail.com"]
|
12
|
+
s.homepage = "http://github.com/ricardovaleriano/gemusta"
|
13
|
+
s.summary = "A (one more) Ruby project skeleton generator, creates the initial dir structure."
|
14
|
+
s.description = "You don't have look for the dir structure, the basic spec files, a basic .rmvrc file and such everytime you need to create a new Ruby project, automate it!"
|
15
|
+
|
16
|
+
s.required_rubygems_version = ">= 0"
|
17
|
+
|
18
|
+
s.add_development_dependency "rspec"
|
19
|
+
|
20
|
+
s.require_path = 'lib'
|
21
|
+
|
22
|
+
s.files = ["Rakefile.rb", "Readme.md", "bin/skullet", "lib/skullet.rb", "lib/skullet/base_files/Gemfile.rb", "lib/skullet/base_files/Rakefile.rb", "lib/skullet/base_files/executable.rb", "lib/skullet/base_files/project_file.erb", "lib/skullet/base_files/spec_helper.erb", "lib/skullet/cli.rb", "lib/skullet/generator.rb", "lib/skullet/string_extensions.rb", "skullet.gemspec", "spec/skullet/cli_spec.rb", "spec/skullet/generator_spec.rb", "spec/skullet_spec.rb", "spec/spec_helper.rb"]
|
23
|
+
s.test_files = ["spec/skullet/cli_spec.rb", "spec/skullet/generator_spec.rb", "spec/skullet_spec.rb", "spec/spec_helper.rb"]
|
24
|
+
|
25
|
+
|
26
|
+
s.executables = ["skullet"]
|
27
|
+
|
28
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
module Skullet
|
2
|
+
|
3
|
+
describe CLI do
|
4
|
+
|
5
|
+
let(:output) {
|
6
|
+
o = Object.new { attr_reader :messages }
|
7
|
+
o.instance_eval {
|
8
|
+
def puts(msg)
|
9
|
+
(@output ||= []) << msg
|
10
|
+
end
|
11
|
+
|
12
|
+
def current
|
13
|
+
(@output ||= []).last
|
14
|
+
end
|
15
|
+
}
|
16
|
+
o
|
17
|
+
}
|
18
|
+
|
19
|
+
let(:cli) { CLI.new(output) }
|
20
|
+
|
21
|
+
def exec
|
22
|
+
begin
|
23
|
+
yield if block_given?
|
24
|
+
rescue SystemExit => e
|
25
|
+
return e.status
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
context "command line args" do
|
30
|
+
|
31
|
+
it "-v, shows the version" do
|
32
|
+
string = "#{Skullet::NAME} version #{Skullet::VERSION}"
|
33
|
+
output.should_receive(:puts).with(string)
|
34
|
+
exec { cli.run(["-v"]) }
|
35
|
+
end
|
36
|
+
|
37
|
+
it "-h, shows help" do
|
38
|
+
exec { cli.run(["-h"]) }
|
39
|
+
output.current.should include("Usage: #{Skullet::NAME} PROJECT [OPTION]...")
|
40
|
+
end
|
41
|
+
end# command line args
|
42
|
+
end# CLI
|
43
|
+
end
|
@@ -0,0 +1,162 @@
|
|
1
|
+
module Skullet
|
2
|
+
|
3
|
+
describe Generator do
|
4
|
+
let(:project_name) {
|
5
|
+
name = "full_of_awesome"
|
6
|
+
name.class.send(:include, Skullet::StringExtensions)
|
7
|
+
name
|
8
|
+
}
|
9
|
+
let(:generator) { Generator.new(project_name) }
|
10
|
+
|
11
|
+
before(:all) { FileUtils.rm_rf project_name }
|
12
|
+
|
13
|
+
context "project dir" do
|
14
|
+
|
15
|
+
it "creates the project dir" do
|
16
|
+
generator.make_root_dir
|
17
|
+
Dir.exists?(project_name).should be_true
|
18
|
+
end
|
19
|
+
|
20
|
+
context "git" do
|
21
|
+
before(:all) { generator.make_git_repo }
|
22
|
+
|
23
|
+
it "creates a .gitignore file" do
|
24
|
+
File.exists?("#{project_name}/.gitignore").should be_true
|
25
|
+
end
|
26
|
+
|
27
|
+
it "ignores the .rvmrc file" do
|
28
|
+
IO.read("#{project_name}/.gitignore").should include ".rvmrc"
|
29
|
+
end
|
30
|
+
end# git
|
31
|
+
|
32
|
+
context "rvm" do
|
33
|
+
before(:all) { generator.make_rvm }
|
34
|
+
let(:rvmrc) { IO.read(File.join(project_name, ".rvmrc")) }
|
35
|
+
|
36
|
+
it "creates the .rvmrc file" do
|
37
|
+
File.exists?("#{project_name}/.rvmrc").should be_true
|
38
|
+
end
|
39
|
+
|
40
|
+
it "uses current ruby, a gemset named after the project and the option --create" do
|
41
|
+
version = %x(ruby -v).split(" ")[1]
|
42
|
+
if version.include? "p"
|
43
|
+
with_patch = version.split "p"
|
44
|
+
version = "#{with_patch[0]}-p#{with_patch[1]}"
|
45
|
+
end
|
46
|
+
rvmrc.should == "rvm #{version}@#{project_name} --create"
|
47
|
+
end
|
48
|
+
end# rvm
|
49
|
+
|
50
|
+
context "Gemfile" do
|
51
|
+
before(:all) { generator.make_bundle }
|
52
|
+
|
53
|
+
it "creates a Gemfile" do
|
54
|
+
File.exists?("#{project_name}/Gemfile").should be_true
|
55
|
+
end
|
56
|
+
|
57
|
+
it "includes rspec on Gemfile" do
|
58
|
+
IO.read("#{project_name}/Gemfile").should include "gem \"rspec\""
|
59
|
+
end
|
60
|
+
end# Gemfile
|
61
|
+
|
62
|
+
context "Rakefile.rb" do
|
63
|
+
let(:rakefile) { "#{project_name}/Rakefile.rb" }
|
64
|
+
|
65
|
+
it "creates the file" do
|
66
|
+
generator.make_rake_file
|
67
|
+
File.exists?(rakefile).should be_true
|
68
|
+
end
|
69
|
+
|
70
|
+
context "tasks" do
|
71
|
+
require 'rake'
|
72
|
+
|
73
|
+
before(:all) do
|
74
|
+
require "./#{rakefile}"
|
75
|
+
end
|
76
|
+
|
77
|
+
it "enables :default" do
|
78
|
+
Rake::Task.task_defined?(:default).should be_true
|
79
|
+
end
|
80
|
+
|
81
|
+
it "enables :specs" do
|
82
|
+
Rake::Task.task_defined?(:specs).should be_true
|
83
|
+
end
|
84
|
+
|
85
|
+
it "enables specs:all" do
|
86
|
+
Rake::Task.task_defined?(:"specs:all").should be_true
|
87
|
+
end
|
88
|
+
end# tasks
|
89
|
+
end# rake file
|
90
|
+
|
91
|
+
context "bin dir" do
|
92
|
+
before :all do
|
93
|
+
generator.make_bin_dir
|
94
|
+
end
|
95
|
+
|
96
|
+
it "creates the bin dir" do
|
97
|
+
Dir.exists?("#{project_name}/bin").should be_true
|
98
|
+
end
|
99
|
+
|
100
|
+
it "creates the file" do
|
101
|
+
File.exists?("#{project_name}/bin/#{project_name}").should be_true
|
102
|
+
end
|
103
|
+
|
104
|
+
it "should be executable" do
|
105
|
+
File.executable?("#{project_name}/bin/#{project_name}").should be_true
|
106
|
+
end
|
107
|
+
end# bin dir
|
108
|
+
|
109
|
+
context "lib dir" do
|
110
|
+
before :all do
|
111
|
+
generator.make_lib_dir
|
112
|
+
end
|
113
|
+
|
114
|
+
it "creates de lib dir" do
|
115
|
+
Dir.exists?("#{project_name}/lib").should be_true
|
116
|
+
end
|
117
|
+
|
118
|
+
it "creates the project dir" do
|
119
|
+
Dir.exists?("#{project_name}/lib/#{project_name}").should be_true
|
120
|
+
end
|
121
|
+
|
122
|
+
context "project file" do
|
123
|
+
|
124
|
+
it "creates the file" do
|
125
|
+
File.exists?("#{project_name}/lib/#{project_name}.rb").should be_true
|
126
|
+
end
|
127
|
+
|
128
|
+
it "creates the module for the project" do
|
129
|
+
require "./#{project_name}/lib/#{project_name}.rb"
|
130
|
+
Object.const_defined?(project_name.camelize).should be_true
|
131
|
+
end
|
132
|
+
|
133
|
+
it "defines a version constant within the module" do
|
134
|
+
m = Object.const_get(project_name.camelize)
|
135
|
+
m::VERSION.should == "0.0.0"
|
136
|
+
end
|
137
|
+
end# project file
|
138
|
+
end# lib dir
|
139
|
+
|
140
|
+
context "spec dir" do
|
141
|
+
before :all do
|
142
|
+
generator.make_spec_dir
|
143
|
+
end
|
144
|
+
|
145
|
+
it "generate a spec dir" do
|
146
|
+
Dir.exists?("#{project_name}/spec").should be_true
|
147
|
+
end
|
148
|
+
|
149
|
+
it "generates a subdir on spec with the project name" do
|
150
|
+
Dir.exists?("#{project_name}/spec/#{project_name}").should be_true
|
151
|
+
end
|
152
|
+
|
153
|
+
it "creates the spec_helper.rb file" do
|
154
|
+
File.exists?("#{project_name}/spec/spec_helper.rb").should be_true
|
155
|
+
end
|
156
|
+
end # spec dir
|
157
|
+
end# project dir
|
158
|
+
|
159
|
+
after(:all) { FileUtils.rm_rf project_name }
|
160
|
+
|
161
|
+
end # Generator
|
162
|
+
end
|
@@ -0,0 +1,91 @@
|
|
1
|
+
module Skullet
|
2
|
+
|
3
|
+
describe "happy path, project creation using the executable" do
|
4
|
+
|
5
|
+
let(:executable) { File.expand_path("../../bin/skullet", __FILE__) }
|
6
|
+
let(:temp) do
|
7
|
+
temp = File.expand_path("../temp", __FILE__)
|
8
|
+
FileUtils.mkdir_p(temp)
|
9
|
+
temp
|
10
|
+
end
|
11
|
+
let(:project) { "project_test" }
|
12
|
+
let(:project_dir) { File.join(temp, project) }
|
13
|
+
|
14
|
+
before(:all) do
|
15
|
+
@current_path = Dir.pwd
|
16
|
+
FileUtils.chdir(temp)
|
17
|
+
end
|
18
|
+
|
19
|
+
it "-v, shows the version" do
|
20
|
+
%x(#{executable} -v).should include(Skullet::VERSION)
|
21
|
+
end
|
22
|
+
|
23
|
+
context "basic project structure" do
|
24
|
+
before(:all) do
|
25
|
+
system "#{executable} #{project}"
|
26
|
+
end
|
27
|
+
|
28
|
+
it "creates the project dir" do
|
29
|
+
Dir.exists?(project_dir).should be_true
|
30
|
+
end
|
31
|
+
|
32
|
+
it "creates the bin dir" do
|
33
|
+
Dir.exists?(File.join(project_dir, "bin")).should be_true
|
34
|
+
end
|
35
|
+
|
36
|
+
it "creates the executable" do
|
37
|
+
bin = File.join(project_dir, "bin")
|
38
|
+
File.exists?(File.join(bin, project)).should be_true
|
39
|
+
end
|
40
|
+
|
41
|
+
it "creates the lib dir" do
|
42
|
+
Dir.exists?(File.join(project_dir, "lib")).should be_true
|
43
|
+
end
|
44
|
+
|
45
|
+
it "creates the project dir" do
|
46
|
+
lib = File.join(project_dir, "lib")
|
47
|
+
Dir.exists?(File.join(lib, "#{project}")).should be_true
|
48
|
+
end
|
49
|
+
|
50
|
+
it "creates the project file" do
|
51
|
+
lib = File.join(project_dir, "lib")
|
52
|
+
File.exists?(File.join(lib, "#{project}.rb")).should be_true
|
53
|
+
end
|
54
|
+
|
55
|
+
it "creates the spec dir" do
|
56
|
+
Dir.exists?(File.join(project_dir, "spec")).should be_true
|
57
|
+
end
|
58
|
+
|
59
|
+
it "creates the application spec dir" do
|
60
|
+
spec = File.join(project_dir, "spec")
|
61
|
+
Dir.exists?(File.join(spec, project)).should be_true
|
62
|
+
end
|
63
|
+
|
64
|
+
it "creates the spec helper file" do
|
65
|
+
spec = File.join(project_dir, "spec")
|
66
|
+
File.exists?(File.join(spec, "spec_helper.rb")).should be_true
|
67
|
+
end
|
68
|
+
|
69
|
+
it "creates the .gitignore" do
|
70
|
+
File.exists?(File.join(project_dir, ".gitignore")).should be_true
|
71
|
+
end
|
72
|
+
|
73
|
+
it "creates the .rvmrc" do
|
74
|
+
File.exists?(File.join(project_dir, ".rvmrc")).should be_true
|
75
|
+
end
|
76
|
+
|
77
|
+
it "creates the Gemfile" do
|
78
|
+
File.exists?(File.join(project_dir, "Gemfile")).should be_true
|
79
|
+
end
|
80
|
+
|
81
|
+
it "creates the Rakefile.rb" do
|
82
|
+
File.exists?(File.join(project_dir, "Rakefile.rb")).should be_true
|
83
|
+
end
|
84
|
+
end# basic project structure
|
85
|
+
|
86
|
+
after(:all) do
|
87
|
+
FileUtils.chdir(@current_path)
|
88
|
+
FileUtils.rm_rf(temp)
|
89
|
+
end
|
90
|
+
end# happy path
|
91
|
+
end
|
data/spec/spec_helper.rb
ADDED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: skullet
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,16 +9,46 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-01-
|
13
|
-
dependencies:
|
14
|
-
|
12
|
+
date: 2012-01-16 00:00:00.000000000Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: rspec
|
16
|
+
requirement: &70231419247320 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :development
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *70231419247320
|
25
|
+
description: You don't have look for the dir structure, the basic spec files, a basic
|
26
|
+
.rmvrc file and such everytime you need to create a new Ruby project, automate it!
|
15
27
|
email:
|
16
28
|
- ricardo.valeriano@gmail.com
|
17
|
-
executables:
|
29
|
+
executables:
|
30
|
+
- skullet
|
18
31
|
extensions: []
|
19
32
|
extra_rdoc_files: []
|
20
|
-
files:
|
21
|
-
|
33
|
+
files:
|
34
|
+
- Rakefile.rb
|
35
|
+
- Readme.md
|
36
|
+
- bin/skullet
|
37
|
+
- lib/skullet.rb
|
38
|
+
- lib/skullet/base_files/Gemfile.rb
|
39
|
+
- lib/skullet/base_files/Rakefile.rb
|
40
|
+
- lib/skullet/base_files/executable.rb
|
41
|
+
- lib/skullet/base_files/project_file.erb
|
42
|
+
- lib/skullet/base_files/spec_helper.erb
|
43
|
+
- lib/skullet/cli.rb
|
44
|
+
- lib/skullet/generator.rb
|
45
|
+
- lib/skullet/string_extensions.rb
|
46
|
+
- skullet.gemspec
|
47
|
+
- spec/skullet/cli_spec.rb
|
48
|
+
- spec/skullet/generator_spec.rb
|
49
|
+
- spec/skullet_spec.rb
|
50
|
+
- spec/spec_helper.rb
|
51
|
+
homepage: http://github.com/ricardovaleriano/gemusta
|
22
52
|
licenses: []
|
23
53
|
post_install_message:
|
24
54
|
rdoc_options: []
|
@@ -41,5 +71,9 @@ rubyforge_project:
|
|
41
71
|
rubygems_version: 1.8.13
|
42
72
|
signing_key:
|
43
73
|
specification_version: 3
|
44
|
-
summary: Ruby project skeleton generator
|
45
|
-
test_files:
|
74
|
+
summary: A (one more) Ruby project skeleton generator, creates the initial dir structure.
|
75
|
+
test_files:
|
76
|
+
- spec/skullet/cli_spec.rb
|
77
|
+
- spec/skullet/generator_spec.rb
|
78
|
+
- spec/skullet_spec.rb
|
79
|
+
- spec/spec_helper.rb
|