padrino-core 0.7.9 → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -18,7 +18,8 @@ begin
18
18
  gem.add_runtime_dependency "usher", ">= 0.6.2"
19
19
  gem.add_runtime_dependency "thor", ">= 0.13.0"
20
20
  gem.add_runtime_dependency "bundler", ">= 0.9.3"
21
- gem.add_development_dependency "shoulda", ">= 0"
21
+ gem.add_runtime_dependency "activesupport", ">= 2.3.5"
22
+ gem.add_development_dependency "shoulda", ">= 2.10.3"
22
23
  gem.add_development_dependency "mocha", ">= 0.9.7"
23
24
  gem.add_development_dependency "rack-test", ">= 0.5.0"
24
25
  gem.add_development_dependency "webrat", ">= 0.5.1"
@@ -39,14 +40,15 @@ end
39
40
 
40
41
  begin
41
42
  require 'rcov/rcovtask'
42
- Rcov::RcovTask.new do |test|
43
- test.libs << 'test'
44
- test.pattern = 'test/**/test_*.rb'
45
- test.verbose = true
43
+ Rcov::RcovTask.new do |rcov|
44
+ rcov.libs << 'test'
45
+ rcov.pattern = 'test/**/test_*.rb'
46
+ rcov.verbose = true
47
+ rcov.rcov_opts << ['--exclude /Gems/1.8/gems/,padrino-admin,padrino-cache,padrino-gen,padrino-helpers,padrino-mailer']
46
48
  end
47
49
  rescue LoadError
48
50
  task :rcov do
49
- abort "RCov is not available. In order to run rcov, you must: sudo gem install spicycode-rcov"
51
+ abort "RCov is not available. In order to run rcov, you must: sudo gem install relevance-rcov"
50
52
  end
51
53
  end
52
54
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.7.9
1
+ 0.8.0
@@ -1,5 +1,6 @@
1
1
  require 'usher'
2
2
  require 'sinatra/base'
3
+
3
4
  Dir[File.dirname(__FILE__) + '/padrino-core/*.rb'].each {|file| require file }
4
5
 
5
6
  # Defines our PADRINO_ENV
@@ -14,6 +15,7 @@ module Padrino
14
15
  # Helper method for file references.
15
16
  #
16
17
  # ==== Examples
18
+ #
17
19
  # # Referencing a file in config called settings.yml
18
20
  # Padrino.root("config", "settings.yml")
19
21
  # # returns PADRINO_ROOT + "/config/setting.yml"
@@ -15,7 +15,7 @@ end
15
15
 
16
16
  # Load apps
17
17
  Padrino.mounted_apps.each do |app|
18
- puts "=> Loading Application #{app.name}"
18
+ puts "=> Loading Application #{app.app_object}"
19
19
  Padrino.require_dependency(app.app_file)
20
20
  app.app_object.setup_application!
21
21
  end
@@ -249,7 +249,7 @@ module Padrino
249
249
  env["REMOTE_USER"] || "-",
250
250
  env["REQUEST_METHOD"],
251
251
  env["PATH_INFO"],
252
- env["QUERY_STRING"].empty? ? "" : "?"+env["QUERY_STRING"],
252
+ env["QUERY_STRING"].empty? ? "" : "?" + env["QUERY_STRING"],
253
253
  env["HTTP_VERSION"],
254
254
  status.to_s[0..3],
255
255
  length,
@@ -1,6 +1,13 @@
1
1
  ##
2
- # This file determines if extlib or activesupport are already loaded, and then ensures
3
- # the required objects and methods exist for Padrino to use.
2
+ # This file load some usefull extensions from Active Support.
3
+ #
4
+ # Why ActiveSupport and not ours or extlib?
5
+ #
6
+ # We don't love so much rewite code and we don't use extlib because:
7
+ #
8
+ # 1) ActiveRecord need ActiveSupport
9
+ # 2) MongoMapper need ActiveSuport
10
+ # 3) DataMapper it's planning to migrate to ActiveSupport (see: http://wiki.github.com/datamapper/dm-core/roadmap)
4
11
  #
5
12
  # Required for Padrino to run:
6
13
  #
@@ -16,28 +23,39 @@
16
23
  # * Hash#reverse_merge, Hash#reverse_merge!
