padrino-core 0.10.2 → 0.10.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (57) hide show
  1. data/.document +3 -3
  2. data/.yardopts +1 -0
  3. data/{LICENSE → LICENSE.txt} +0 -0
  4. data/README.rdoc +2 -2
  5. data/lib/padrino-core/application/rendering.rb +79 -26
  6. data/lib/padrino-core/application/routing.rb +215 -127
  7. data/lib/padrino-core/application/showexceptions.rb +2 -1
  8. data/lib/padrino-core/application.rb +67 -57
  9. data/lib/padrino-core/caller.rb +10 -4
  10. data/lib/padrino-core/command.rb +11 -0
  11. data/lib/padrino-core/loader.rb +52 -24
  12. data/lib/padrino-core/locale/cs.yml +4 -1
  13. data/lib/padrino-core/locale/da.yml +4 -1
  14. data/lib/padrino-core/locale/de.yml +4 -1
  15. data/lib/padrino-core/locale/en.yml +4 -1
  16. data/lib/padrino-core/locale/es.yml +4 -1
  17. data/lib/padrino-core/locale/fr.yml +4 -1
  18. data/lib/padrino-core/locale/hu.yml +4 -1
  19. data/lib/padrino-core/locale/it.yml +4 -1
  20. data/lib/padrino-core/locale/ja.yml +4 -1
  21. data/lib/padrino-core/locale/lv.yml +34 -0
  22. data/lib/padrino-core/locale/nl.yml +4 -1
  23. data/lib/padrino-core/locale/no.yml +4 -1
  24. data/lib/padrino-core/locale/pl.yml +4 -1
  25. data/lib/padrino-core/locale/pt_br.yml +4 -1
  26. data/lib/padrino-core/locale/ru.yml +4 -1
  27. data/lib/padrino-core/locale/tr.yml +4 -1
  28. data/lib/padrino-core/locale/uk.yml +4 -1
  29. data/lib/padrino-core/locale/zh_cn.yml +4 -1
  30. data/lib/padrino-core/locale/zh_tw.yml +4 -1
  31. data/lib/padrino-core/logger.rb +119 -128
  32. data/lib/padrino-core/mounter.rb +46 -14
  33. data/lib/padrino-core/reloader.rb +5 -3
  34. data/lib/padrino-core/router.rb +30 -11
  35. data/lib/padrino-core/server.rb +14 -5
  36. data/lib/padrino-core/support_lite.rb +54 -20
  37. data/lib/padrino-core/tasks.rb +1 -3
  38. data/lib/padrino-core/version.rb +8 -4
  39. data/lib/padrino-core.rb +58 -11
  40. data/padrino-core.gemspec +1 -1
  41. data/test/fixtures/apps/simple.rb +1 -1
  42. data/test/helper.rb +4 -24
  43. data/test/mini_shoulda.rb +45 -0
  44. data/test/test_application.rb +19 -18
  45. data/test/test_core.rb +2 -2
  46. data/test/test_dependencies.rb +5 -5
  47. data/test/test_filters.rb +2 -1
  48. data/test/test_locale.rb +1 -1
  49. data/test/test_logger.rb +1 -1
  50. data/test/test_mounter.rb +26 -25
  51. data/test/test_reloader_complex.rb +5 -3
  52. data/test/test_reloader_simple.rb +6 -5
  53. data/test/test_rendering.rb +8 -5
  54. data/test/test_restful_routing.rb +1 -1
  55. data/test/test_router.rb +1 -1
  56. data/test/test_routing.rb +33 -12
  57. metadata +13 -9
@@ -11,13 +11,7 @@ module Padrino
11
11
  # * Ignore server names (this solve issues with vhost and domain aliases)
12
12
  # * Use hosts instead of server name for mappings (this help us with our vhost and doman aliases)
13
13
  #
