pakyow-core 0.7.1 → 0.7.2

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/pakyow-core/CHANGES CHANGED
@@ -1,3 +1,9 @@
1
+ = 0.7.2 / 2012-02-29
2
+
3
+ * Application server shuts down gracefully
4
+ * Fix issue requesting route with format
5
+ * Fix issue surrounding ignore_routes -- now matches request path in all cases
6
+
1
7
  = 0.7.1 / 2012-01-08
2
8
 
3
9
  * Changed loader to only load ruby files
@@ -21,7 +21,10 @@ module Pakyow
21
21
  return if running?
22
22
  @running = true
23
23
  self.builder.run(self.prepare(args))
24
- detect_handler.run(builder, :Host => Pakyow::Configuration::Base.server.host, :Port => Pakyow::Configuration::Base.server.port)
24
+ detect_handler.run(builder, :Host => Pakyow::Configuration::Base.server.host, :Port => Pakyow::Configuration::Base.server.port) do |server|
25
+ trap(:INT) { stop(server) }
26
+ trap(:TERM) { stop(server) }
27
+ end
25
28
  end
26
29
 
27
30
  # Stages the application. Everything is loaded but the application is
@@ -133,6 +136,17 @@ module Pakyow
133
136
  end
134
137
  end
135
138
  end
139
+
140
+ def stop(server)
141
+ if server.respond_to?('stop!')
142
+ server.stop!
143
+ elsif server.respond_to?('stop')
144
+ server.stop
145
+ else
146
+ # exit ungracefully if necessary...
147
+ Process.exit!
148
+ end
149
+ end
136
150
  end
137
151
 
138
152
  include Helpers
@@ -161,7 +175,8 @@ module Pakyow
161
175
  end
162
176
 
163
177
  def invoke_route!(route, method=nil)
164
- self.request.working_path = route
178
+ base_route, ignore_format = StringUtils.split_at_last_dot(route)
179
+ self.request.working_path = base_route
165
180
  self.request.working_method = method if method
166
181
  block = prepare_route_block(route, self.request.working_method)
167
182
  throw :new_block, block
@@ -192,7 +207,8 @@ module Pakyow
192
207
  def call(env)
193
208
  self.request = Request.new(env)
194
209
  self.response = Rack::Response.new
195
- self.request.working_path = self.request.path
210
+ base_route, ignore_format = StringUtils.split_at_last_dot(self.request.path)
211
+ self.request.working_path = base_route
196
212
  self.request.working_method = self.request.method
197
213
 
198
214
  has_route = false
@@ -204,7 +220,7 @@ module Pakyow
204
220
  self.presenter.prepare_for_request(self.request)
205
221
  end
206
222
 
207
- has_route = trampoline(route_block) if !Pakyow::Configuration::App.ignore_routes
223
+ has_route = trampoline(route_block)
208
224
 
209
225
  if self.presenter
210
226
  self.response.body = [self.presenter.content]
@@ -408,11 +424,16 @@ module Pakyow
408
424
 
409
425
  def prepare_route_block(route, method)
410
426
  set_request_format_from_route(route)
411
-
412
- controller_block, packet = @route_store.get_block(route, method)
427
+ base_route, ignore_format = StringUtils.split_at_last_dot(route)
428
+
429
+ if Pakyow::Configuration::App.ignore_routes
430
+ controller_block, packet = nil, {:vars=>{}, :data=>nil}
431
+ else
432
+ controller_block, packet = @route_store.get_block(base_route, method)
433
+ end
413
434
 
414
435
  self.request.params.merge!(HashUtils.strhash(packet[:vars]))
415
- self.request.route_spec = packet[:data][:route_spec] if packet[:data] unless Pakyow::Configuration::App.ignore_routes
436
+ self.request.route_spec = packet[:data][:route_spec] if packet[:data]
416
437
  self.request.restful = packet[:data][:restful] if packet[:data]
417
438
 
418
439
  controller_block