17
24
  # * SupportLite::OrderedHash
18
25
  #
26
+
19
27
  require 'i18n'
28
+ require 'active_support/core_ext/kernel'
29
+ require 'active_support/core_ext/module'
30
+ require 'active_support/deprecation'
31
+ require 'active_support/core_ext/class/attribute_accessors'
32
+ require 'active_support/core_ext/hash'
33
+ require 'active_support/inflector'
34
+ require 'active_support/core_ext/object'
35
+ require 'active_support/core_ext/object/blank'
36
+ require 'active_support/core_ext/array'
37
+ require 'active_support/core_ext/module'
38
+ require 'active_support/ordered_hash'
20
39
 
21
40
  ##
22
- # Load our locales
41
+ # Define our Ordered Hash
23
42
  #
24
- I18n.load_path += Dir["#{File.dirname(__FILE__)}/locale/*.yml"]
25
-
26
- module Padrino
27
- ##
28
- # Return the current support used.
29
- # Can be one of: :extlib, :active_support
30
- #
31
- def self.support
32
- @_padrino_support
43
+ unless defined?(SupportLite::OrderedHash)
44
+ module SupportLite
45
+ OrderedHash = ::ActiveSupport::OrderedHash
33
46
  end
47
+ end
34
48
 
35
- end # Padrino
49
+ ##
50
+ # We new alwasy :to_params in a Hash
51
+ #
52
+ unless Hash.method_defined?(:to_params)
53
+ class Hash
54
+ alias :to_params :to_query
55
+ end
56
+ end
36
57
 