14
- # ==== Options
15
- #
16
- # :to:: The class of application that you want mount
17
- # :path:: Map the app to the given path
18
- # :host:: Map the app to the given host
19
- #
20
- # ==== Examples
14
+ # @example
21
15
  #
22
16
  # routes = Padrino::Router.new do
23
17
  # map(:path => "/", :to => PadrinoWeb, :host => "padrino.local")
@@ -30,17 +24,33 @@ module Padrino
30
24
  # end
31
25
  # run routes
32
26
  #
27
+ # @semipublic
33
28
  class Router
29
+
30
+ # Constructs a new route mapper instance
34
31
  def initialize(*mapping, &block)
35
32
  @mapping = []
36
33
  mapping.each { |m| map(m) }
37
34
  instance_eval(&block) if block
38
35
  end
39
36
 
40
- def sort!
41
- @mapping = @mapping.sort_by { |h, p, m, a| -p.size }
42
- end
43
-
37
+ ##
38
+ # Map a route path and host to a specified application.
39
+ #
40
+ # @param [Hash] options
41
+ # The options to map.
42
+ # @option options [Sinatra::Application] :to
43
+ # The class of the application to mount.
44
+ # @option options [String] :path ("/")
45
+ # The path to map the specified application.
46
+ # @option options [String] :host
47
+ # The host to map the specified application.
48
+ #
49
+ # @example
50
+ # map(:path => "/", :to => PadrinoWeb, :host => "padrino.local")
51
+ #
52
+ # @return [Array] The sorted route mappings.
53
+ # @api semipublic
44
54
  def map(options={})
45
55
  path = options[:path] || "/"
46
56
  host = options[:host]
@@ -57,6 +67,8 @@ module Padrino
57
67
  sort!
58
68
  end
59
69
 
70
+ # The call handler setup to route a request given the mappings specified.
71
+ # @api private
60
72
  def call(env)
61
73
  rPath = env["PATH_INFO"].to_s
62
74
  script_name = env['SCRIPT_NAME']
@@ -75,5 +87,12 @@ module Padrino
75
87
  end
76
88
  [404, {"Content-Type" => "text/plain", "X-Cascade" => "pass"}, ["Not Found: #{rPath}"]]
77
89
  end
90
+
91
+ private
92
+
93
+ # Sorts the mapped routes in consistent order
94
+ def sort!
95
+ @mapping = @mapping.sort_by { |h, p, m, a| -p.size }
96
+ end
78
97
  end # Router
79
98
  end # Padrino
@@ -1,10 +1,9 @@
1
1
  module Padrino
2
2
  ##
3
- # Run the Padrino apps as a self-hosted server using:
4
- # thin, mongrel, webrick in that order.
5
- #
6
- # ==== Examples
3
+ # Runs the Padrino apps as a self-hosted server using:
4
+ # thin, mongrel, or webrick in that order.
7
5
  #
6
+ # @example
8
7
  # Padrino.run! # with these defaults => host: "localhost", port: "3000", adapter: the first found
9
8
  # Padrino.run!("localhost", "4000", "mongrel") # use => host: "0.0.0.0", port: "3000", adapter: "mongrel"
10
9
  #
@@ -14,12 +13,13 @@ module Padrino
14
13
  end
15
14
 
16
15
  ##
17
- # This module build a Padrino server
16
+ # This module builds a Padrino server to run the project based on available handlers.
18
17
  #
19
18
  class Server < Rack::Server
20
19
  # Server Handlers
21
20
  Handlers = [:thin, :mongrel, :webrick]
22
21
 
22
+ # Starts the application on the available server with specified options.
23
23
  def self.start(app, opts={})
24
24
  options = {}.merge(opts) # We use a standard hash instead of Thor::CoreExt::HashWithIndifferentAccess
25
25
  options.symbolize_keys!
@@ -38,6 +38,7 @@ module Padrino
38
38
  @options, @app = options, app
39
39
  end
40
40
 
41
+ # Starts the application on the available server with specified options.
41
42
  def start
