appsta 1.0.0 → 1.1.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/Manifest.txt +4 -2
- data/README.rdoc +4 -8
- data/Rakefile +3 -2
- data/lib/appsta.rb +6 -2
- data/lib/appsta/default_files.rb +10 -0
- data/lib/appsta/git.rb +7 -0
- data/lib/appsta/jquery.rb +9 -0
- data/test/test_default_files.rb +19 -0
- data/test/test_git.rb +14 -0
- data/test/test_jquery.rb +23 -0
- metadata +17 -14
- data/bin/appsta +0 -35
- data/lib/template.rb +0 -45
data/Manifest.txt
CHANGED
@@ -3,18 +3,20 @@ Manifest.txt
|
|
3
3
|
PostInstall.txt
|
4
4
|
README.rdoc
|
5
5
|
Rakefile
|
6
|
-
bin/appsta
|
7
6
|
lib/appsta.rb
|
7
|
+
lib/appsta/default_files.rb
|
8
8
|
lib/appsta/heroku.rb
|
9
9
|
lib/appsta/github.rb
|
10
10
|
lib/appsta/git.rb
|
11
|
-
lib/
|
11
|
+
lib/appsta/jquery.rb
|
12
12
|
resources/README.erb
|
13
13
|
resources/index.html.erb
|
14
14
|
script/console
|
15
15
|
script/destroy
|
16
16
|
script/generate
|
17
|
+
test/test_default_files.rb
|
17
18
|
test/test_heroku.rb
|
18
19
|
test/test_github.rb
|
19
20
|
test/test_git.rb
|
20
21
|
test/test_helper.rb
|
22
|
+
test/test_jquery.rb
|
data/README.rdoc
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
= appsta
|
2
2
|
|
3
3
|
* http://appsta.com
|
4
|
-
* http://github.com/
|
4
|
+
* http://github.com/ejdraper/appsta
|
5
5
|
|
6
6
|
== DESCRIPTION:
|
7
7
|
|
@@ -10,23 +10,19 @@
|
|
10
10
|
== FEATURES:
|
11
11
|
|
12
12
|
* It provides a helper library for writing Rails templates, to quickly setup your projects on Heroku, GitHub, and other things to get your app up and running quickly.
|
13
|
-
* It also provides a command line tool to quickly create applications using a default template that uses the Appsta helper library to get you up to speed nice and quickly.
|
14
13
|
|
15
14
|
== SYNOPSIS:
|
16
15
|
|
17
|
-
* You can
|
18
|
-
|
19
|
-
appsta <app_name>
|
20
|
-
|
21
|
-
* You can also use the Appsta helper methods in your own templates, by requiring the Appsta library and loading it within the template:
|
16
|
+
* You can use the Appsta helper methods in your own templates, by requiring the Appsta library and loading it within the template:
|
22
17
|
|
23
18
|
require "appsta"
|
24
19
|
Appsta.load
|
25
20
|
|
26
|
-
* For an idea of the functionality available within the template helpers,
|
21
|
+
* For an idea of the functionality available within the template helpers, please review the helpers defined in lib/appsta, or take a look at the docs on GitHub.
|
27
22
|
|
28
23
|
== REQUIREMENTS:
|
29
24
|
|
25
|
+
* rails (v2.3 and above)
|
30
26
|
* heroku
|
31
27
|
* rest_client
|
32
28
|
|
data/Rakefile
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
require 'rubygems' unless ENV['NO_RUBYGEMS']
|
2
|
-
%w[rake rake/clean fileutils newgem rubigen].each { |f| require f }
|
2
|
+
%w[rake rake/clean fileutils newgem rubigen hoe].each { |f| require f }
|
3
3
|
require File.dirname(__FILE__) + '/lib/appsta'
|
4
4
|
|
5
5
|
# Generate all the Rake tasks
|
@@ -14,7 +14,8 @@ $hoe = Hoe.new('appsta', Appsta::VERSION) do |p|
|
|
14
14
|
]
|
15
15
|
p.extra_dev_deps = [
|
16
16
|
['newgem', ">= #{::Newgem::VERSION}"]
|
17
|
-
|
17
|
+
]
|
18
|
+
p.summary = "Appsta is designed to make bootstrapping new Rails applications much easier."
|
18
19
|
|
19
20
|
p.clean_globs |= %w[**/.DS_Store tmp *.log]
|
20
21
|
path = (p.rubyforge_name == p.name) ? p.rubyforge_name : "\#{p.rubyforge_name}/\#{p.name}"
|
data/lib/appsta.rb
CHANGED
@@ -1,13 +1,17 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), "appsta", "default_files")
|
1
2
|
require File.join(File.dirname(__FILE__), "appsta", "heroku")
|
2
3
|
require File.join(File.dirname(__FILE__), "appsta", "github")
|
3
4
|
require File.join(File.dirname(__FILE__), "appsta", "git")
|
5
|
+
require File.join(File.dirname(__FILE__), "appsta", "jquery")
|
4
6
|
|
5
7
|
module Appsta
|
6
|
-
VERSION = "1.
|
7
|
-
|
8
|
+
VERSION = "1.1.0"
|
9
|
+
|
10
|
+
include Appsta::DefaultFiles
|
8
11
|
include Appsta::Heroku
|
9
12
|
include Appsta::GitHub
|
10
13
|
include Appsta::Git
|
14
|
+
include Appsta::JQuery
|
11
15
|
|
12
16
|
class << self
|
13
17
|
# This loads Appsta so that it's methods are available to the template runner
|
@@ -0,0 +1,10 @@
|
|
1
|
+
module Appsta
|
2
|
+
module DefaultFiles
|
3
|
+
# This removes some of the default files that we don't really need for a fresh Rails app
|
4
|
+
def remove_default_files
|
5
|
+
["README", "public/index.html", "public/favicon.ico"].each do |path|
|
6
|
+
run "rm -f #{path}"
|
7
|
+
end
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
data/lib/appsta/git.rb
CHANGED
@@ -0,0 +1,9 @@
|
|
1
|
+
module Appsta
|
2
|
+
module JQuery
|
3
|
+
# This removes existing built-in JS and switches to jQuery for your Rails app
|
4
|
+
def use_jquery(version = "1.3.2")
|
5
|
+
run "rm -f public/javascripts/*"
|
6
|
+
run "curl -s -L http://jqueryjs.googlecode.com/files/jquery-#{version}.min.js > public/javascripts/jquery.js"
|
7
|
+
end
|
8
|
+
end
|
9
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), "test_helper")
|
2
|
+
|
3
|
+
class RunDefaultFiles
|
4
|
+
include Appsta::DefaultFiles
|
5
|
+
end
|
6
|
+
|
7
|
+
class TestDefaultFiles < Test::Unit::TestCase
|
8
|
+
context "Removing default files" do
|
9
|
+
setup do
|
10
|
+
RunDefaultFiles.any_instance.expects(:run).with("rm -f README")
|
11
|
+
RunDefaultFiles.any_instance.expects(:run).with("rm -f public/index.html")
|
12
|
+
RunDefaultFiles.any_instance.expects(:run).with("rm -f public/favicon.ico")
|
13
|
+
end
|
14
|
+
|
15
|
+
should "not fail" do
|
16
|
+
assert true, RunDefaultFiles.new.remove_default_files
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
data/test/test_git.rb
CHANGED
@@ -28,6 +28,20 @@ class TestGit < Test::Unit::TestCase
|
|
28
28
|
assert true, RunGit.new.git_setup(CUSTOM_MESSAGE)
|
29
29
|
end
|
30
30
|
end
|
31
|
+
|
32
|
+
context "Pushing Git" do
|
33
|
+
should "not fail to a single remote" do
|
34
|
+
RunGit.any_instance.expects(:git).with(:push => "origin master")
|
35
|
+
assert true, RunGit.new.git_push(:origin)
|
36
|
+
end
|
37
|
+
|
38
|
+
should "not fail to multiple remotes" do
|
39
|
+
RunGit.any_instance.expects(:git).with(:push => "origin master")
|
40
|
+
RunGit.any_instance.expects(:git).with(:push => "staging master")
|
41
|
+
RunGit.any_instance.expects(:git).with(:push => "production master")
|
42
|
+
assert true, RunGit.new.git_push(:origin, :staging, :production)
|
43
|
+
end
|
44
|
+
end
|
31
45
|
|
32
46
|
# This sets up the mocks common to all contexts
|
33
47
|
def setup_base_mocks
|
data/test/test_jquery.rb
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), "test_helper")
|
2
|
+
|
3
|
+
class RunJQuery
|
4
|
+
include Appsta::JQuery
|
5
|
+
end
|
6
|
+
|
7
|
+
class TestJQuery < Test::Unit::TestCase
|
8
|
+
context "Switching to jQuery" do
|
9
|
+
setup do
|
10
|
+
RunJQuery.any_instance.expects(:run).with("rm -f public/javascripts/*")
|
11
|
+
end
|
12
|
+
|
13
|
+
should "not fail" do
|
14
|
+
RunJQuery.any_instance.expects(:run).with("curl -s -L http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js > public/javascripts/jquery.js")
|
15
|
+
assert true, RunJQuery.new.use_jquery
|
16
|
+
end
|
17
|
+
|
18
|
+
should "not fail for a specific version of jQuery" do
|
19
|
+
RunJQuery.any_instance.expects(:run).with("curl -s -L http://jqueryjs.googlecode.com/files/jquery-1.3.3.min.js > public/javascripts/jquery.js")
|
20
|
+
assert true, RunJQuery.new.use_jquery("1.3.3")
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: appsta
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Elliott Draper
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-12-21 00:00:00 +00:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -40,7 +40,7 @@ dependencies:
|
|
40
40
|
requirements:
|
41
41
|
- - ">="
|
42
42
|
- !ruby/object:Gem::Version
|
43
|
-
version: 1.
|
43
|
+
version: 1.5.2
|
44
44
|
version:
|
45
45
|
- !ruby/object:Gem::Dependency
|
46
46
|
name: hoe
|
@@ -50,49 +50,50 @@ dependencies:
|
|
50
50
|
requirements:
|
51
51
|
- - ">="
|
52
52
|
- !ruby/object:Gem::Version
|
53
|
-
version:
|
53
|
+
version: 2.3.2
|
54
54
|
version:
|
55
|
-
description: "
|
55
|
+
description: ""
|
56
56
|
email:
|
57
57
|
- el@ejdraper.com
|
58
|
-
executables:
|
59
|
-
|
58
|
+
executables: []
|
59
|
+
|
60
60
|
extensions: []
|
61
61
|
|
62
62
|
extra_rdoc_files:
|
63
63
|
- History.txt
|
64
64
|
- Manifest.txt
|
65
65
|
- PostInstall.txt
|
66
|
-
- README.rdoc
|
67
66
|
files:
|
68
67
|
- History.txt
|
69
68
|
- Manifest.txt
|
70
69
|
- PostInstall.txt
|
71
70
|
- README.rdoc
|
72
71
|
- Rakefile
|
73
|
-
- bin/appsta
|
74
72
|
- lib/appsta.rb
|
73
|
+
- lib/appsta/default_files.rb
|
75
74
|
- lib/appsta/heroku.rb
|
76
75
|
- lib/appsta/github.rb
|
77
76
|
- lib/appsta/git.rb
|
78
|
-
- lib/
|
77
|
+
- lib/appsta/jquery.rb
|
79
78
|
- resources/README.erb
|
80
79
|
- resources/index.html.erb
|
81
80
|
- script/console
|
82
81
|
- script/destroy
|
83
82
|
- script/generate
|
83
|
+
- test/test_default_files.rb
|
84
84
|
- test/test_heroku.rb
|
85
85
|
- test/test_github.rb
|
86
86
|
- test/test_git.rb
|
87
87
|
- test/test_helper.rb
|
88
|
+
- test/test_jquery.rb
|
88
89
|
has_rdoc: true
|
89
|
-
homepage:
|
90
|
+
homepage:
|
90
91
|
licenses: []
|
91
92
|
|
92
93
|
post_install_message: PostInstall.txt
|
93
94
|
rdoc_options:
|
94
95
|
- --main
|
95
|
-
- README.
|
96
|
+
- README.txt
|
96
97
|
require_paths:
|
97
98
|
- lib
|
98
99
|
required_ruby_version: !ruby/object:Gem::Requirement
|
@@ -110,13 +111,15 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
110
111
|
requirements: []
|
111
112
|
|
112
113
|
rubyforge_project: appsta
|
113
|
-
rubygems_version: 1.3.
|
114
|
+
rubygems_version: 1.3.5
|
114
115
|
signing_key:
|
115
116
|
specification_version: 3
|
116
|
-
summary:
|
117
|
+
summary: Appsta is designed to make bootstrapping new Rails applications much easier.
|
117
118
|
test_files:
|
118
119
|
- test/test_appsta.rb
|
120
|
+
- test/test_default_files.rb
|
119
121
|
- test/test_git.rb
|
120
122
|
- test/test_github.rb
|
121
123
|
- test/test_helper.rb
|
122
124
|
- test/test_heroku.rb
|
125
|
+
- test/test_jquery.rb
|
data/bin/appsta
DELETED
@@ -1,35 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
# Load what we need
|
4
|
-
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
|
5
|
-
require "rubygems"
|
6
|
-
require "appsta"
|
7
|
-
|
8
|
-
# Display the Appsta version
|
9
|
-
def display_version
|
10
|
-
puts "Appsta (#{Appsta::VERSION})"
|
11
|
-
end
|
12
|
-
|
13
|
-
# Handle the help command, also display it when no arguments are specified
|
14
|
-
if ARGV.empty? || ARGV[0] == "-h" || ARGV[0] == "--help"
|
15
|
-
display_version
|
16
|
-
puts " -h, --help : display this help message"
|
17
|
-
puts " -v, --version : display the Appsta version"
|
18
|
-
puts " appsta <name> : create a Rails application using Appsta with the specified name"
|
19
|
-
puts ""
|
20
|
-
puts "By default, Appsta will initialize a local Git repository, setup your application"
|
21
|
-
puts "on Heroku with two environments (production and staging) and will also setup your"
|
22
|
-
puts "project repository on GitHub. It will also setup some useful gems and libraries."
|
23
|
-
elsif ARGV[0] == "-v" || ARGV[0] == "--version"
|
24
|
-
# This displays the Appsta version
|
25
|
-
display_version
|
26
|
-
elsif ARGV[0][0...1] == "-"
|
27
|
-
# This handles unknown commands
|
28
|
-
display_version
|
29
|
-
puts "Unknown command #{ARGV[0]}"
|
30
|
-
else
|
31
|
-
# This actually creates the application specified
|
32
|
-
display_version
|
33
|
-
puts "Creating application #{ARGV[0]}"
|
34
|
-
Kernel.system "rails -m #{File.join(File.dirname(__FILE__), "..", "lib", "template.rb")} #{ARGV[0]}"
|
35
|
-
end
|
data/lib/template.rb
DELETED
@@ -1,45 +0,0 @@
|
|
1
|
-
require "appsta"
|
2
|
-
Appsta.load
|
3
|
-
|
4
|
-
# This works out the name of the app
|
5
|
-
name = File.basename(Dir.pwd)
|
6
|
-
|
7
|
-
# Remove certain files
|
8
|
-
["README", "public/index.html", "public/favicon.ico", "public/javascripts/*"].each do |path|
|
9
|
-
run "rm -f #{path}"
|
10
|
-
end
|
11
|
-
|
12
|
-
# Grab jQuery for use in the app
|
13
|
-
run "curl -s -L http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js > public/javascripts/jquery.js"
|
14
|
-
|
15
|
-
# Setup the gems we want, including the creation of the Heroku gem manifest
|
16
|
-
gems = [
|
17
|
-
{:name => "thoughtbot-shoulda", :lib => "shoulda", :source => "http://gems.github.com"},
|
18
|
-
{:name => "mocha"},
|
19
|
-
{:name => "cucumber"},
|
20
|
-
{:name => "hpricot"},
|
21
|
-
{:name => "authlogic"}
|
22
|
-
]
|
23
|
-
heroku_gems gems
|
24
|
-
|
25
|
-
# Install all the gems we need
|
26
|
-
rake "gems:install", :sudo => true
|
27
|
-
|
28
|
-
# Setup the Git repo
|
29
|
-
git_setup
|
30
|
-
|
31
|
-
# Setup the app on Heroku
|
32
|
-
heroku_urls = []
|
33
|
-
[:production, :staging].each { |env| heroku_urls << heroku(env) }
|
34
|
-
|
35
|
-
# Setup the project repo on GitHub
|
36
|
-
github_url = github
|
37
|
-
|
38
|
-
# Setup the index.html and README files that Appsta auto-generates
|
39
|
-
file "README", ERB.new(File.read(File.join(Appsta.resources_path, "README.erb"))).result(binding)
|
40
|
-
file "public/index.html", ERB.new(File.read(File.join(Appsta.resources_path, "index.html.erb"))).result(binding)
|
41
|
-
|
42
|
-
# Update the git repo with our changes and push them
|
43
|
-
git :add => "."
|
44
|
-
git :commit => "-a -m 'added README and public/index.html'"
|
45
|
-
[:origin, :production, :staging].each { |remote| git(:push => "#{remote} master") }
|