metadata CHANGED
@@ -1,46 +1,62 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: pakyow-core
3
- version: !ruby/object:Gem::Version
4
- version: 0.7.1
3
+ version: !ruby/object:Gem::Version
4
+ hash: 7
5
5
  prerelease:
6
+ segments:
7
+ - 0
8
+ - 7
9
+ - 2
10
+ version: 0.7.2
6
11
  platform: ruby
7
- authors:
12
+ authors:
8
13
  - Bryan Powell
9
14
  - Bret Young
10
15
  autorequire:
11
16
  bindir: pakyow-core/bin
12
17
  cert_chain: []
13
- date: 2012-01-08 00:00:00.000000000Z
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
18
+
19
+ date: 2012-02-29 00:00:00 Z
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
16
22
  name: rack
17
- requirement: &70284532262360 !ruby/object:Gem::Requirement
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
18
25
  none: false
19
- requirements:
26
+ requirements:
20
27
  - - ~>
21
- - !ruby/object:Gem::Version
22
- version: '1.3'
28
+ - !ruby/object:Gem::Version
29
+ hash: 9
30
+ segments:
31
+ - 1
32
+ - 3
33
+ version: "1.3"
23
34
  type: :runtime
24
- prerelease: false
25
- version_requirements: *70284532262360
26
- - !ruby/object:Gem::Dependency
35
+ version_requirements: *id001
36
+ - !ruby/object:Gem::Dependency
27
37
  name: shoulda
28
- requirement: &70284532261660 !ruby/object:Gem::Requirement
38
+ prerelease: false
39
+ requirement: &id002 !ruby/object:Gem::Requirement
29
40
  none: false
30
- requirements:
41
+ requirements:
31
42
  - - ~>
32
- - !ruby/object:Gem::Version
33
- version: '2.11'
43
+ - !ruby/object:Gem::Version
44
+ hash: 21
45
+ segments:
46
+ - 2
47
+ - 11
48
+ version: "2.11"
34
49
  type: :development
35
- prerelease: false
36
- version_requirements: *70284532261660
50
+ version_requirements: *id002
37
51
  description: pakyow-core
38
52
  email: bryan@metabahn.com
39
- executables:
53
+ executables:
40
54
  - pakyow
41
55
  extensions: []
56
+
42
57
  extra_rdoc_files: []
43
- files:
58
+
59
+ files:
44
60
  - pakyow-core/CHANGES
45
61
  - pakyow-core/README
46
62
  - pakyow-core/MIT-LICENSE
@@ -82,27 +98,38 @@ files:
82
98
  - pakyow-core/bin/pakyow
83
99
  homepage: http://pakyow.com
84
100
  licenses: []
101
+
85
102
  post_install_message:
86
103
  rdoc_options: []
87
- require_paths:
104
+
105
+ require_paths:
88
106
  - pakyow-core/lib
89
- required_ruby_version: !ruby/object:Gem::Requirement
107
+ required_ruby_version: !ruby/object:Gem::Requirement
90
108
  none: false
91
- requirements:
92
- - - ! '>='
93
- - !ruby/object:Gem::Version
109
+ requirements:
110
+ - - ">="
111
+ - !ruby/object:Gem::Version
112
+ hash: 57
113
+ segments:
114
+ - 1
115
+ - 8
116
+ - 7
94
117
  version: 1.8.7
95
- required_rubygems_version: !ruby/object:Gem::Requirement
118
+ required_rubygems_version: !ruby/object:Gem::Requirement
96
119
  none: false
97
- requirements:
98
- - - ! '>='
99
- - !ruby/object:Gem::Version
100
- version: '0'
120
+ requirements:
121
+ - - ">="
122
+ - !ruby/object:Gem::Version
123
+ hash: 3
124
+ segments:
125
+ - 0
126
+ version: "0"
101
127
  requirements: []
128
+
102
129
  rubyforge_project: pakyow-core
103
- rubygems_version: 1.8.10
130
+ rubygems_version: 1.8.11
104
131
  signing_key:
105
132
  specification_version: 3
106
133
  summary: pakyow-core
107
134
  test_files: []
108
- has_rdoc:
135
+