42
43
  puts "=> Padrino/#{Padrino.version} has taken the stage #{Padrino.env} at http://#{options[:Host]}:#{options[:Port]}"
43
44
  [:INT, :TERM].each { |sig| trap(sig) { exit } }
@@ -46,16 +47,24 @@ module Padrino
46
47
  puts "<= Padrino has ended his set (crowd applauds)" unless options[:daemonize]
47
48
  end
48
49
 
50
+ # The application the server will run.
49
51
  def app
50
52
  @app
51
53
  end
52
54
  alias :wrapped_app :app
53
55
 
56
+ # The options specified to the server.
54
57
  def options
55
58
  @options
56
59
  end
57
60
 
58
61
  private
62
+
63
+ # Detects the supported handler to use.
64
+ #
65
+ # @example
66
+ # detect_rack_handler => <ThinHandler>
67
+ #
59
68
  def self.detect_rack_handler
60
69
  Handlers.each do |handler|
61
70
  begin
@@ -10,10 +10,12 @@ require 'active_support/core_ext/array/extract_options' # extract_options
10
10
  require 'active_support/inflector/methods' # constantize
11
11
  require 'active_support/inflector/inflections' # pluralize
12
12
  require 'active_support/inflections' # load default inflections
13
+ require 'yaml' unless defined?(YAML) # load yaml for i18n
14
+ require 'Win32/Console/ANSI' if RUBY_PLATFORM =~ /win32/ # ruby color suppor for win
13
15
 
14
16
  ##
15
- # This is a small version of active_support/core_ext/string/inflections.rb
16
- # to prevent to load a lot of dependencies including I18n gem
17
+ # This is an adapted version of active_support/core_ext/string/inflections.rb
18
+ # to prevent loading several dependencies including I18n gem.
17
19
  #
18
20
  # Issue: https://github.com/rails/rails/issues/1526
19
21
  #
@@ -51,7 +53,6 @@ class String
51
53
  # in the string. It raises a NameError when the name is not in CamelCase
52
54
  # or is not initialized.
53
55
  #
54
- # Examples
55
56
  # "Module".constantize # => Module
56
57
  # "Class".constantize # => Class
57
58
  #
@@ -59,6 +60,18 @@ class String
59
60
  ActiveSupport::Inflector.constantize(self)
60
61
  end
61
62
 
63
+ ##
64
+ # The reverse of +camelize+. Makes an underscored, lowercase form from the expression in the string.
65
+ #
66
+ # +underscore+ will also change '::' to '/' to convert namespaces to paths.
67
+ #
68
+ # "ActiveRecord".underscore # => "active_record"
69
+ # "ActiveRecord::Errors".underscore # => active_record/errors
70
+ #
71
+ def underscore
72
+ ActiveSupport::Inflector.underscore(self)
73
+ end
74
+
62
75
  ##
63
76
  # By default, +camelize+ converts strings to UpperCamelCase. If the argument to camelize
64
77
  # is set to <tt>:lower</tt> then camelize produces lowerCamelCase.
@@ -78,18 +91,6 @@ class String
78
91
  end
79
92
  alias_method :camelcase, :camelize
80
93
 
81
- ##
82
- # The reverse of +camelize+. Makes an underscored, lowercase form from the expression in the string.
83
- #
84
- # +underscore+ will also change '::' to '/' to convert namespaces to paths.
85
- #
86
- # "ActiveRecord".underscore # => "active_record"
87
- # "ActiveRecord::Errors".underscore # => active_record/errors
88
- #
89
- def underscore
90
- ActiveSupport::Inflector.underscore(self)
91
- end
92
-
93
94
  ##
94
95
  # Create a class name from a plural table name like Rails does for table names to models.
95
96
  # Note that this returns a string and not a class. (To convert to an actual class
@@ -148,11 +149,44 @@ module FileSet
148
149
  end
149
150
 
150
151
  ##
