wd_sinatra 0.3.2 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -1,4 +1,3 @@
1
- *.gem
2
1
  *.rbc
3
2
  .bundle
4
3
  .config
data/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Weasel Diesel Sinatra Changelog
2
2
 
3
+ ## 1.0.0
4
+ * It's time for WD to graduate, it's been behaving well in production
5
+ for a while and no major problems were reported. A new rake task was
6
+ added in the default Rakefile to print the routes. But besides that,
7
+ this version didn't add anything major to 0.3.2
8
+
3
9
  ## 0.3.2
4
10
  * Removed `post_dispatch_hook` since it doesn't work well with `halt`
5
11
  and file responses. Use Sinatra's `after` filter instead.
@@ -89,23 +89,28 @@ class WeaselDiesel
89
89
 
90
90
  end # of RequestHandler
91
91
 
92
- attr_reader :handler
92
+
93
+ # Creates a new handler per request to dispatch
94
+ # by cloning the alpha handler
95
+ def handler
96
+ @alpha_handler.clone
97
+ end
93
98
 
94
99
  def implementation(&block)
95
100
  if block_given?
96
- @handler = RequestHandler.new(self, &block)
97
- @handler.define_singleton_method(:service_dispatch, block)
101
+ @alpha_handler = RequestHandler.new(self, &block)
102
+ @alpha_handler.define_singleton_method(:service_dispatch, block)
98
103
  end
99
- @handler
104
+ @alpha_handler
100
105
  end
101
106
 
102
107
  def load_sinatra_route
103
108
  service = self
104
109
  upcase_verb = service.verb.to_s.upcase
105
110
  unless ENV['DONT_PRINT_ROUTES']
106
- LOGGER.info "Available endpoint: #{self.http_verb.upcase} /#{self.url}"
111
+ LOGGER.info "Available endpoint: #{self.http_verb.upcase} /#{self.url}"
107
112
  end
108
- raise "DSL is missing the implementation block" unless self.handler && self.handler.respond_to?(:service_dispatch)
113
+ raise "DSL is missing the implementation block" unless ['SKIP_SERVICE_CHECK'] || self.handler
109
114
 
110
115
  # Define the route directly to save some object allocations on the critical path
111
116
  # Note that we are using a private API to define the route and that unlike sinatra usual DSL
@@ -1,5 +1,5 @@
1
1
  module WD
2
2
  module Sinatra
3
- VERSION = "0.3.2"
3
+ VERSION = "1.0.0"
4
4
  end
5
5
  end
data/templates/Rakefile CHANGED
@@ -26,6 +26,15 @@ task :environment do
26
26
  WDSinatra::AppLoader.server(root)
27
27
  end
28
28
 
29
+ desc "Prints the available routes set by the application"
30
+ task :routes do
31
+ WDSinatra::AppLoader.console(root)
32
+ print "Available routes: \n"
33
+ WSList.all.each do |service|
34
+ print "#{service.http_verb.upcase}\t/#{service.url}\n"
35
+ end
36
+ end
37
+
29
38
  WDSinatra::AppLoader.set_loadpath(root)
30
39
  Dir.glob("lib/tasks/**/*.rake").each do |task_file|
31
40
  load task_file
@@ -1,6 +1,8 @@
1
1
  #!/usr/bin/env ruby
2
2
  require 'irb'
3
3
  require 'rubygems'
4
+ require 'bundler'
5
+ Bundler.setup
4
6
  require 'wd_sinatra/app_loader'
5
7
  root = File.expand_path('..', File.dirname(__FILE__))
6
8
  WDSinatra::AppLoader.console(root)
metadata CHANGED
@@ -1,47 +1,60 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: wd_sinatra
3
- version: !ruby/object:Gem::Version
4
- version: 0.3.2
3
+ version: !ruby/object:Gem::Version
4
+ hash: 23
5
5
  prerelease:
6
+ segments:
7
+ - 1
8
+ - 0
9
+ - 0
10
+ version: 1.0.0
6
11
  platform: ruby
