padrino-core 0.5.0 → 0.6.1
Sign up to get free protection for your applications and to get access to all the features.
- data/LICENSE +1 -1
- data/README.rdoc +232 -19
- data/Rakefile +1 -0
- data/VERSION +1 -1
- data/bin/padrino +3 -2
- data/lib/padrino-core.rb +2 -0
- data/lib/padrino-core/application.rb +278 -24
- data/lib/padrino-core/cli.rb +102 -0
- data/lib/padrino-core/{tasks → cli}/adapter.rb +1 -2
- data/lib/padrino-core/{tasks → cli}/console.rb +1 -1
- data/lib/padrino-core/cli/rake.rb +25 -0
- data/lib/padrino-core/{tasks → cli}/test.rb +2 -3
- data/lib/padrino-core/images/404.png +0 -0
- data/lib/padrino-core/images/500.png +0 -0
- data/lib/padrino-core/loader.rb +1 -7
- data/lib/padrino-core/logger.rb +7 -3
- data/lib/padrino-core/mounter.rb +2 -0
- data/lib/padrino-core/routing.rb +0 -0
- data/lib/padrino-core/support_lite.rb +1 -1
- data/lib/padrino-core/tasks.rb +11 -82
- data/padrino-core.gemspec +14 -7
- data/test/fixtures/apps/complex.rb +2 -2
- data/test/fixtures/apps/simple.rb +1 -1
- data/test/helper.rb +0 -3
- data/test/test_reloader_complex.rb +1 -0
- data/test/test_reloader_simple.rb +21 -4
- data/test/test_routing.rb +217 -0
- metadata +21 -7
- data/lib/padrino-core/tasks/helpers.rb +0 -20
- data/lib/padrino-core/tasks/rake_tasks.rb +0 -19
@@ -0,0 +1,102 @@
|
|
1
|
+
require 'thor'
|
2
|
+
require 'thor/rake_compat'
|
3
|
+
|
4
|
+
module Padrino
|
5
|
+
module Cli
|
6
|
+
class Base < Thor
|
7
|
+
include Thor::Actions
|
8
|
+
include Thor::RakeCompat
|
9
|
+
|
10
|
+
class_option :chdir, :type => :string, :aliases => "-c"
|
11
|
+
|
12
|
+
desc "start", "Starts the Padrino application"
|
13
|
+
method_option :environment, :type => :string, :aliases => "-e", :required => true, :default => :development
|
14
|
+
method_option :adapter, :type => :string, :aliases => "-a", :required => true, :default => :thin
|
15
|
+
method_option :host, :type => :string, :aliases => "-h", :required => true, :default => "localhost"
|
16
|
+
method_option :port, :type => :numeric, :aliases => "-p", :required => true, :default => 3000
|
17
|
+
method_option :boot, :type => :string, :aliases => "-b", :required => true, :default => "config/boot.rb"
|
18
|
+
method_option :daemonize, :type => :boolean, :aliases => "-d"
|
19
|
+
def start
|
20
|
+
require File.dirname(__FILE__) + "/cli/adapter"
|
21
|
+
boot = check_boot
|
22
|
+
return unless boot
|
23
|
+
require boot
|
24
|
+
Padrino::Cli::Adapter.start(options)
|
25
|
+
end
|
26
|
+
|
27
|
+
desc "stop", "Stops the Padrino application"
|
28
|
+
def stop
|
29
|
+
require File.dirname(__FILE__) + "/cli/adapter"
|
30
|
+
Padrino::Cli::Adapter.stop
|
31
|
+
end
|
32
|
+
|
33
|
+
desc "test", "Executes all the Padrino test files"
|
34
|
+
def test
|
35
|
+
require File.dirname(__FILE__) + "/cli/test"
|
36
|
+
Padrino::Cli::Test.start
|
37
|
+
end
|
38
|
+
|
39
|
+
desc "rake", "Execute rake tasks in {Padrino.root}/lib/tasks"
|
40
|
+
method_option :boot, :type => :string, :aliases => "-b", :required => true, :default => "config/boot.rb"
|
41
|
+
method_option :environment, :type => :string, :aliases => "-e", :required => true, :default => :development
|
42
|
+
method_option :task_list, :type => :string, :aliases => "-T" # Only for accept rake
|
43
|
+
def rake(task="")
|
44
|
+
require 'padrino-core/support_lite'
|
45
|
+
require 'padrino-core/tasks'
|
46
|
+
boot = check_boot
|
47
|
+
return unless boot
|
48
|
+
require 'rake'
|
49
|
+
require boot
|
50
|
+
puts "=> Executing Rake..."
|
51
|
+
Rake.application.init
|
52
|
+
load(File.dirname(__FILE__) + "/cli/rake.rb")
|
53
|
+
Rake.application.top_level
|
54
|
+
end
|
55
|
+
|
56
|
+
desc "console", "Boots up the Padrino application irb console"
|
57
|
+
method_option :boot, :type => :string, :aliases => "-b", :required => true, :default => "config/boot.rb"
|
58
|
+
method_option :environment, :type => :string, :aliases => "-e", :required => true, :default => :development
|
59
|
+
def console
|
60
|
+
require File.dirname(__FILE__) + "/version"
|
61
|
+
boot = check_boot
|
62
|
+
return unless boot
|
63
|
+
ARGV.clear
|
64
|
+
puts "=> Loading #{options.environment} console (Padrino v.#{Padrino.version})"
|
65
|
+
require 'irb'
|
66
|
+
require "irb/completion"
|
67
|
+
require boot
|
68
|
+
require File.dirname(__FILE__) + '/cli/console'
|
69
|
+
IRB.start
|
70
|
+
end
|
71
|
+
|
72
|
+
private
|
73
|
+
def check_boot
|
74
|
+
ENV["PADRINO_ENV"] ||= options.environment.to_s
|
75
|
+
chdir(options.chdir)
|
76
|
+
unless File.exist?(options.boot)
|
77
|
+
puts "=> Could not find boot file: #{options.boot.inspect} !!!"
|
78
|
+
return
|
79
|
+
end
|
80
|
+
options.boot
|
81
|
+
end
|
82
|
+
|
83
|
+
protected
|
84
|
+
def self.banner(task)
|
85
|
+
"padrino-gen #{task.name}"
|
86
|
+
end
|
87
|
+
|
88
|
+
def chdir(dir)
|
89
|
+
return unless dir
|
90
|
+
begin
|
91
|
+
Dir.chdir(dir.to_s)
|
92
|
+
rescue Errno::ENOENT
|
93
|
+
puts "=> Specified Padrino root '#{dir}' " +
|
94
|
+
"does not appear to exist!"
|
95
|
+
rescue Errno::EACCES
|
96
|
+
puts "=> Specified Padrino root '#{dir}' " +
|
97
|
+
"cannot be accessed by the current user!"
|
98
|
+
end
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
102
|
+
end
|
@@ -7,7 +7,7 @@ end
|
|
7
7
|
def applications
|
8
8
|
puts "==== List of Mounted Applications ====\n\n"
|
9
9
|
Padrino.mounted_apps.each do |app|
|
10
|
-
puts " *
|
10
|
+
puts " * %-10s mapped to %s" % [app.name, app.uri_root]
|
11
11
|
end
|
12
12
|
puts
|
13
13
|
Padrino.mounted_apps.collect { |app| "#{app.name} => #{app.uri_root}" }
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'rake'
|
2
|
+
require 'rake/testtask'
|
3
|
+
require 'rake/rdoctask'
|
4
|
+
require File.dirname(__FILE__) + '/../tasks'
|
5
|
+
|
6
|
+
Dir["lib/tasks/**/*.rake"].each { |ext| load(ext) }
|
7
|
+
Padrino::Tasks.files.flatten.uniq.each { |ext| load(ext) }
|
8
|
+
|
9
|
+
def shell
|
10
|
+
@_shell ||= Thor::Shell::Basic.new
|
11
|
+
end
|
12
|
+
|
13
|
+
task :environment do
|
14
|
+
Padrino.logger_env = :test
|
15
|
+
Padrino.mounted_apps.each do |app|
|
16
|
+
Padrino.require_dependency(app.app_file)
|
17
|
+
app.app_object.setup_application!
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
desc 'Load the seed data from db/seeds.rb'
|
22
|
+
task :seed => :environment do
|
23
|
+
seed_file = Padrino.root('db', 'seeds.rb')
|
24
|
+
load(seed_file) if File.exist?(seed_file)
|
25
|
+
end
|
@@ -1,7 +1,6 @@
|
|
1
1
|
module Padrino
|
2
|
-
module
|
2
|
+
module Cli
|
3
3
|
module Test
|
4
|
-
|
5
4
|
class << self
|
6
5
|
|
7
6
|
# This method executes tests found for the given app.
|
@@ -14,8 +13,8 @@ module Padrino
|
|
14
13
|
cmd = "ruby -rubygems -I.:lib -e'%w( #{tests.join(' ')} ).each { |file| require file }'"
|
15
14
|
system cmd
|
16
15
|
end
|
17
|
-
|
18
16
|
end
|
17
|
+
|
19
18
|
end
|
20
19
|
end
|
21
20
|
end
|
Binary file
|
Binary file
|
data/lib/padrino-core/loader.rb
CHANGED
@@ -5,9 +5,8 @@ module Padrino
|
|
5
5
|
return false if loaded?
|
6
6
|
@_called_from = first_caller
|
7
7
|
load_required_gems # load bundler gems
|
8
|
-
require_dependencies("#{root}/config/apps.rb", "#{root}/config/database.rb") # load configuration
|
9
|
-
load_apps_models # load all models of our apps
|
10
8
|
require_dependencies("#{root}/lib/**/*.rb", "#{root}/models/**/*.rb") # load root app models
|
9
|
+
require_dependencies("#{root}/config/database.rb", "#{root}/config/apps.rb") # load configuration
|
11
10
|
Stat.reload! # We need to fill our Stat::CACHE but we do that only for development
|
12
11
|
Thread.current[:padrino_loaded] = true
|
13
12
|
end
|
@@ -73,11 +72,6 @@ module Padrino
|
|
73
72
|
end
|
74
73
|
end
|
75
74
|
|
76
|
-
# Loads for each mounted applications their models
|
77
|
-
def load_apps_models
|
78
|
-
Padrino.mounted_apps.each { |mounted_app| load_dependencies("#{mounted_app.app_root}/models/**/*.rb") }
|
79
|
-
end
|
80
|
-
|
81
75
|
# Prints out a message to the stdout if not in test environment
|
82
76
|
def say(text)
|
83
77
|
print text if Padrino.env != :test
|
data/lib/padrino-core/logger.rb
CHANGED
@@ -3,7 +3,11 @@ module Padrino
|
|
3
3
|
def self.logger
|
4
4
|
Thread.current[:padrino_logger] ||= Padrino::Logger.setup!
|
5
5
|
end
|
6
|
-
|
6
|
+
|
7
|
+
def self.logger_env=(env)
|
8
|
+
Thread.current[:padrino_logger] ||= Padrino::Logger.setup!(env)
|
9
|
+
end
|
10
|
+
|
7
11
|
class Logger
|
8
12
|
|
9
13
|
attr_accessor :level
|
@@ -65,8 +69,8 @@ module Padrino
|
|
65
69
|
|
66
70
|
|
67
71
|
# Setup a new logger
|
68
|
-
def self.setup!
|
69
|
-
config = Config[Padrino.env] || Config[:test]
|
72
|
+
def self.setup!(env=nil)
|
73
|
+
config = Config[env || Padrino.env] || Config[:test]
|
70
74
|
stream = case config[:stream]
|
71
75
|
when :to_file
|
72
76
|
FileUtils.mkdir_p(Padrino.root("log")) unless File.exists?(Padrino.root("log"))
|
data/lib/padrino-core/mounter.rb
CHANGED
@@ -32,6 +32,8 @@ module Padrino
|
|
32
32
|
app_obj.set :app_name, app_data.name
|
33
33
|
app_obj.set :app_file, app_data.app_file unless File.exist?(app_obj.app_file)
|
34
34
|
app_obj.set :root, app_data.app_root unless app_data.app_root.blank?
|
35
|
+
# We need to initialize here the app.
|
36
|
+
app_obj.setup_application!
|
35
37
|
run app_obj
|
36
38
|
end
|
37
39
|
end
|
File without changes
|
@@ -20,7 +20,7 @@ Required for Padrino to run:
|
|
20
20
|
=end
|
21
21
|
require 'i18n'
|
22
22
|
# Load our locales
|
23
|
-
I18n.load_path += Dir["#{File.dirname(__FILE__)}/
|
23
|
+
I18n.load_path += Dir["#{File.dirname(__FILE__)}/locale/*.yml"]
|
24
24
|
|
25
25
|
module Padrino
|
26
26
|
# Return the current support used.
|
data/lib/padrino-core/tasks.rb
CHANGED
@@ -1,88 +1,17 @@
|
|
1
|
-
require 'thor'
|
2
|
-
require 'thor/rake_compat'
|
3
|
-
require File.dirname(__FILE__) + "/tasks/helpers"
|
4
|
-
|
5
1
|
module Padrino
|
6
|
-
module Tasks
|
7
|
-
class Base < Thor
|
8
|
-
include Thor::Actions
|
9
|
-
include Thor::RakeCompat
|
10
|
-
include Padrino::Tasks::Helpers
|
11
|
-
|
12
|
-
class_option :chdir, :type => :string, :aliases => "-c"
|
13
|
-
|
14
|
-
desc "start", "Starts the Padrino application"
|
15
|
-
method_option :environment, :type => :string, :aliases => "-e", :required => true, :default => :development
|
16
|
-
method_option :adapter, :type => :string, :aliases => "-a", :required => true, :default => :thin
|
17
|
-
method_option :host, :type => :string, :aliases => "-h", :required => true, :default => "localhost"
|
18
|
-
method_option :port, :type => :numeric, :aliases => "-p", :required => true, :default => 3000
|
19
|
-
method_option :boot, :type => :string, :aliases => "-b", :required => true, :default => "config/boot.rb"
|
20
|
-
method_option :daemonize, :type => :boolean, :aliases => "-d"
|
21
|
-
def start
|
22
|
-
require File.dirname(__FILE__) + "/tasks/adapter"
|
23
|
-
boot = check_boot
|
24
|
-
return unless boot
|
25
|
-
require boot
|
26
|
-
Padrino::Tasks::Adapter.start(options)
|
27
|
-
end
|
28
|
-
|
29
|
-
desc "stop", "Stops the Padrino application"
|
30
|
-
def stop
|
31
|
-
require File.dirname(__FILE__) + "/tasks/adapter"
|
32
|
-
Padrino::Tasks::Adapter.stop
|
33
|
-
end
|
34
2
|
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
method_option :boot, :type => :string, :aliases => "-b", :required => true, :default => "config/boot.rb"
|
43
|
-
method_option :environment, :type => :string, :aliases => "-e", :required => true, :default => :development
|
44
|
-
def rake
|
45
|
-
boot = check_boot
|
46
|
-
return unless boot
|
47
|
-
require 'rake'
|
48
|
-
puts "=> Executing Rake..."
|
49
|
-
Rake.application.init
|
50
|
-
load(File.dirname(__FILE__) + "/tasks/rake_tasks.rb")
|
51
|
-
Padrino::Tasks::RakeFile.boot_file = boot
|
52
|
-
Rake.application.top_level
|
53
|
-
end
|
54
|
-
|
55
|
-
desc "console", "Boots up the Padrino application irb console"
|
56
|
-
method_option :boot, :type => :string, :aliases => "-b", :required => true, :default => "config/boot.rb"
|
57
|
-
method_option :environment, :type => :string, :aliases => "-e", :required => true, :default => :development
|
58
|
-
def console
|
59
|
-
require File.dirname(__FILE__) + "/version"
|
60
|
-
boot = check_boot
|
61
|
-
return unless boot
|
62
|
-
ARGV.clear
|
63
|
-
puts "=> Loading #{options.environment} console (Padrino v.#{Padrino.version})"
|
64
|
-
require 'irb'
|
65
|
-
require "irb/completion"
|
66
|
-
require boot
|
67
|
-
require File.dirname(__FILE__) + '/tasks/console'
|
68
|
-
IRB.start
|
69
|
-
end
|
70
|
-
|
71
|
-
private
|
72
|
-
def check_boot
|
73
|
-
ENV["PADRINO_ENV"] ||= options.environment.to_s
|
74
|
-
chdir(options.chdir)
|
75
|
-
unless File.exist?(options.boot)
|
76
|
-
puts "=> Could not find boot file: #{options.boot.inspect} !!!"
|
77
|
-
return
|
78
|
-
end
|
79
|
-
options.boot
|
80
|
-
end
|
3
|
+
# Ti module it's used for bootstrap with padrino rake
|
4
|
+
# thirdy party tasks, in your gem/plugin/extension you
|
5
|
+
# need only do this:
|
6
|
+
#
|
7
|
+
# Padrino::Tasks.files << yourtask.rb
|
8
|
+
#
|
9
|
+
module Tasks
|
81
10
|
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
end
|
11
|
+
# Returns a list of files to handle with padrino rake
|
12
|
+
def self.files
|
13
|
+
@files ||= []
|
86
14
|
end
|
15
|
+
|
87
16
|
end
|
88
17
|
end
|
data/padrino-core.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{padrino-core}
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.6.1"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Padrino Team", "Nathan Esquenazi", "Davide D'Agostino", "Arthur Chiu"]
|
12
|
-
s.date = %q{2010-01-
|
12
|
+
s.date = %q{2010-01-14}
|
13
13
|
s.default_executable = %q{padrino}
|
14
14
|
s.description = %q{The Padrino core gem required for use of this framework}
|
15
15
|
s.email = %q{nesquena@gmail.com}
|
@@ -28,22 +28,25 @@ Gem::Specification.new do |s|
|
|
28
28
|
"lib/padrino-core.rb",
|
29
29
|
"lib/padrino-core/application.rb",
|
30
30
|
"lib/padrino-core/caller.rb",
|
31
|
+
"lib/padrino-core/cli.rb",
|
32
|
+
"lib/padrino-core/cli/adapter.rb",
|
33
|
+
"lib/padrino-core/cli/console.rb",
|
34
|
+
"lib/padrino-core/cli/rake.rb",
|
35
|
+
"lib/padrino-core/cli/test.rb",
|
36
|
+
"lib/padrino-core/images/404.png",
|
37
|
+
"lib/padrino-core/images/500.png",
|
31
38
|
"lib/padrino-core/loader.rb",
|
32
39
|
"lib/padrino-core/locale/en.yml",
|
33
40
|
"lib/padrino-core/logger.rb",
|
34
41
|
"lib/padrino-core/mounter.rb",
|
35
42
|
"lib/padrino-core/reloader.rb",
|
43
|
+
"lib/padrino-core/routing.rb",
|
36
44
|
"lib/padrino-core/server.rb",
|
37
45
|
"lib/padrino-core/stat.rb",
|
38
46
|
"lib/padrino-core/support_lite.rb",
|
39
47
|
"lib/padrino-core/support_lite/as_support.rb",
|
40
48
|
"lib/padrino-core/support_lite/extlib_support.rb",
|
41
49
|
"lib/padrino-core/tasks.rb",
|
42
|
-
"lib/padrino-core/tasks/adapter.rb",
|
43
|
-
"lib/padrino-core/tasks/console.rb",
|
44
|
-
"lib/padrino-core/tasks/helpers.rb",
|
45
|
-
"lib/padrino-core/tasks/rake_tasks.rb",
|
46
|
-
"lib/padrino-core/tasks/test.rb",
|
47
50
|
"lib/padrino-core/version.rb",
|
48
51
|
"padrino-core.gemspec",
|
49
52
|
"test/fixtures/apps/.components",
|
@@ -57,6 +60,7 @@ Gem::Specification.new do |s|
|
|
57
60
|
"test/test_mounter.rb",
|
58
61
|
"test/test_reloader_complex.rb",
|
59
62
|
"test/test_reloader_simple.rb",
|
63
|
+
"test/test_routing.rb",
|
60
64
|
"test/test_server.rb"
|
61
65
|
]
|
62
66
|
s.homepage = %q{http://github.com/padrino/padrino-framework/tree/master/padrino-core}
|
@@ -72,6 +76,7 @@ Gem::Specification.new do |s|
|
|
72
76
|
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
73
77
|
s.add_runtime_dependency(%q<sinatra>, [">= 0.9.2"])
|
74
78
|
s.add_runtime_dependency(%q<i18n>, [">= 0.3.2"])
|
79
|
+
s.add_runtime_dependency(%q<usher>, [">= 0.6.2"])
|
75
80
|
s.add_runtime_dependency(%q<thor>, [">= 0.11.8"])
|
76
81
|
s.add_development_dependency(%q<haml>, [">= 2.2.1"])
|
77
82
|
s.add_runtime_dependency(%q<bundler>, [">= 0.5.0"])
|
@@ -82,6 +87,7 @@ Gem::Specification.new do |s|
|
|
82
87
|
else
|
83
88
|
s.add_dependency(%q<sinatra>, [">= 0.9.2"])
|
84
89
|
s.add_dependency(%q<i18n>, [">= 0.3.2"])
|
90
|
+
s.add_dependency(%q<usher>, [">= 0.6.2"])
|
85
91
|
s.add_dependency(%q<thor>, [">= 0.11.8"])
|
86
92
|
s.add_dependency(%q<haml>, [">= 2.2.1"])
|
87
93
|
s.add_dependency(%q<bundler>, [">= 0.5.0"])
|
@@ -93,6 +99,7 @@ Gem::Specification.new do |s|
|
|
93
99
|
else
|
94
100
|
s.add_dependency(%q<sinatra>, [">= 0.9.2"])
|
95
101
|
s.add_dependency(%q<i18n>, [">= 0.3.2"])
|
102
|
+
s.add_dependency(%q<usher>, [">= 0.6.2"])
|
96
103
|
s.add_dependency(%q<thor>, [">= 0.11.8"])
|
97
104
|
s.add_dependency(%q<haml>, [">= 2.2.1"])
|
98
105
|
s.add_dependency(%q<bundler>, [">= 0.5.0"])
|
@@ -17,11 +17,11 @@ class Complex2Demo < Padrino::Application
|
|
17
17
|
end
|
18
18
|
|
19
19
|
Complex1Demo.controllers do
|
20
|
-
get(""){ "Given random #{LibDemo.give_me_a_random}" }
|
20
|
+
get("(/)"){ "Given random #{LibDemo.give_me_a_random}" }
|
21
21
|
end
|
22
22
|
|
23
23
|
Complex2Demo.controllers do
|
24
|
-
get(""){ "The magick number is:
|
24
|
+
get("(/)"){ "The magick number is: 53!" } # Change only the number!!!
|
25
25
|
end
|
26
26
|
|
27
27
|
Padrino.load!
|
data/test/helper.rb
CHANGED
@@ -1,9 +1,6 @@
|
|
1
1
|
ENV['PADRINO_ENV'] = 'test'
|
2
2
|
PADRINO_ROOT = File.dirname(__FILE__) unless defined? PADRINO_ROOT
|
3
3
|
|
4
|
-
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
5
|
-
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
6
|
-
|
7
4
|
require 'rubygems'
|
8
5
|
require 'padrino-core'
|
9
6
|
require 'test/unit'
|