ffmike-suprails 0.1.1
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/.suprails.example +115 -0
- data/COPYING +674 -0
- data/README +78 -0
- data/TODO +29 -0
- data/bin/suprails +70 -0
- data/facets/haml.rb +28 -0
- data/lib/db.rb +73 -0
- data/lib/facet.rb +52 -0
- data/lib/gems.rb +81 -0
- data/lib/runner.rb +170 -0
- data/lib/suprails.rb +47 -0
- metadata +71 -0
data/README
ADDED
@@ -0,0 +1,78 @@
|
|
1
|
+
# Copyright 2008 Bradley Grzesiak
|
2
|
+
# This file is part of Suprails.
|
3
|
+
#
|
4
|
+
# Suprails is free software: you can redistribute it and/or modify
|
5
|
+
# it under the terms of the GNU General Public License as published by
|
6
|
+
# the Free Software Foundation, either version 3 of the License, or
|
7
|
+
# (at your option) any later version.
|
8
|
+
#
|
9
|
+
# Suprails is distributed in the hope that it will be useful,
|
10
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
11
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
12
|
+
# GNU General Public License for more details.
|
13
|
+
#
|
14
|
+
# You should have received a copy of the GNU General Public License
|
15
|
+
# along with Suprails. If not, see <http://www.gnu.org/licenses/>.
|
16
|
+
|
17
|
+
Suprails
|
18
|
+
========
|
19
|
+
|
20
|
+
This project is intended to be a replacement for the "rails" command. It
|
21
|
+
does not replace the rails framework but rather provides a starting point
|
22
|
+
for a rails application far beyond what the "rails" command provides.
|
23
|
+
During execution, in fact, the suprails command calls the rails command.
|
24
|
+
|
25
|
+
How it works
|
26
|
+
============
|
27
|
+
|
28
|
+
Suprails is unlike most other "Rails plus other stuff" projects out there.
|
29
|
+
Instead of me, the Suprails author, deciding what you should have in your rails
|
30
|
+
app, you get to decide. In addition, any time you execute Suprails, you have
|
31
|
+
the option to update any gems that would otherwise be out-of-date.
|
32
|
+
|
33
|
+
Example configuration file (~/.suprails/config)
|
34
|
+
===============================================
|
35
|
+
|
36
|
+
# Notice that ruby comments work just fine!
|
37
|
+
# gems.update "rspec", "rails", "rspec-rails", "haml", "capistrano"
|
38
|
+
frozen_rails
|
39
|
+
gems.config :haml
|
40
|
+
gems.unpack
|
41
|
+
plugin "git://github.com/rails/exception_notification"
|
42
|
+
generate :rspec
|
43
|
+
folder "public/stylesheets/sass"
|
44
|
+
delete "public/index.html"
|
45
|
+
gpl
|
46
|
+
git
|
47
|
+
haml
|
48
|
+
|
49
|
+
Installation
|
50
|
+
============
|
51
|
+
|
52
|
+
$ sudo gem install listrophy-suprails --source http://gems.github.com
|
53
|
+
|
54
|
+
Execution
|
55
|
+
============
|
56
|
+
|
57
|
+
First, run suprails without any arguments:
|
58
|
+
|
59
|
+
$ suprails
|
60
|
+
|
61
|
+
This will initialize your ~/.suprails/ folder and configuration in that folder
|
62
|
+
|
63
|
+
You will now want to edit the configuration file to your liking. It is located
|
64
|
+
at: ~/.suprails/config
|
65
|
+
|
66
|
+
Now, run suprails instead of rails:
|
67
|
+
|
68
|
+
$ suprails AppName
|
69
|
+
|
70
|
+
History/Bugs
|
71
|
+
====
|
72
|
+
|
73
|
+
0.1.1 - Added the runcommand verb
|
74
|
+
|
75
|
+
0.1 - The DB commands do not yet work. You have to just use the file command
|
76
|
+
instead.
|
77
|
+
|
78
|
+
0.0.0 - Initial readme. No code.
|
data/TODO
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
13-Oct-08
|
2
|
+
---------
|
3
|
+
Command list is tentatively:
|
4
|
+
|
5
|
+
sources "foldername"
|
6
|
+
rails
|
7
|
+
freeze
|
8
|
+
gems.config [:development|:test|:production] [ :gemname1 [, "gemname2" [...]]]
|
9
|
+
gems.update [ "gemname1" [, :gemname2 [...]]]
|
10
|
+
gems.unpack
|
11
|
+
plugin "pluginlocation"
|
12
|
+
generate "generator" [ :optional_argument [, "optional_argument2" [...]]]
|
13
|
+
folder "foldername"
|
14
|
+
file "sourcefile", "destfile"
|
15
|
+
delete "filename"
|
16
|
+
gpl
|
17
|
+
db.(development|test|production).(adapter|encoding|database|username|password|host) "value"
|
18
|
+
db.create
|
19
|
+
rake "rake-task"
|
20
|
+
git
|
21
|
+
svn
|
22
|
+
(facet-name)
|
23
|
+
(facet-name).(cmd) [ :optional_argument1 [, "optional_argument2" [...]]]
|
24
|
+
|
25
|
+
=========
|
26
|
+
|
27
|
+
courtesy of nice_burger on irc.freenode.net#rubyonrails
|
28
|
+
|
29
|
+
I18n,globalize2 for that. map.root in route.db to welcome or something. install haml, if only to get sass. freeze rails, action_mailer stuff for restful_auth, exception_notifier is good, capify, shoulda for tests, app_config plugin, put something nice in README, set up on github (ssh keys stuff to worry about). um, for starters.
|
data/bin/suprails
ADDED
@@ -0,0 +1,70 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
#
|
3
|
+
# Suprails: The customizable wrapper to the rails command
|
4
|
+
#
|
5
|
+
# Copyright 2008 Bradley Grzesiak
|
6
|
+
# This file is part of Suprails.
|
7
|
+
#
|
8
|
+
# Suprails is free software: you can redistribute it and/or modify
|
9
|
+
# it under the terms of the GNU General Public License as published by
|
10
|
+
# the Free Software Foundation, either version 3 of the License, or
|
11
|
+
# (at your option) any later version.
|
12
|
+
#
|
13
|
+
# Suprails is distributed in the hope that it will be useful,
|
14
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
15
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
16
|
+
# GNU General Public License for more details.
|
17
|
+
#
|
18
|
+
# You should have received a copy of the GNU General Public License
|
19
|
+
# along with Suprails. If not, see <http://www.gnu.org/licenses/>.
|
20
|
+
#
|
21
|
+
|
22
|
+
require File.dirname(__FILE__) + '/../lib/suprails'
|
23
|
+
opts = ARGV
|
24
|
+
SUPRAILS_VERSION = 0.1
|
25
|
+
|
26
|
+
def is_setup?
|
27
|
+
File.exists?(File.expand_path('~/.suprails'))
|
28
|
+
end
|
29
|
+
|
30
|
+
def setup_suprails
|
31
|
+
Dir.mkdir(File.expand_path('~/.suprails'))
|
32
|
+
Dir.mkdir(File.expand_path('~/.suprails/sources'))
|
33
|
+
Dir.mkdir(File.expand_path('~/.suprails/facets'))
|
34
|
+
require 'ftools'
|
35
|
+
config_source = File.expand_path(File.dirname(__FILE__) + '/../.suprails.example')
|
36
|
+
config_dest = File.expand_path('~/.suprails/config')
|
37
|
+
File.copy(config_source, config_dest, false)
|
38
|
+
Dir[File.dirname(__FILE__) + '/../facets/*.rb'].each do |f|
|
39
|
+
File.copy(f, File.expand_path('~/.suprails/facets/'), false)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
# Does the ~/.suprails folder exist?
|
44
|
+
if !is_setup?
|
45
|
+
setup_suprails
|
46
|
+
exit
|
47
|
+
end
|
48
|
+
|
49
|
+
if opts.length == 0
|
50
|
+
puts 'You must provide a Rails Application Name'
|
51
|
+
else
|
52
|
+
# If options include -v or --version, print the version and exit
|
53
|
+
if opts.inject(false) {|memo, x| memo || %w{-v --version}.include?(x)}
|
54
|
+
puts SUPRAILS_VERSION
|
55
|
+
exit
|
56
|
+
end
|
57
|
+
|
58
|
+
# setup the config file, using ~/.suprails/config as default
|
59
|
+
config = opts.index('-c') || opts.index('--config') || '~/.suprails/config'
|
60
|
+
if config.is_a? Fixnum
|
61
|
+
opts.delete_at(config)
|
62
|
+
config = opts.delete_at(config)
|
63
|
+
end
|
64
|
+
|
65
|
+
if opts.first =~ /^[a-zA-Z0-9]+/
|
66
|
+
Suprails.new(opts.shift).create_project
|
67
|
+
else
|
68
|
+
puts 'Invalid Application Name. Must start with alphanumeric character!'
|
69
|
+
end
|
70
|
+
end
|
data/facets/haml.rb
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
#
|
2
|
+
# Haml Facet for Suprails
|
3
|
+
# Copyright 2008 Bradley Grzesiak
|
4
|
+
# This file is part of Suprails.
|
5
|
+
#
|
6
|
+
# Suprails is free software: you can redistribute it and/or modify
|
7
|
+
# it under the terms of the GNU General Public License as published by
|
8
|
+
# the Free Software Foundation, either version 3 of the License, or
|
9
|
+
# (at your option) any later version.
|
10
|
+
#
|
11
|
+
# Suprails is distributed in the hope that it will be useful,
|
12
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
13
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
14
|
+
# GNU General Public License for more details.
|
15
|
+
#
|
16
|
+
# You should have received a copy of the GNU General Public License
|
17
|
+
# along with Suprails. If not, see <http://www.gnu.org/licenses/>.
|
18
|
+
#
|
19
|
+
|
20
|
+
Facet.define "haml" do
|
21
|
+
author "Bradley Grzesiak"
|
22
|
+
version "0.1"
|
23
|
+
|
24
|
+
def go app_name
|
25
|
+
puts 'Running haml'
|
26
|
+
`haml --rails #{app_name}`
|
27
|
+
end
|
28
|
+
end
|
data/lib/db.rb
ADDED
@@ -0,0 +1,73 @@
|
|
1
|
+
#
|
2
|
+
# Suprails: The customizable wrapper to the rails command
|
3
|
+
#
|
4
|
+
# Copyright 2008 Bradley Grzesiak
|
5
|
+
# This file is part of Suprails.
|
6
|
+
#
|
7
|
+
# Suprails is free software: you can redistribute it and/or modify
|
8
|
+
# it under the terms of the GNU General Public License as published by
|
9
|
+
# the Free Software Foundation, either version 3 of the License, or
|
10
|
+
# (at your option) any later version.
|
11
|
+
#
|
12
|
+
# Suprails is distributed in the hope that it will be useful,
|
13
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
14
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
15
|
+
# GNU General Public License for more details.
|
16
|
+
#
|
17
|
+
# You should have received a copy of the GNU General Public License
|
18
|
+
# along with Suprails. If not, see <http://www.gnu.org/licenses/>.
|
19
|
+
#
|
20
|
+
|
21
|
+
class DB
|
22
|
+
attr_reader :development, :test, :production
|
23
|
+
class Environment
|
24
|
+
def initialize db_type
|
25
|
+
@db_type = db_type
|
26
|
+
end
|
27
|
+
def adapter adapter
|
28
|
+
# puts "db.#{@db_type}.adapter #{adapter}"
|
29
|
+
puts 'database.yml modification not yet implemented'
|
30
|
+
end
|
31
|
+
def db db
|
32
|
+
# puts "db.#{@db_type}.db #{db}"
|
33
|
+
puts 'database.yml modification not yet implemented'
|
34
|
+
end
|
35
|
+
def database datab
|
36
|
+
db datab
|
37
|
+
end
|
38
|
+
def host h
|
39
|
+
# puts "db.#{@db_type}.host #{h}"
|
40
|
+
puts 'database.yml modification not yet implemented'
|
41
|
+
end
|
42
|
+
def username uname
|
43
|
+
# puts "db.#{@db_type}.username #{uname}"
|
44
|
+
puts 'database.yml modification not yet implemented'
|
45
|
+
end
|
46
|
+
def password passwd
|
47
|
+
# puts "db.#{@db_type}.password #{passwd}"
|
48
|
+
puts 'database.yml modification not yet implemented'
|
49
|
+
end
|
50
|
+
def socket s
|
51
|
+
# puts "db.#{@db_type}.socket #{s}"
|
52
|
+
puts 'database.yml modification not yet implemented'
|
53
|
+
end
|
54
|
+
def timeout to
|
55
|
+
# puts "db.#{@db_type}.timeout #{to}"
|
56
|
+
puts 'database.yml modification not yet implemented'
|
57
|
+
end
|
58
|
+
end
|
59
|
+
def initialize app_name
|
60
|
+
@development = Environment.new 'development'
|
61
|
+
@test = Environment.new 'test'
|
62
|
+
@production = Environment.new 'production'
|
63
|
+
@app_name = app_name
|
64
|
+
end
|
65
|
+
|
66
|
+
def create
|
67
|
+
`cd #{@app_name}; rake db:create`
|
68
|
+
end
|
69
|
+
def migrate
|
70
|
+
`cd #{@app_name}; rake db:migrate`
|
71
|
+
end
|
72
|
+
|
73
|
+
end
|
data/lib/facet.rb
ADDED
@@ -0,0 +1,52 @@
|
|
1
|
+
#
|
2
|
+
# Suprails: The customizable wrapper to the rails command
|
3
|
+
#
|
4
|
+
# Copyright 2008 Bradley Grzesiak
|
5
|
+
# This file is part of Suprails.
|
6
|
+
#
|
7
|
+
# Suprails is free software: you can redistribute it and/or modify
|
8
|
+
# it under the terms of the GNU General Public License as published by
|
9
|
+
# the Free Software Foundation, either version 3 of the License, or
|
10
|
+
# (at your option) any later version.
|
11
|
+
#
|
12
|
+
# Suprails is distributed in the hope that it will be useful,
|
13
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
14
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
15
|
+
# GNU General Public License for more details.
|
16
|
+
#
|
17
|
+
# You should have received a copy of the GNU General Public License
|
18
|
+
# along with Suprails. If not, see <http://www.gnu.org/licenses/>.
|
19
|
+
#
|
20
|
+
|
21
|
+
# See: http://eigenclass.org/hiki.rb?ruby+plugins
|
22
|
+
module FacetSugar
|
23
|
+
def def_field(*names)
|
24
|
+
class_eval do
|
25
|
+
names.each do |name|
|
26
|
+
define_method(name) do |*args|
|
27
|
+
case args.size
|
28
|
+
when 0: instance_variable_get("@#{name}")
|
29
|
+
else instance_variable_set("@#{name}", *args)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
class Facet
|
38
|
+
@registered_facets = {}
|
39
|
+
class << self
|
40
|
+
attr_reader :registered_facets
|
41
|
+
private :new
|
42
|
+
end
|
43
|
+
|
44
|
+
def self.define(name, &block)
|
45
|
+
f = new
|
46
|
+
f.instance_eval(&block)
|
47
|
+
Facet.registered_facets[name] = f
|
48
|
+
end
|
49
|
+
|
50
|
+
extend FacetSugar
|
51
|
+
def_field :author, :version, :exposed_methods
|
52
|
+
end
|
data/lib/gems.rb
ADDED
@@ -0,0 +1,81 @@
|
|
1
|
+
#
|
2
|
+
# Suprails: The customizable wrapper to the rails command
|
3
|
+
#
|
4
|
+
# Copyright 2008 Bradley Grzesiak
|
5
|
+
# This file is part of Suprails.
|
6
|
+
#
|
7
|
+
# Suprails is free software: you can redistribute it and/or modify
|
8
|
+
# it under the terms of the GNU General Public License as published by
|
9
|
+
# the Free Software Foundation, either version 3 of the License, or
|
10
|
+
# (at your option) any later version.
|
11
|
+
#
|
12
|
+
# Suprails is distributed in the hope that it will be useful,
|
13
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
14
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
15
|
+
# GNU General Public License for more details.
|
16
|
+
#
|
17
|
+
# You should have received a copy of the GNU General Public License
|
18
|
+
# along with Suprails. If not, see <http://www.gnu.org/licenses/>.
|
19
|
+
#
|
20
|
+
|
21
|
+
class Gems
|
22
|
+
def initialize app_name
|
23
|
+
@app_name = app_name
|
24
|
+
end
|
25
|
+
def update *gems
|
26
|
+
if gems.length
|
27
|
+
args = ''
|
28
|
+
gems.each {|x| args += " #{x}"}
|
29
|
+
result = `gem update #{args}`
|
30
|
+
if result
|
31
|
+
puts 'Gem update failed. Please enter your admin password for sudo gem update:'
|
32
|
+
`sudo gem update #{args}`
|
33
|
+
end
|
34
|
+
else
|
35
|
+
result = `gem update`
|
36
|
+
if result
|
37
|
+
puts 'Gem update failed. Please enter your admin password for sudo gem update:'
|
38
|
+
`sudo gem update`
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
def config *gems
|
44
|
+
# need to do some file editing here
|
45
|
+
to_insert = []
|
46
|
+
@gems = []
|
47
|
+
|
48
|
+
gems.each do |g|
|
49
|
+
to_insert << " config.gem '#{g}'\n"
|
50
|
+
@gems << g
|
51
|
+
end
|
52
|
+
|
53
|
+
file_contents = []
|
54
|
+
|
55
|
+
File.open("#{@app_name}/config/environment.rb", 'r') do |f|
|
56
|
+
f.each {|l| file_contents << l }
|
57
|
+
end
|
58
|
+
|
59
|
+
insertion_point = 0
|
60
|
+
file_contents.reverse.each_index do |i|
|
61
|
+
if file_contents[i] =~ /config\.gem/
|
62
|
+
insertion_point = i
|
63
|
+
break
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
to_insert.each {|x| file_contents.insert(insertion_point, x) }
|
68
|
+
|
69
|
+
File.open("#{@app_name}/config/environment.rb", 'w') do |f|
|
70
|
+
file_contents.each do |l|
|
71
|
+
f.puts l
|
72
|
+
end
|
73
|
+
end
|
74
|
+
# `cd #{@app_name}; rake gems:install`
|
75
|
+
end
|
76
|
+
|
77
|
+
def unpack
|
78
|
+
`cd #{@app_name}; rake gems:unpack`
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
data/lib/runner.rb
ADDED
@@ -0,0 +1,170 @@
|
|
1
|
+
#
|
2
|
+
# Suprails: The customizable wrapper to the rails command
|
3
|
+
#
|
4
|
+
# Copyright 2008 Bradley Grzesiak
|
5
|
+
# This file is part of Suprails.
|
6
|
+
#
|
7
|
+
# Suprails is free software: you can redistribute it and/or modify
|
8
|
+
# it under the terms of the GNU General Public License as published by
|
9
|
+
# the Free Software Foundation, either version 3 of the License, or
|
10
|
+
# (at your option) any later version.
|
11
|
+
#
|
12
|
+
# Suprails is distributed in the hope that it will be useful,
|
13
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
14
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
15
|
+
# GNU General Public License for more details.
|
16
|
+
#
|
17
|
+
# You should have received a copy of the GNU General Public License
|
18
|
+
# along with Suprails. If not, see <http://www.gnu.org/licenses/>.
|
19
|
+
#
|
20
|
+
|
21
|
+
require File.dirname(__FILE__) + '/db'
|
22
|
+
require File.dirname(__FILE__) + '/gems'
|
23
|
+
require File.dirname(__FILE__) + '/facet'
|
24
|
+
|
25
|
+
class Runner
|
26
|
+
|
27
|
+
class << self
|
28
|
+
attr_accessor :app_name
|
29
|
+
end
|
30
|
+
|
31
|
+
def initialize(app_name, runfile = "~/.suprails/config")
|
32
|
+
Runner.app_name = app_name
|
33
|
+
@runfile = File.expand_path(runfile)
|
34
|
+
@sources = File.expand_path('~/.suprails/sources/')
|
35
|
+
@facets_source = File.expand_path('~/.suprails/facets/')
|
36
|
+
Dir["#{@facets_source}/*.rb"].each{|x| load x }
|
37
|
+
|
38
|
+
Facet.registered_facets.each do |name, facet|
|
39
|
+
self.class.send(:define_method, name) {}
|
40
|
+
instance_eval do
|
41
|
+
self.class.send(:define_method, name) do
|
42
|
+
facet.go Runner.app_name
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
def methods
|
49
|
+
super.each{|x| puts x}
|
50
|
+
end
|
51
|
+
|
52
|
+
def run
|
53
|
+
gems = Gems.new Runner.app_name
|
54
|
+
db = DB.new Runner.app_name
|
55
|
+
@base = File.expand_path "./#{Runner.app_name}"
|
56
|
+
Dir.mkdir(@base)
|
57
|
+
text = File.read(@runfile).split('\n')
|
58
|
+
text.each {|l| instance_eval(l)}
|
59
|
+
end
|
60
|
+
|
61
|
+
def sources sourcefolder
|
62
|
+
@sources = File.expand_path "#{sourcefolder}/"
|
63
|
+
end
|
64
|
+
|
65
|
+
def rails
|
66
|
+
`rails #{Runner.app_name}`
|
67
|
+
end
|
68
|
+
|
69
|
+
def frozen_rails
|
70
|
+
`rails #{Runner.app_name} --freeze`
|
71
|
+
end
|
72
|
+
|
73
|
+
def debug p = ''
|
74
|
+
puts "debug: #{p}"
|
75
|
+
end
|
76
|
+
|
77
|
+
def plugin plugin_location
|
78
|
+
`cd #{Runner.app_name}; script/plugin install #{plugin_location}`
|
79
|
+
end
|
80
|
+
|
81
|
+
def generate generator, *opts
|
82
|
+
if opts.length
|
83
|
+
args = ''
|
84
|
+
opts.each {|x| args += " #{x}"}
|
85
|
+
`cd #{Runner.app_name}; script/generate #{generator} #{args}`
|
86
|
+
else
|
87
|
+
`cd #{Runner.app_name}; script/generate #{generator}`
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
def folder folder_name
|
92
|
+
path = "#{@base}/"
|
93
|
+
paths = folder_name.split('/')
|
94
|
+
paths.each do |p|
|
95
|
+
path += "#{p}/"
|
96
|
+
Dir.mkdir path if !File.exists? path
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
def file source_file, destination
|
101
|
+
require 'ftools'
|
102
|
+
source = File.expand_path "#{@sources}/#{source_file}"
|
103
|
+
dest = File.expand_path "./#{Runner.app_name}/#{destination}"
|
104
|
+
File.copy(source, dest, false) if File.exists? source
|
105
|
+
end
|
106
|
+
|
107
|
+
def delete file_name
|
108
|
+
file_name = "#{@base}/#{file_name}"
|
109
|
+
File.delete file_name if File.exists?(file_name)
|
110
|
+
end
|
111
|
+
|
112
|
+
def gpl
|
113
|
+
puts 'Installing the GPL into COPYING'
|
114
|
+
require 'net/http'
|
115
|
+
http = Net::HTTP.new('www.gnu.org')
|
116
|
+
path = '/licenses/gpl-3.0.txt'
|
117
|
+
begin
|
118
|
+
resp = http.get(path)
|
119
|
+
if resp.code == '200'
|
120
|
+
File.open("#{@base}/COPYING", 'w') do |f|
|
121
|
+
f.puts(resp.body)
|
122
|
+
end
|
123
|
+
else
|
124
|
+
puts "Error #{resp.code} while retrieving GPL text."
|
125
|
+
end
|
126
|
+
rescue SocketError
|
127
|
+
puts 'SocketError: You might not be connected to the internet. GPL retrieval failed.'
|
128
|
+
end
|
129
|
+
end
|
130
|
+
|
131
|
+
def rake *opts
|
132
|
+
if opts.length
|
133
|
+
args = ''
|
134
|
+
opts.each {|x| args += " #{x}"}
|
135
|
+
`cd #{Runner.app_name}; rake #{args}`
|
136
|
+
else
|
137
|
+
`cd #{Runner.app_name}; rake`
|
138
|
+
end
|
139
|
+
end
|
140
|
+
|
141
|
+
def git
|
142
|
+
gem = false
|
143
|
+
begin
|
144
|
+
gem = require 'git'
|
145
|
+
rescue LoadError => e
|
146
|
+
nil
|
147
|
+
end
|
148
|
+
if gem
|
149
|
+
g = Git.init(@base)
|
150
|
+
else
|
151
|
+
`cd #{Runner.app_name}; git init`
|
152
|
+
end
|
153
|
+
end
|
154
|
+
|
155
|
+
def svn
|
156
|
+
`cd #{Runner.app_name}; svnadmin create`
|
157
|
+
end
|
158
|
+
|
159
|
+
def runcommand *opts
|
160
|
+
cmd = opts.shift
|
161
|
+
if opts.length
|
162
|
+
args = ''
|
163
|
+
opts.each {|x| args += " #{x}"}
|
164
|
+
`cd #{Runner.app_name}; #{cmd} #{args}`
|
165
|
+
else
|
166
|
+
`cd #{Runner.app_name}; #{cmd}`
|
167
|
+
end
|
168
|
+
end
|
169
|
+
|
170
|
+
end
|
data/lib/suprails.rb
ADDED
@@ -0,0 +1,47 @@
|
|
1
|
+
#
|
2
|
+
# Suprails: The customizable wrapper to the rails command
|
3
|
+
#
|
4
|
+
# Copyright 2008 Bradley Grzesiak
|
5
|
+
# This file is part of Suprails.
|
6
|
+
#
|
7
|
+
# Suprails is free software: you can redistribute it and/or modify
|
8
|
+
# it under the terms of the GNU General Public License as published by
|
9
|
+
# the Free Software Foundation, either version 3 of the License, or
|
10
|
+
# (at your option) any later version.
|
11
|
+
#
|
12
|
+
# Suprails is distributed in the hope that it will be useful,
|
13
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
14
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
15
|
+
# GNU General Public License for more details.
|
16
|
+
#
|
17
|
+
# You should have received a copy of the GNU General Public License
|
18
|
+
# along with Suprails. If not, see <http://www.gnu.org/licenses/>.
|
19
|
+
#
|
20
|
+
|
21
|
+
# require 'rubygems'
|
22
|
+
require File.dirname(__FILE__) + '/runner'
|
23
|
+
|
24
|
+
class Suprails
|
25
|
+
|
26
|
+
|
27
|
+
def initialize(app_name = "")
|
28
|
+
@app_name = app_name
|
29
|
+
@run_file = ""
|
30
|
+
end
|
31
|
+
|
32
|
+
def app_name=(val)
|
33
|
+
@app_name = val
|
34
|
+
end
|
35
|
+
def app_name
|
36
|
+
@app_name
|
37
|
+
end
|
38
|
+
|
39
|
+
def create_project
|
40
|
+
Runner.new(@app_name).run
|
41
|
+
end
|
42
|
+
|
43
|
+
def to_s
|
44
|
+
"Rails appname: #{@app_name}\n"
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
metadata
ADDED
@@ -0,0 +1,71 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: ffmike-suprails
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Bradley Grzesiak
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2008-10-18 00:00:00 -07:00
|
13
|
+
default_executable:
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: rails
|
17
|
+
version_requirement:
|
18
|
+
version_requirements: !ruby/object:Gem::Requirement
|
19
|
+
requirements:
|
20
|
+
- - ">="
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: "0"
|
23
|
+
version:
|
24
|
+
description: This project is intended to be a replacement for the "rails" command. It does not replace the rails framework but rather provides a starting point for a rails application far beyond what the "rails" command provides. During execution, in fact, the suprails command calls the rails command.
|
25
|
+
email: listrophy@gmail.com
|
26
|
+
executables:
|
27
|
+
- suprails
|
28
|
+
extensions: []
|
29
|
+
|
30
|
+
extra_rdoc_files: []
|
31
|
+
|
32
|
+
files:
|
33
|
+
- README
|
34
|
+
- COPYING
|
35
|
+
- TODO
|
36
|
+
- lib/db.rb
|
37
|
+
- lib/facet.rb
|
38
|
+
- lib/gems.rb
|
39
|
+
- lib/runner.rb
|
40
|
+
- lib/suprails.rb
|
41
|
+
- facets/haml.rb
|
42
|
+
- bin/suprails
|
43
|
+
- .suprails.example
|
44
|
+
has_rdoc: false
|
45
|
+
homepage: http://github.com/listrophy/suprails
|
46
|
+
post_install_message:
|
47
|
+
rdoc_options: []
|
48
|
+
|
49
|
+
require_paths:
|
50
|
+
- lib
|
51
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - ">="
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: "0"
|
56
|
+
version:
|
57
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: "0"
|
62
|
+
version:
|
63
|
+
requirements: []
|
64
|
+
|
65
|
+
rubyforge_project:
|
66
|
+
rubygems_version: 1.2.0
|
67
|
+
signing_key:
|
68
|
+
specification_version: 2
|
69
|
+
summary: Suprails provides a wrapper to the rails command
|
70
|
+
test_files: []
|
71
|
+
|