beet 0.5.0 → 0.6.0
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.
- data/Rakefile +1 -1
- data/VERSION +1 -1
- data/beet.gemspec +16 -8
- data/bin/beet +0 -10
- data/lib/beet/{execution.rb → command_execution.rb} +1 -1
- data/lib/beet/executor.rb +10 -18
- data/lib/beet/file_system.rb +16 -2
- data/lib/beet/rails.rb +29 -5
- data/lib/beet/recipes/rails3/auth/devise.rb +8 -0
- data/lib/beet/recipes/rails3/clean_files.rb +3 -0
- data/lib/beet/recipes/rails3/css/reset.rb +10 -0
- data/lib/beet/recipes/rails3/db/mysql.rb +31 -0
- data/lib/beet/recipes/rails3/git.rb +8 -0
- data/lib/beet/recipes/rails3/js/jquery.rb +9 -0
- data/lib/beet/recipes/rails3/testing/cucumber.rb +13 -0
- data/lib/beet/recipes/rails3/testing/rspec.rb +15 -0
- metadata +23 -8
data/Rakefile
CHANGED
@@ -9,7 +9,7 @@ begin
|
|
9
9
|
gem.email = "jack.dempsey@gmail.com"
|
10
10
|
gem.homepage = "http://github.com/jackdempsey/beet"
|
11
11
|
gem.authors = ["Jack Dempsey"]
|
12
|
-
gem.add_dependency "thor", "~> 0.
|
12
|
+
gem.add_dependency "thor", "~> 0.14.0"
|
13
13
|
# gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
|
14
14
|
end
|
15
15
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.6.0
|
data/beet.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{beet}
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.6.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Jack Dempsey"]
|
12
|
-
s.date = %q{2010-
|
12
|
+
s.date = %q{2010-08-31}
|
13
13
|
s.default_executable = %q{beet}
|
14
14
|
s.email = %q{jack.dempsey@gmail.com}
|
15
15
|
s.executables = ["beet"]
|
@@ -34,7 +34,7 @@ Gem::Specification.new do |s|
|
|
34
34
|
"features/support/env.rb",
|
35
35
|
"lib/beet.rb",
|
36
36
|
"lib/beet/capistrano.rb",
|
37
|
-
"lib/beet/
|
37
|
+
"lib/beet/command_execution.rb",
|
38
38
|
"lib/beet/executor.rb",
|
39
39
|
"lib/beet/file_system.rb",
|
40
40
|
"lib/beet/files/swfupload/images/cancelbutton.gif",
|
@@ -65,6 +65,14 @@ Gem::Specification.new do |s|
|
|
65
65
|
"lib/beet/recipes/rails/swfupload.rb",
|
66
66
|
"lib/beet/recipes/rails/testing/rspec.rb",
|
67
67
|
"lib/beet/recipes/rails/testing/shoulda.rb",
|
68
|
+
"lib/beet/recipes/rails3/auth/devise.rb",
|
69
|
+
"lib/beet/recipes/rails3/clean_files.rb",
|
70
|
+
"lib/beet/recipes/rails3/css/reset.rb",
|
71
|
+
"lib/beet/recipes/rails3/db/mysql.rb",
|
72
|
+
"lib/beet/recipes/rails3/git.rb",
|
73
|
+
"lib/beet/recipes/rails3/js/jquery.rb",
|
74
|
+
"lib/beet/recipes/rails3/testing/cucumber.rb",
|
75
|
+
"lib/beet/recipes/rails3/testing/rspec.rb",
|
68
76
|
"lib/beet/scm.rb",
|
69
77
|
"lib/beet/scm/git.rb",
|
70
78
|
"lib/beet/scm/svn.rb",
|
@@ -76,7 +84,7 @@ Gem::Specification.new do |s|
|
|
76
84
|
s.homepage = %q{http://github.com/jackdempsey/beet}
|
77
85
|
s.rdoc_options = ["--charset=UTF-8"]
|
78
86
|
s.require_paths = ["lib"]
|
79
|
-
s.rubygems_version = %q{1.3.
|
87
|
+
s.rubygems_version = %q{1.3.7}
|
80
88
|
s.summary = %q{A gem to help with easily generating projects}
|
81
89
|
s.test_files = [
|
82
90
|
"test/executor_test.rb",
|
@@ -88,13 +96,13 @@ Gem::Specification.new do |s|
|
|
88
96
|
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
89
97
|
s.specification_version = 3
|
90
98
|
|
91
|
-
if Gem::Version.new(Gem::
|
92
|
-
s.add_runtime_dependency(%q<thor>, ["~> 0.
|
99
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
100
|
+
s.add_runtime_dependency(%q<thor>, ["~> 0.14.0"])
|
93
101
|
else
|
94
|
-
s.add_dependency(%q<thor>, ["~> 0.
|
102
|
+
s.add_dependency(%q<thor>, ["~> 0.14.0"])
|
95
103
|
end
|
96
104
|
else
|
97
|
-
s.add_dependency(%q<thor>, ["~> 0.
|
105
|
+
s.add_dependency(%q<thor>, ["~> 0.14.0"])
|
98
106
|
end
|
99
107
|
end
|
100
108
|
|
data/bin/beet
CHANGED
@@ -103,16 +103,6 @@ class BeetRunner < Thor
|
|
103
103
|
}
|
104
104
|
end
|
105
105
|
end
|
106
|
-
def method_missing(*args)
|
107
|
-
unless @activesupport_required
|
108
|
-
require 'activesupport'
|
109
|
-
@activesupport_required = true
|
110
|
-
m = args.shift
|
111
|
-
send(m, *args)
|
112
|
-
else
|
113
|
-
super
|
114
|
-
end
|
115
|
-
end
|
116
106
|
|
117
107
|
BeetRunner.start
|
118
108
|
|
data/lib/beet/executor.rb
CHANGED
@@ -5,7 +5,7 @@ require 'yaml'
|
|
5
5
|
module Beet
|
6
6
|
class Executor
|
7
7
|
BEET_DATA_FILE = "~/.beet.yml"
|
8
|
-
include Beet::
|
8
|
+
include Beet::CommandExecution
|
9
9
|
include Beet::FileSystem
|
10
10
|
include Beet::Interaction
|
11
11
|
|
@@ -25,7 +25,7 @@ module Beet
|
|
25
25
|
@options = options
|
26
26
|
@todo_items = ''
|
27
27
|
@recipes = []
|
28
|
-
@project_type = options[:project_type].to_sym || :
|
28
|
+
@project_type = (options[:project_type] && options[:project_type].to_sym) || :rails3
|
29
29
|
@generate = true unless options[:generate] == false
|
30
30
|
@display = options[:display]
|
31
31
|
extract_commands_from_options
|
@@ -45,24 +45,16 @@ module Beet
|
|
45
45
|
if @display && @template
|
46
46
|
puts open(TEMPLATE_LOCATIONS[@template]).read
|
47
47
|
else
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
if @
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
else
|
57
|
-
system("rails3 #{project_name}")
|
58
|
-
end
|
48
|
+
if @generate
|
49
|
+
# TODO maybe let people specify path to rails 3 script rather than just assume its 'rails'
|
50
|
+
if @project_type == :rails3
|
51
|
+
puts "Generating rails 3 project #{project_name}..."
|
52
|
+
if @template
|
53
|
+
system("rails new #{project_name} -m #{TEMPLATE_LOCATIONS[@template]}")
|
54
|
+
else
|
55
|
+
system("rails new #{project_name}")
|
59
56
|
end
|
60
57
|
else
|
61
|
-
puts "Beet relies on you defining a rails3 command to build rails 3 projects. Please make sure one is available in your PATH."
|
62
|
-
exit
|
63
|
-
end
|
64
|
-
when :rails
|
65
|
-
if @generate
|
66
58
|
puts "Generating rails project #{project_name}..."
|
67
59
|
if @template
|
68
60
|
system("rails #{project_name} -m #{TEMPLATE_LOCATIONS[@template]}")
|
data/lib/beet/file_system.rb
CHANGED
@@ -87,9 +87,8 @@ module Beet
|
|
87
87
|
#
|
88
88
|
# gsub_file 'app/controllers/application_controller.rb', /#\s*(filter_parameter_logging :password)/, '\1'
|
89
89
|
#
|
90
|
-
def gsub_file(
|
90
|
+
def gsub_file(path, regexp, *args, &block)
|
91
91
|
#path = destination_path(relative_destination)
|
92
|
-
path = relative_destination
|
93
92
|
content = File.read(path)
|
94
93
|
check_for = args.first || yield('')
|
95
94
|
regex = Regexp.new(regexp.source + Regexp.escape(check_for))
|
@@ -121,6 +120,21 @@ module Beet
|
|
121
120
|
end
|
122
121
|
end
|
123
122
|
|
123
|
+
# Add text after matching line, otherwise append to file wrapped in before/after text
|
124
|
+
#
|
125
|
+
# ==== Example
|
126
|
+
#
|
127
|
+
# add_after_or_append 'Gemfile', 'group :test', "gem 'rspec-rails'", "group :test do", "end"
|
128
|
+
#
|
129
|
+
def add_after_or_append(filename, matching_text, text_to_add, before_text, after_text)
|
130
|
+
content = File.read(filename)
|
131
|
+
if content.include?(matching_text)
|
132
|
+
add_after(filename, matching_text, text_to_add)
|
133
|
+
else
|
134
|
+
append_file(filename, [before_text, text_to_add, after_text].join("\n"))
|
135
|
+
end
|
136
|
+
end
|
137
|
+
|
124
138
|
# Add text before matching line
|
125
139
|
#
|
126
140
|
# ==== Example
|
data/lib/beet/rails.rb
CHANGED
@@ -53,22 +53,46 @@ module Beet
|
|
53
53
|
end
|
54
54
|
end
|
55
55
|
|
56
|
+
def gem_group(group)
|
57
|
+
@_gem_group = group
|
58
|
+
yield
|
59
|
+
@_gem_group = nil
|
60
|
+
end
|
61
|
+
|
56
62
|
# Adds an entry into config/environment.rb for the supplied gem :
|
57
63
|
def gem(name, options = {})
|
58
64
|
log 'gem', name
|
59
|
-
|
65
|
+
group = options.delete(:group) || @_gem_group
|
66
|
+
version = options.delete(:version)
|
60
67
|
|
61
|
-
gems_code = "
|
68
|
+
gems_code = "gem '#{name}'"
|
69
|
+
gems_code << ", '#{version}'" if version
|
62
70
|
|
63
71
|
if options.any?
|
64
72
|
opts = options.inject([]) {|result, h| result << [":#{h[0]} => #{h[1].inspect.gsub('"',"'")}"] }.sort.join(", ")
|
65
73
|
gems_code << ", #{opts}"
|
66
74
|
end
|
67
75
|
|
68
|
-
|
76
|
+
gemfile(gems_code, :group => group)
|
77
|
+
end
|
78
|
+
|
79
|
+
# Adds a line inside the Gemfile. Used by #gem
|
80
|
+
# If options :group is specified, the line is added inside the corresponding group
|
81
|
+
def gemfile(data, options={})
|
82
|
+
if group = options[:group]
|
83
|
+
if group.is_a?(Array)
|
84
|
+
group.each do |g|
|
85
|
+
add_after_or_append "Gemfile", "group :#{g} do", "\s\s" + data, "group :#{g} do", "end\n"
|
86
|
+
end
|
87
|
+
else
|
88
|
+
add_after_or_append "Gemfile", "group :#{group} do", "\s\s" + data, "group :#{group} do", "end\n"
|
89
|
+
end
|
90
|
+
else
|
91
|
+
append_file "Gemfile", data
|
92
|
+
end
|
69
93
|
end
|
70
94
|
|
71
|
-
# Adds a line inside the Initializer block for config/environment.rb.
|
95
|
+
# Adds a line inside the Initializer block for config/environment.rb.
|
72
96
|
# If options :env is specified, the line is appended to the corresponding
|
73
97
|
# file in config/environments/#{env}.rb
|
74
98
|
def environment(data = nil, options = {}, &block)
|
@@ -140,7 +164,7 @@ module Beet
|
|
140
164
|
log 'generating', what
|
141
165
|
argument = args.map {|arg| arg.to_s }.flatten.join(" ")
|
142
166
|
|
143
|
-
in_root { run_ruby_script("script/generate #{what} #{argument}", false) }
|
167
|
+
in_root { run_ruby_script("script/rails generate #{what} #{argument}", false) }
|
144
168
|
end
|
145
169
|
end # Rails
|
146
170
|
end # Beet
|
@@ -0,0 +1,10 @@
|
|
1
|
+
reset_file_location = "http://developer.yahoo.com/yui/build/reset/reset.css"
|
2
|
+
unless File.exists?('public/stylesheets/reset.css')
|
3
|
+
begin
|
4
|
+
file "public/stylesheets/reset.css" do
|
5
|
+
open(reset_file_location).read
|
6
|
+
end
|
7
|
+
rescue
|
8
|
+
"Couldn't load #{reset_file_location}"
|
9
|
+
end
|
10
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
file 'config/database.yml' do
|
2
|
+
%{
|
3
|
+
---
|
4
|
+
development: &defaults
|
5
|
+
adapter: mysql
|
6
|
+
encoding: utf8
|
7
|
+
reconnect: false
|
8
|
+
database: #{project_name}_development
|
9
|
+
pool: 5
|
10
|
+
username: root
|
11
|
+
password:
|
12
|
+
|
13
|
+
# Warning: The database defined as "test" will be erased and
|
14
|
+
# re-generated from your development database when you run "rake".
|
15
|
+
# Do not set this db to the same as development or production.
|
16
|
+
test:
|
17
|
+
<<: *defaults
|
18
|
+
database: #{project_name}_test
|
19
|
+
|
20
|
+
production:
|
21
|
+
<<: *defaults
|
22
|
+
database: #{project_name}_production
|
23
|
+
}
|
24
|
+
end
|
25
|
+
|
26
|
+
FileUtils.copy "config/database.yml", "config/database.yml.example"
|
27
|
+
|
28
|
+
if yes?("Create databases using rake db:create:all?")
|
29
|
+
rake "db:create:all"
|
30
|
+
end
|
31
|
+
|
@@ -0,0 +1,9 @@
|
|
1
|
+
%w(application controls dragdrop effects prototype rails).each do |filename|
|
2
|
+
FileUtils.rm("public/javascripts/#{filename}.js")
|
3
|
+
end
|
4
|
+
|
5
|
+
run "curl -L http://jqueryjs.googlecode.com/files/jquery-1.4.1.min.js > public/javascripts/jquery.js"
|
6
|
+
run "curl -L http://jqueryjs.googlecode.com/svn/trunk/plugins/form/jquery.form.js > public/javascripts/jquery.form.js"
|
7
|
+
run "curl -L http://github.com/rails/jquery-ujs/raw/master/src/rails.js > public/javascripts/rails.js"
|
8
|
+
|
9
|
+
prepend_file 'public/javascripts/rails.js', %{jQuery.ajaxSetup({'beforeSend': function(xhr) {xhr.setRequestHeader("Accept", "text/javascript");}})}
|
@@ -0,0 +1,13 @@
|
|
1
|
+
gem_group :cucumber do
|
2
|
+
gem 'capybara'
|
3
|
+
gem 'database_cleaner'
|
4
|
+
gem 'cucumber-rails'
|
5
|
+
gem 'cucumber', :version => '0.7.3'
|
6
|
+
gem 'rspec-rails', :version => '~> 2.0.0.beta.19'
|
7
|
+
gem 'spork'
|
8
|
+
gem 'launchy'
|
9
|
+
end
|
10
|
+
|
11
|
+
run 'bundle install'
|
12
|
+
|
13
|
+
generate 'cucumber:skeleton --rspec --capybara'
|
@@ -0,0 +1,15 @@
|
|
1
|
+
gem 'rspec-rails', :version => '~> 2.0.0.beta.19', :group => [:development,:test]
|
2
|
+
|
3
|
+
run "bundle install"
|
4
|
+
|
5
|
+
generate "rspec:install"
|
6
|
+
|
7
|
+
in_root do
|
8
|
+
add_after 'config/application.rb', 'class Application < Rails::Application' do
|
9
|
+
%{
|
10
|
+
config.generators do |g|
|
11
|
+
g.test_framework :rspec
|
12
|
+
end
|
13
|
+
}
|
14
|
+
end
|
15
|
+
end
|
metadata
CHANGED
@@ -1,12 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: beet
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
+
hash: 7
|
4
5
|
prerelease: false
|
5
6
|
segments:
|
6
7
|
- 0
|
7
|
-
-
|
8
|
+
- 6
|
8
9
|
- 0
|
9
|
-
version: 0.
|
10
|
+
version: 0.6.0
|
10
11
|
platform: ruby
|
11
12
|
authors:
|
12
13
|
- Jack Dempsey
|
@@ -14,21 +15,23 @@ autorequire:
|
|
14
15
|
bindir: bin
|
15
16
|
cert_chain: []
|
16
17
|
|
17
|
-
date: 2010-
|
18
|
+
date: 2010-08-31 00:00:00 -04:00
|
18
19
|
default_executable: beet
|
19
20
|
dependencies:
|
20
21
|
- !ruby/object:Gem::Dependency
|
21
22
|
name: thor
|
22
23
|
prerelease: false
|
23
24
|
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
24
26
|
requirements:
|
25
27
|
- - ~>
|
26
28
|
- !ruby/object:Gem::Version
|
29
|
+
hash: 39
|
27
30
|
segments:
|
28
31
|
- 0
|
29
|
-
-
|
30
|
-
-
|
31
|
-
version: 0.
|
32
|
+
- 14
|
33
|
+
- 0
|
34
|
+
version: 0.14.0
|
32
35
|
type: :runtime
|
33
36
|
version_requirements: *id001
|
34
37
|
description:
|
@@ -57,7 +60,7 @@ files:
|
|
57
60
|
- features/support/env.rb
|
58
61
|
- lib/beet.rb
|
59
62
|
- lib/beet/capistrano.rb
|
60
|
-
- lib/beet/
|
63
|
+
- lib/beet/command_execution.rb
|
61
64
|
- lib/beet/executor.rb
|
62
65
|
- lib/beet/file_system.rb
|
63
66
|
- lib/beet/files/swfupload/images/cancelbutton.gif
|
@@ -88,6 +91,14 @@ files:
|
|
88
91
|
- lib/beet/recipes/rails/swfupload.rb
|
89
92
|
- lib/beet/recipes/rails/testing/rspec.rb
|
90
93
|
- lib/beet/recipes/rails/testing/shoulda.rb
|
94
|
+
- lib/beet/recipes/rails3/auth/devise.rb
|
95
|
+
- lib/beet/recipes/rails3/clean_files.rb
|
96
|
+
- lib/beet/recipes/rails3/css/reset.rb
|
97
|
+
- lib/beet/recipes/rails3/db/mysql.rb
|
98
|
+
- lib/beet/recipes/rails3/git.rb
|
99
|
+
- lib/beet/recipes/rails3/js/jquery.rb
|
100
|
+
- lib/beet/recipes/rails3/testing/cucumber.rb
|
101
|
+
- lib/beet/recipes/rails3/testing/rspec.rb
|
91
102
|
- lib/beet/scm.rb
|
92
103
|
- lib/beet/scm/git.rb
|
93
104
|
- lib/beet/scm/svn.rb
|
@@ -105,23 +116,27 @@ rdoc_options:
|
|
105
116
|
require_paths:
|
106
117
|
- lib
|
107
118
|
required_ruby_version: !ruby/object:Gem::Requirement
|
119
|
+
none: false
|
108
120
|
requirements:
|
109
121
|
- - ">="
|
110
122
|
- !ruby/object:Gem::Version
|
123
|
+
hash: 3
|
111
124
|
segments:
|
112
125
|
- 0
|
113
126
|
version: "0"
|
114
127
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
128
|
+
none: false
|
115
129
|
requirements:
|
116
130
|
- - ">="
|
117
131
|
- !ruby/object:Gem::Version
|
132
|
+
hash: 3
|
118
133
|
segments:
|
119
134
|
- 0
|
120
135
|
version: "0"
|
121
136
|
requirements: []
|
122
137
|
|
123
138
|
rubyforge_project:
|
124
|
-
rubygems_version: 1.3.
|
139
|
+
rubygems_version: 1.3.7
|
125
140
|
signing_key:
|
126
141
|
specification_version: 3
|
127
142
|
summary: A gem to help with easily generating projects
|