37
- if defined?(Extlib) # load if already using extlib
38
- Padrino.instance_variable_set(:@_padrino_support, :extlib)
39
- require File.dirname(__FILE__) + '/support_lite/extlib_support'
40
- else # load active support by default
41
- Padrino.instance_variable_set(:@_padrino_support, :active_support)
42
- require File.dirname(__FILE__) + '/support_lite/as_support'
43
- end
58
+ ##
59
+ # Load our locales
60
+ #
61
+ I18n.load_path += Dir["#{File.dirname(__FILE__)}/locale/*.yml"]
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{padrino-core}
8
- s.version = "0.7.9"
8
+ s.version = "0.8.0"
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-02-11}
12
+ s.date = %q{2010-02-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{padrinorb@gmail.com}
@@ -44,8 +44,6 @@ Gem::Specification.new do |s|
44
44
  "lib/padrino-core/reloader.rb",
45
45
  "lib/padrino-core/server.rb",
46
46
  "lib/padrino-core/support_lite.rb",
47
- "lib/padrino-core/support_lite/as_support.rb",
48
- "lib/padrino-core/support_lite/extlib_support.rb",
49
47
  "lib/padrino-core/tasks.rb",
50
48
  "lib/padrino-core/version.rb",
51
49
  "padrino-core.gemspec",
@@ -84,7 +82,8 @@ Gem::Specification.new do |s|
84
82
  s.add_runtime_dependency(%q<usher>, [">= 0.6.2"])
85
83
  s.add_runtime_dependency(%q<thor>, [">= 0.13.0"])
86
84
  s.add_runtime_dependency(%q<bundler>, [">= 0.9.3"])
87
- s.add_development_dependency(%q<shoulda>, [">= 0"])
85
+ s.add_runtime_dependency(%q<activesupport>, [">= 2.3.5"])
86
+ s.add_development_dependency(%q<shoulda>, [">= 2.10.3"])
88
87
  s.add_development_dependency(%q<mocha>, [">= 0.9.7"])
89
88
  s.add_development_dependency(%q<rack-test>, [">= 0.5.0"])
90
89
  s.add_development_dependency(%q<webrat>, [">= 0.5.1"])
@@ -94,7 +93,8 @@ Gem::Specification.new do |s|
94
93
  s.add_dependency(%q<usher>, [">= 0.6.2"])
95
94
  s.add_dependency(%q<thor>, [">= 0.13.0"])
96
95
  s.add_dependency(%q<bundler>, [">= 0.9.3"])
97
- s.add_dependency(%q<shoulda>, [">= 0"])
96
+ s.add_dependency(%q<activesupport>, [">= 2.3.5"])
97
+ s.add_dependency(%q<shoulda>, [">= 2.10.3"])
98
98
  s.add_dependency(%q<mocha>, [">= 0.9.7"])
99
99
  s.add_dependency(%q<rack-test>, [">= 0.5.0"])
100
100
  s.add_dependency(%q<webrat>, [">= 0.5.1"])
@@ -105,7 +105,8 @@ Gem::Specification.new do |s|
105
105
  s.add_dependency(%q<usher>, [">= 0.6.2"])
106
106
  s.add_dependency(%q<thor>, [">= 0.13.0"])
107
107
  s.add_dependency(%q<bundler>, [">= 0.9.3"])
108
- s.add_dependency(%q<shoulda>, [">= 0"])
108
+ s.add_dependency(%q<activesupport>, [">= 2.3.5"])
109
+ s.add_dependency(%q<shoulda>, [">= 2.10.3"])
109
110
  s.add_dependency(%q<mocha>, [">= 0.9.7"])
110
111
  s.add_dependency(%q<rack-test>, [">= 0.5.0"])
111
112
  s.add_dependency(%q<webrat>, [">= 0.5.1"])
@@ -12,11 +12,14 @@ class TestCore < Test::Unit::TestCase
12
12
  assert_respond_to Padrino, :load!
13
13
  assert_respond_to Padrino, :reload!
14
14
  assert_respond_to Padrino, :version
15
+ assert_respond_to Padrino, :bundle
15
16
  end
16
17
 
17
18
  should 'validate global helpers' do
18
19
  assert_equal :test, Padrino.env
19
20
  assert_match /\/test/, Padrino.root
21
+ assert_equal nil, Padrino.bundle
22
+ assert_not_nil Padrino.version
20
23
  end
21
24
 
22
25
  should 'set correct utf-8 encoding' do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: padrino-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.9
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Padrino Team
@@ -12,7 +12,7 @@ autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
14
 
15
- date: 2010-02-11 00:00:00 +01:00
15
+ date: 2010-02-14 00:00:00 +01:00
16
16
  default_executable: padrino
17
17
  dependencies:
18
18
  - !ruby/object:Gem::Dependency
@@ -65,6 +65,16 @@ dependencies:
65
65
  - !ruby/object:Gem::Version
66
66
  version: 0.9.3
67
67
  version:
68
+ - !ruby/object:Gem::Dependency
69
+ name: activesupport
70
+ type: :runtime
71
+ version_requirement:
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - ">="
75
+ - !ruby/object:Gem::Version
76
+ version: 2.3.5
77
+ version:
68
78
  - !ruby/object:Gem::Dependency
69
79
  name: shoulda
70
80
  type: :development
@@ -73,7 +83,7 @@ dependencies:
73
83
  requirements:
74
84
  - - ">="
75
85
  - !ruby/object:Gem::Version
76
- version: "0"
86
+ version: 2.10.3
77
87
  version:
78
88
  - !ruby/object:Gem::Dependency
79
89
  name: mocha
@@ -140,8 +150,6 @@ files:
140
150
  - lib/padrino-core/reloader.rb
141
151
  - lib/padrino-core/server.rb
142
152
  - lib/padrino-core/support_lite.rb
143
- - lib/padrino-core/support_lite/as_support.rb
144
- - lib/padrino-core/support_lite/extlib_support.rb
145
153
  - lib/padrino-core/tasks.rb
146
154
  - lib/padrino-core/version.rb
147
155
  - padrino-core.gemspec
@@ -1,38 +0,0 @@
1
- # This requires necessary pieces of ActiveSupport for the dependencies required by Padrino
2
-
3
- ## ActiveSupport#Version
4
- require 'active_support/version'
5
- ## ActiveSupport#Deprecation
6
- unless defined?(ActiveSupport::Deprecation)
7
- require 'active_support/core_ext/kernel' unless Kernel.method_defined?(:silence_warnings)
8
- require 'active_support/core_ext/module' unless Module.method_defined?(:mattr_accessor)
9
- require 'active_support/deprecation'
10
- end
11
- ## Class#cattr_accessor
12
- require 'active_support/core_ext/class/attribute_accessors' unless Class.method_defined?(:cattr_accessor)
13
- ## Hash#symbolize_keys, Hash#reverse_merge, Hash#reverse_merge!, Hash#extract_options!, Hash#slice!
14
- require 'active_support/core_ext/hash' unless Hash.method_defined?(:reverse_merge)
15
- ## Hash#to_params
16
- require 'active_support/core_ext/object' unless Object.method_defined?(:to_query)
17
- class Hash; alias :to_params :to_query; end unless Hash.method_defined?(:to_params)
18
- ## Object#with_options
19
- require 'active_support/option_merger'
20
- ## String#inflectors
21
- require 'active_support/inflector' unless String.method_defined?(:constantize)
22
- ## Object#blank?, Object#present?
23
- require 'active_support/core_ext/object' unless Object.method_defined?(:blank?)
24
- require 'active_support/core_ext/blank' unless Object.method_defined?(:blank?)
25
- ## Array#extract_options!
26
- require 'active_support/core_ext/array' unless Array.method_defined?(:extract_options!)
27
- ## Module#alias_method_chain
28
- require 'active_support/core_ext/module' unless Module.method_defined?(:alias_method_chain)
29
- ## SupportLite#OrderedHash
30
- require 'active_support/ordered_hash' unless defined?(ActiveSupport::OrderedHash)
31
- ## Float#round
32
- require 'active_support/core_ext/float/rounding'
33
-
34
- unless defined?(SupportLite::OrderedHash)
35
- module SupportLite
36
- OrderedHash = ::ActiveSupport::OrderedHash
37
- end
38
- end
@@ -1,207 +0,0 @@
1
- # This helps extlib to act like ActiveSupport for use with Padrino
2
-
3
- ## Class#cattr_accessor
4
- unless Class.method_defined?(:cattr_accessor)
5
- require 'extlib/class'
6
- end
7
-
8
- ## SupportLite::OrderedHash
9
- unless defined?(SupportLite::OrderedHash)
10
- require 'extlib/dictionary'
11
- module SupportLite
12
- OrderedHash = ::Dictionary
13
- end
14
- end
15
-
16
- ## Hash#symbolize_keys
17
- unless Hash.method_defined?(:symbolize_keys)
18
- require 'extlib/hash'
19
- require 'extlib/mash'
20
- class Hash
21
- def symbolize_keys
22
- Mash.new(self).symbolize_keys
23
- end
24
-
25
- def symbolize_keys!
26
- self.replace(symbolize_keys.to_hash)
27
- end
28
- end
29
- end
30
-
31
- ## Hash#slice, Hash#slice!
32
- unless Hash.method_defined?(:slice)
33
- require 'extlib/hash'
34
- class Hash
35
- # Slice a hash to include only the given keys. This is useful for
36
- # limiting an options hash to valid keys before passing to a method:
37
- #
38
- # def search(criteria = {})
39
- # assert_valid_keys(:mass, :velocity, :time)
40
- # end
41
- #
42
- # search(options.slice(:mass, :velocity, :time))
43
- #
44
- # If you have an array of keys you want to limit to, you should splat them:
45
- #
46
- # valid_keys = [:mass, :velocity, :time]
47
- # search(options.slice(*valid_keys))
48
- def slice(*keys)
49
- keys = keys.map! { |key| convert_key(key) } if respond_to?(:convert_key)
50
- hash = self.class.new
51
- keys.each { |k| hash[k] = self[k] if has_key?(k) }
52
- hash
53
- end
54
-
55
- # Replaces the hash with only the given keys.
56
- # Returns a hash contained the removed key/value pairs
57
- # {:a => 1, :b => 2, :c => 3, :d => 4}.slice!(:a, :b) # => {:c => 3, :d =>4}
58
- def slice!(*keys)
59
- keys = keys.map! { |key| convert_key(key) } if respond_to?(:convert_key)
60
- omit = slice(*self.keys - keys)
61
- hash = slice(*keys)
62
- replace(hash)
63
- omit
64
- end
65
- end
66
- end
67
-
68
- ## Hash#to_params
69
- unless Hash.method_defined?(:to_params)
70
- require 'extlib/hash'
71
- end
72
-
73
- ## Hash#reverse_merge, Hash#reverse_merge!
74
- unless Hash.method_defined?(:reverse_merge)
75
- class Hash
76
- def reverse_merge(other_hash)
77
- other_hash.merge(self)
78
- end
79
-
80
- def reverse_merge!(other_hash)
81
- replace(reverse_merge(other_hash))
82
- end
83
-
84
- def deep_merge(other_hash)
85
- target = dup
86
- other_hash.each_pair do |k,v|
87
- tv = target[k]
88
- target[k] = tv.is_a?(Hash) && v.is_a?(Hash) ? tv.deep_merge(v) : v
89
- end
90
- target
91
- end
92
- end
93
- end
94
-
95
- ## Array#extract_options!
96
- unless Array.method_defined?(:extract_options!)
97
- class Array
98
- def extract_options!
99
- last.is_a?(::Hash) ? pop : {}
100
- end
101
- end
102
- end
103
-
104
- ## String#inflectors
105
- unless String.method_defined?(:constantize)
106
- require 'extlib/inflection'
107
- class String
108
- def classify; Extlib::Inflection.classify(self); end
109
- def underscore; Extlib::Inflection.underscore(self); end
110
- def constantize; Extlib::Inflection.constantize(self); end
111
- def camelize; Extlib::Inflection.camelize(self); end
112
- def humanize; Extlib::Inflection.humanize(self); end
113
- alias :titleize :humanize
114
- end
115
- end
116
-
117
- ## Object#blank?
118
- unless Object.method_defined?(:blank?)
119
- require 'extlib/blank'
120
- end
121
-
122
- ## Object#present?
123
- unless Object.method_defined?(:present?)
124
- class Object
125
- def present?
126
- !blank?
127
- end
128
- end
129
- end
130
-
131
- ## Object#with_options
132
- unless Object.method_defined?(:with_options)
133
- class SupportLite::OptionMerger #:nodoc:
134
- instance_methods.each do |method|
135
- undef_method(method) if method !~ /^(__|instance_eval|class|object_id)/
136
- end
137
-
138
- def initialize(context, options)
139
- @context, @options = context, options
140
- end
141
-
142
- private
143
- def method_missing(method, *arguments, &block)
144
- if arguments.last.is_a?(Proc)
145
- proc = arguments.pop
146
- arguments << lambda { |*args| @options.deep_merge(proc.call(*args)) }
147
- else
148
- arguments << (arguments.last.respond_to?(:to_hash) ? @options.deep_merge(arguments.pop) : @options.dup)
149
- end
150
-
151
- @context.__send__(method, *arguments, &block)
152
- end
153
- end
154
-
155
- class Object
156
- def with_options(options)
157
- yield SupportLite::OptionMerger.new(self, options)
158
- end
159
- end
160
- end
161
-
162
- ## Module#alias_method_chain
163
- unless Module.method_defined?(:alias_method_chain)
164
- def alias_method_chain(target, feature)
165
- # Strip out punctuation on predicates or bang methods since
166
- # e.g. target?_without_feature is not a valid method name.
167
- aliased_target, punctuation = target.to_s.sub(/([?!=])$/, ''), $1
168
- yield(aliased_target, punctuation) if block_given?
169
-
170
- with_method, without_method = "#{aliased_target}_with_#{feature}#{punctuation}", "#{aliased_target}_without_#{feature}#{punctuation}"
171
-
172
- alias_method without_method, target
173
- alias_method target, with_method
174
-
175
- case
176
- when public_method_defined?(without_method)
177
- public target
178
- when protected_method_defined?(without_method)
179
- protected target
180
- when private_method_defined?(without_method)
181
- private target
182
- end
183
- end
184
- end
185
-
186
- ## Float#round
187
- unless Float.method_defined?(:round)
188
- class Float
189
- alias precisionless_round round
190
- private :precisionless_round
191
-
192
- # Rounds the float with the specified precision.
193
- #
194
- # x = 1.337
195
- # x.round # => 1
196
- # x.round(1) # => 1.3
197
- # x.round(2) # => 1.34
198
- def round(precision = nil)
199
- if precision
200
- magnitude = 10.0 ** precision
201
- (self * magnitude).round / magnitude
202
- else
203
- precisionless_round
204
- end
205
- end
206
- end
207
- end