151
- # YAML Engine Parsing Fix
152
- # https://github.com/padrino/padrino-framework/issues/424
152
+ # Removes indentation
153
+ # Add colors
154
+ #
155
+ # @example
156
+ # help <<-EOS.undent
157
+ # Here my help usage
158
+ # sample_code
159
+ #
160
+ # Fix
161
+ # EOS
162
+ # puts help.red.bold
153
163
  #
154
- require 'yaml' unless defined?(YAML)
155
- YAML::ENGINE.yamler = "syck" if defined?(YAML::ENGINE)
164
+ class String
165
+ def self.colors
166
+ @_colors ||= {
167
+ :clear => 0,
168
+ :bold => 1,
169
+ :black => 30,
170
+ :red => 31,
171
+ :green => 32,
172
+ :yellow => 33,
173
+ :blue => 34,
174
+ :magenta => 35,
175
+ :cyan => 36,
176
+ :white => 37
177
+ }
178
+ end
179
+
180
+ colors.each do |color, value|
181
+ define_method(color) do
182
+ ["\e[", value.to_s, "m", self, "\e[", self.class.colors[:clear], "m"] * ''
183
+ end
184
+ end
185
+
186
+ def undent
187
+ gsub(/^.{#{slice(/^ +/).size}}/, '')
188
+ end
189
+ end
156
190
 
157
191
  ##
158
192
  # Loads our locale configuration files
@@ -160,6 +194,6 @@ YAML::ENGINE.yamler = "syck" if defined?(YAML::ENGINE)
160
194
  I18n.load_path += Dir["#{File.dirname(__FILE__)}/locale/*.yml"] if defined?(I18n)
161
195
 
162
196
  ##
163
- # Used to know if this file has already been required
197
+ # Used to determine if this file has already been required
164
198
  #
165
199
  module SupportLite; end
@@ -1,12 +1,10 @@
1
1
  module Padrino
2
-
3
2
  ##
4
3
  # This module it's used for bootstrap with padrino rake
5
4
  # thirdy party tasks, in your gem/plugin/extension you
6
5
  # need only do this:
7
6
  #
8
- # ==== Examples
9
- #
7
+ # @example
10
8
  # Padrino::Tasks.files << yourtask.rb
11
9
  # Padrino::Tasks.files.concat(Dir["/path/to/all/my/tasks/*.rb"])
12
10
  # Padrino::Tasks.files.unshift("yourtask.rb")
@@ -1,13 +1,17 @@
1
- ##
1
+ #
2
2
  # Manages current Padrino version for use in gem generation.
3
3
  #
4
4
  # We put this in a separate file so you can get padrino version
5
5
  # without include full padrino core.
6
6
  #
7
7
  module Padrino
8
- VERSION = '0.10.2' unless defined?(Padrino::VERSION)
9
- ##
10
- # Return the current Padrino version
8
+ VERSION = '0.10.3' unless defined?(Padrino::VERSION)
9
+
10
+ #
11
+ # The current Padrino version.
12
+ #
13
+ # @return [String]
14
+ # The version number.
11
15
  #
12
16
  def self.version
13
17
  VERSION
data/lib/padrino-core.rb CHANGED
@@ -16,8 +16,13 @@ module Padrino
16
16
  ##
17
17
  # Helper method for file references.
18
18
  #
19
- # ==== Examples
19
+ # @param [Array<String>] args
20
+ # The directories to join to {PADRINO_ROOT}.
20
21
  #
22
+ # @return [String]
23
+ # The absolute path.
24
+ #
25
+ # @example
21
26
  # # Referencing a file in config called settings.yml
22
27
  # Padrino.root("config", "settings.yml")
23
28
  # # returns PADRINO_ROOT + "/config/setting.yml"
@@ -27,21 +32,30 @@ module Padrino
27
32
  end
28
33
 
29
34
  ##
30
- # Helper method that return PADRINO_ENV
35
+ # Helper method that return {PADRINO_ENV}.
36
+ #
37
+ # @return [Symbol]
38
+ # The Padrino Environment.
31
39
  #
32
40
  def env
33
41
  @_env ||= PADRINO_ENV.to_s.downcase.to_sym
34
42
  end
35
43
 
36
44
  ##
37
- # Returns the resulting rack builder mapping each 'mounted' application
45
+ # The resulting rack builder mapping each 'mounted' application.
46
+ #
47
+ # @return [Padrino::Router]
48
+ # The router for the application.
49
+ #
50
+ # @raise [ApplicationLoadError]
51
+ # No applications were mounted.
38
52
  #
39
53
  def application
40
54
  raise ApplicationLoadError, "At least one app must be mounted!" unless Padrino.mounted_apps && Padrino.mounted_apps.any?
41
55
  router = Padrino::Router.new
42
56
  Padrino.mounted_apps.each { |app| app.map_onto(router) }
43
57
 
44
- unless middleware.empty?
58
+ if middleware.present?
45
59
  builder = Rack::Builder.new
46
60
  middleware.each { |c,a,b| builder.use(c, *a, &b) }
47
61
  builder.run(router)
@@ -55,6 +69,10 @@ module Padrino
55
69
  # Configure Global Project Settings for mounted apps. These can be overloaded
56
70
  # in each individual app's own personal configuration. This can be used like:
57
71
  #
72
+ # @yield []
73
+ # The given block will be called to configure each application.
74
+ #
75
+ # @example
58
76
  # Padrino.configure_apps do
59
77
  # enable :sessions
60
78
  # disable :raise_errors
@@ -64,16 +82,24 @@ module Padrino
64
82
  @_global_configuration = block if block_given?
65
83
  end
66
84
 
67
- ###
68
- # Returns project-wide configuration settings
69
- # defined in 'configure_apps' block
85
+ ##
86
+ # Returns project-wide configuration settings defined in
87
+ # {configure_apps} block.
70
88
  #
71
89
  def apps_configuration
72
90
  @_global_configuration
73
91
  end
74
92
 
75
93
  ##
76
- # Default encoding to UTF8.
94
+ # Set +Encoding.default_internal+ and +Encoding.default_external+
95
+ # to +Encoding::UFT_8+.
96
+ #
97
+ # Please note that in +1.9.2+ with some template engines like +haml+
98
+ # you should turn off Encoding.default_internal to prevent problems.
99
+ #
100
+ # @see https://github.com/rtomayko/tilt/issues/75
101
+ #
102
+ # @return [NilClass]
77
103
  #
78
104
  def set_encoding
79
105
  if RUBY_VERSION < '1.9'
@@ -86,9 +112,15 @@ module Padrino
86
112
  end
87
113
 
88
114
  ##
89
- # Return bundle status :+:locked+ if .bundle/environment.rb exist :+:unlocked if Gemfile exist
115
+ # Determines whether the dependencies are locked by Bundler.
90
116
  # otherwise return nil
91
117
  #
118
+ # @return [:locked, :unlocked, nil]
119
+ # Returns +:locked+ if the +Gemfile.lock+ file exists, or +:unlocked+
120
+ # if only the +Gemfile+ exists.
121
+ #
122
+ # @deprecated Will be removed in 1.0.0
123
+ #
92
124
  def bundle
93
125
  return :locked if File.exist?(root('Gemfile.lock'))
94
126
  return :unlocked if File.exist?(root("Gemfile"))
@@ -96,14 +128,20 @@ module Padrino
96
128
 
97
129
  ##
98
130
  # A Rack::Builder object that allows to add middlewares in front of all
99
- # Padrino applications
131
+ # Padrino applications.
132
+ #
133
+ # @return [Array<Array<Class, Array, Proc>>]
134
+ # The middleware classes.
100
135
  #
101
136
  def middleware
102
137
  @middleware ||= []
103
138
  end
104
139
 
105
140
  ##
106
- # Clears all previously configured middlewares
141
+ # Clears all previously configured middlewares.
142
+ #
143
+ # @return [Array]
144
+ # An empty array
107
145
  #
108
146
  def clear_middleware!
109
147
  @middleware = []
@@ -112,6 +150,15 @@ module Padrino
112
150
  ##
113
151
  # Convenience method for adding a Middleware to the whole padrino app.
114
152
  #
153
+ # @param [Class] m
154
+ # The middleware class.
155
+ #
156
+ # @param [Array] args
157
+ # The arguments for the middleware.
158
+ #
159
+ # @yield []
160
+ # The given block will be passed to the initialized middleware.
161
+ #
115
162
  def use(m, *args, &block)
116
163
  middleware << [m, args, block]
117
164
  end
data/padrino-core.gemspec CHANGED
@@ -31,7 +31,7 @@ Gem::Specification.new do |s|
31
31
  s.post_install_message << "\n\e[32m" + ("*" * 20) + "\n\e[0m"
32
32
 
33
33
  s.add_dependency("tilt", "~> 1.3.0")
34
- s.add_dependency("sinatra", "~> 1.2.6")
34
+ s.add_dependency("sinatra", "~> 1.3.0")
35
35
  s.add_dependency("http_router", "~> 0.10.2")
36
36
  s.add_dependency("thor", "~> 0.14.3")
37
37
  s.add_dependency("activesupport", "~> 3.1.0")
@@ -14,7 +14,7 @@ end
14
14
 
15
15
  SimpleDemo.controllers do
16
16
  get "/" do
17
- 'The magick number is: 724274705032786548110472817755585178605481536388041566742570203174924198689!' # Change only the number!!!
17
+ 'The magick number is: 2767356926488785838763860464013972991031534522105386787489885890443740254365!' # Change only the number!!!
18
18
  end
19
19
 
20
20
  get "/rand" do
data/test/helper.rb CHANGED
@@ -2,42 +2,22 @@ ENV['PADRINO_ENV'] = 'test'
2
2
  PADRINO_ROOT = File.dirname(__FILE__) unless defined?(PADRINO_ROOT)
3
3
 
4
4
  require File.expand_path('../../../load_paths', __FILE__)
5
+ require File.expand_path('../mini_shoulda', __FILE__)
5
6
  require 'padrino-core'
6
7
  require 'json'
7
- require 'test/unit'
8
8
  require 'rack/test'
9
9
  require 'rack'
10
- require 'shoulda'
11
10
 
12
11
  # Rubies < 1.9 don't handle hashes in the properly order so to prevent
13
12
  # this issue for now we remove extra values from mimetypes.
14
13
  Rack::Mime::MIME_TYPES.delete(".xsl") # In this way application/xml respond only to .xml
15
14
 
16
- module Kernel
17
- # Silences the output by redirecting to stringIO
18
- # silence_logger { ...commands... } => "...output..."
19
- def silence_logger(&block)
20
- $stdout = log_buffer = StringIO.new
21
- block.call
22
- $stdout = STDOUT
23
- log_buffer.string
24
- end
25
- alias :silence_stdout :silence_logger
26
-
27
- def silence_warnings
28
- old_verbose, $VERBOSE = $VERBOSE, nil
29
- yield
30
- ensure
31
- $VERBOSE = old_verbose
32
- end
33
- end
34
-
35
- class Class
15
+ class Sinatra::Base
36
16
  # Allow assertions in request context
37
- include Test::Unit::Assertions
17
+ include MiniTest::Assertions
38
18
  end
39
19
 
40
- class Test::Unit::TestCase
20
+ class MiniTest::Spec
41
21
  include Rack::Test::Methods
42
22
 
43
23
  # Sets up a Sinatra::Base subclass defined with the block
@@ -0,0 +1,45 @@
1
+ gem 'minitest'
2
+ require 'minitest/spec'
3
+ require 'minitest/autorun'
4
+ require 'mocha' # Load mocha after minitest
5
+
6
+ begin
7
+ require 'ruby-debug'
8
+ rescue LoadError; end
9
+
10
+ class MiniTest::Spec
11
+ class << self
12
+ alias :setup :before unless defined?(Rails)
13
+ alias :teardown :after unless defined?(Rails)
14
+ alias :should :it
15
+ alias :context :describe
16
+ def should_eventually(desc)
17
+ it("should eventually #{desc}") { skip("Should eventually #{desc}") }
18
+ end
19
+ end
20
+ alias :assert_no_match :refute_match
21
+ alias :assert_not_nil :refute_nil
22
+ alias :assert_not_equal :refute_equal
23
+ end
24
+
25
+ class ColoredIO
26
+ def initialize(io)
27
+ @io = io
28
+ end
29
+
30
+ def print(o)
31
+ case o
32
+ when "." then @io.send(:print, o.green)
33
+ when "E" then @io.send(:print, o.red)
34
+ when "F" then @io.send(:print, o.yellow)
35
+ when "S" then @io.send(:print, o.magenta)
36
+ else @io.send(:print, o)
37
+ end
38
+ end
39
+
40
+ def puts(*o)
41
+ super
42
+ end
43
+ end
44
+
45
+ MiniTest::Unit.output = ColoredIO.new(MiniTest::Unit.output)
@@ -1,9 +1,10 @@
1
1
  require File.expand_path(File.dirname(__FILE__) + '/helper')
2
2
 
3
+ class PadrinoPristine < Padrino::Application; end
3
4
  class PadrinoTestApp < Padrino::Application; end
4
5
  class PadrinoTestApp2 < Padrino::Application; end
5
6
 
6
- class TestApplication < Test::Unit::TestCase
7
+ describe "Application" do
7
8
  def setup
8
9
  Padrino.clear!
9
10
  end
@@ -15,27 +16,27 @@ class TestApplication < Test::Unit::TestCase
15
16
  context 'for application functionality' do
16
17
 
17
18
  should 'check default options' do
18
- assert File.identical?(__FILE__, PadrinoTestApp.app_file)
19
- assert_equal :padrino_test_app, PadrinoTestApp.app_name
20
- assert_equal :test, PadrinoTestApp.environment
21
- assert_equal Padrino.root("views"), PadrinoTestApp.views
22
- assert PadrinoTestApp.raise_errors
23
- assert !PadrinoTestApp.logging
24
- assert !PadrinoTestApp.sessions
25
- assert !PadrinoTestApp.dump_errors
26
- assert !PadrinoTestApp.show_exceptions
27
- assert PadrinoTestApp.raise_errors
19
+ assert File.identical?(__FILE__, PadrinoPristine.app_file)
20
+ assert_equal :padrino_pristine, PadrinoPristine.app_name
21
+ assert_equal :test, PadrinoPristine.environment
22
+ assert_equal Padrino.root("views"), PadrinoPristine.views
23
+ assert PadrinoPristine.raise_errors
24
+ assert !PadrinoPristine.logging
25
+ assert !PadrinoPristine.sessions
26
+ assert !PadrinoPristine.dump_errors
27
+ assert !PadrinoPristine.show_exceptions
28
+ assert PadrinoPristine.raise_errors
28
29
  assert !Padrino.configure_apps
29
30
  end
30
31
 
31
32
  should 'check padrino specific options' do
32
- assert !PadrinoTestApp.instance_variable_get(:@_configured)
33
- PadrinoTestApp.send(:setup_application!)
34
- assert_equal :padrino_test_app, PadrinoTestApp.app_name
35
- assert_equal 'StandardFormBuilder', PadrinoTestApp.default_builder
36
- assert PadrinoTestApp.instance_variable_get(:@_configured)
37
- assert !PadrinoTestApp.reload?
38
- assert !PadrinoTestApp.flash
33
+ assert !PadrinoPristine.instance_variable_get(:@_configured)
34
+ PadrinoPristine.send(:setup_application!)
35
+ assert_equal :padrino_pristine, PadrinoPristine.app_name
36
+ assert_equal 'StandardFormBuilder', PadrinoPristine.default_builder
37
+ assert PadrinoPristine.instance_variable_get(:@_configured)
38
+ assert !PadrinoPristine.reload?
39
+ assert !PadrinoPristine.flash
39
40
  end
40
41
 
41
42
  should 'set global project settings' do
data/test/test_core.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  require File.expand_path(File.dirname(__FILE__) + '/helper')
2
2
 
3
- class TestCore < Test::Unit::TestCase
3
+ describe "Core" do
4
4
  def setup
5
5
  Padrino.clear!
6
6
  end
@@ -42,7 +42,7 @@ class TestCore < Test::Unit::TestCase
42
42
  end
43
43
 
44
44
  should 'raise application error if I instantiate a new padrino application without mounted apps' do
45
- assert_raise(Padrino::ApplicationLoadError) { Padrino.application.new }
45
+ assert_raises(Padrino::ApplicationLoadError) { Padrino.application.new }
46
46
  end
47
47
 
48
48
  should "check before/after padrino load hooks" do
@@ -1,11 +1,11 @@
1
1
  require File.expand_path(File.dirname(__FILE__) + '/helper')
2
2
 
3
- class TestDependencies < Test::Unit::TestCase
3
+ describe "Dependencies" do
4
4
  context 'when we require a dependency that have another dependency' do
5
5
 
6
6
  should 'raise an error without reloading it twice' do
7
- silence_warnings do
8
- assert_raise(RuntimeError) do
7
+ capture_io do
8
+ assert_raises(RuntimeError) do
9
9
  Padrino.require_dependencies(
10
10
  Padrino.root("fixtures/dependencies/a.rb"),
11
11
  Padrino.root("fixtures/dependencies/b.rb"),
@@ -18,7 +18,7 @@ class TestDependencies < Test::Unit::TestCase
18
18
  end
19
19
 
20
20
  should 'resolve dependency problems' do
21
- silence_warnings do
21
+ capture_io do
22
22
  Padrino.require_dependencies(
23
23
  Padrino.root("fixtures/dependencies/a.rb"),
24
24
  Padrino.root("fixtures/dependencies/b.rb"),
@@ -30,7 +30,7 @@ class TestDependencies < Test::Unit::TestCase
30
30
  end
31
31
 
32
32
  should 'remove partially loaded constants' do
33
- silence_warnings do
33
+ capture_io do
34
34
  Padrino.require_dependencies(
35
35
  Padrino.root("fixtures/dependencies/circular/e.rb"),
36
36
  Padrino.root("fixtures/dependencies/circular/f.rb"),
data/test/test_filters.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  require File.expand_path(File.dirname(__FILE__) + '/helper')
2
2
 
3
- class TestFilters < Test::Unit::TestCase
3
+ describe "Filters" do
4
4
  should "filters by accept header" do
5
5
  mock_app do
6
6
  get '/foo', :provides => [:xml, :js] do
@@ -269,6 +269,7 @@ class TestFilters < Test::Unit::TestCase
269
269
  mock_app do
270
270
  before(:index, '/foo') { test = 'before' }
271
271
  get :index do
272
+ ''
272
273
  end
273
274
  end
274
275
  get '/foo'
data/test/test_locale.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  require File.expand_path(File.dirname(__FILE__) + '/helper')
2
2
 
3
- class TestLocales < Test::Unit::TestCase
3
+ describe "Locales" do
4
4
  Dir[File.expand_path("../../lib/padrino-core/locale/*.yml", __FILE__)].each do |file|
5
5
  base_original = YAML.load_file(file)
6
6
  name = File.basename(file, '.yml')