7
- authors:
12
+ authors:
8
13
  - Matt Aimonetti
9
14
  autorequire:
10
15
  bindir: bin
11
16
  cert_chain: []
12
- date: 2012-07-17 00:00:00.000000000 Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
17
+
18
+ date: 2012-10-18 00:00:00 Z
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
15
21
  name: weasel_diesel
16
- requirement: &70164648069100 !ruby/object:Gem::Requirement
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
17
24
  none: false
18
- requirements:
19
- - - ! '>='
20
- - !ruby/object:Gem::Version
21
- version: '0'
25
+ requirements:
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ hash: 3
29
+ segments:
30
+ - 0
31
+ version: "0"
22
32
  type: :runtime
23
- prerelease: false
24
- version_requirements: *70164648069100
25
- - !ruby/object:Gem::Dependency
33
+ version_requirements: *id001
34
+ - !ruby/object:Gem::Dependency
26
35
  name: thor
27
- requirement: &70164648068640 !ruby/object:Gem::Requirement
36
+ prerelease: false
37
+ requirement: &id002 !ruby/object:Gem::Requirement
28
38
  none: false
29
- requirements:
30
- - - ! '>='
31
- - !ruby/object:Gem::Version
32
- version: '0'
39
+ requirements:
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ hash: 3
43
+ segments:
44
+ - 0
45
+ version: "0"
33
46
  type: :runtime
34
- prerelease: false
35
- version_requirements: *70164648068640
36
- description: Weasel-Diesel Sinatra app gem, allowing you to generate/update sinatra
37
- apps using the Weasel Diesel DSL
38
- email:
47
+ version_requirements: *id002
48
+ description: Weasel-Diesel Sinatra app gem, allowing you to generate/update sinatra apps using the Weasel Diesel DSL
49
+ email:
39
50
  - mattaimonetti@gmail.com
40
- executables:
51
+ executables:
41
52
  - wd_sinatra
42
53
  extensions: []
54
+
43
55
  extra_rdoc_files: []
44
- files:
56
+
57
+ files:
45
58
  - .gitignore
46
59
  - CHANGELOG.md
47
60
  - Gemfile
@@ -134,27 +147,37 @@ files:
134
147
  - wd-sinatra.gemspec
135
148
  homepage: https://github.com/mattetti/wd-sinatra
136
149
  licenses: []
150
+
137
151
  post_install_message:
138
152
  rdoc_options: []
139
- require_paths:
153
+
154
+ require_paths:
140
155
  - lib
141
- required_ruby_version: !ruby/object:Gem::Requirement
156
+ required_ruby_version: !ruby/object:Gem::Requirement
142
157
  none: false
143
- requirements:
144
- - - ! '>='
145
- - !ruby/object:Gem::Version
146
- version: '0'
147
- required_rubygems_version: !ruby/object:Gem::Requirement
158
+ requirements:
159
+ - - ">="
160
+ - !ruby/object:Gem::Version
161
+ hash: 3
162
+ segments:
163
+ - 0
164
+ version: "0"
165
+ required_rubygems_version: !ruby/object:Gem::Requirement
148
166
  none: false
149
- requirements:
150
- - - ! '>='
151
- - !ruby/object:Gem::Version
152
- version: '0'
167
+ requirements:
168
+ - - ">="
169
+ - !ruby/object:Gem::Version
170
+ hash: 3
171
+ segments:
172
+ - 0
173
+ version: "0"
153
174
  requirements: []
175
+
154
176
  rubyforge_project:
155
- rubygems_version: 1.8.16
177
+ rubygems_version: 1.8.24
156
178
  signing_key:
157
179
  specification_version: 3
158
- summary: Weasel-Diesel Sinatra app gem, allowing you to generate/update sinatra apps
159
- using the Weasel Diesel DSL
180
+ summary: Weasel-Diesel Sinatra app gem, allowing you to generate/update sinatra apps using the Weasel Diesel DSL
160
181
  test_files: []
182
+
183
+ has_rdoc: