wd_sinatra 0.1.0 → 0.2.0

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/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Weasel Diesel Sinatra Changelog
2
2
 
3
+ ## 0.2.0
4
+
5
+ * moved `hooks.rb` and `app.rb` to `/lib`
6
+
7
+ * Automatically load the hooks in the loader if available
8
+
3
9
 
4
10
  ## 0.1.0
5
11
 
@@ -19,6 +19,7 @@ module WDSinatra
19
19
  load_middleware
20
20
  set_sinatra_routes
21
21
  set_sinatra_settings
22
+ load_hooks
22
23
  end
23
24
  end
24
25
 
@@ -30,7 +31,7 @@ module WDSinatra
30
31
  set_loadpath
31
32
  load_environment
32
33
  load_lib_dependencies
33
- load_app_config
34
+ load_app_file
34
35
  load_models
35
36
  load_apis
36
37
  @booted = true
@@ -84,11 +85,10 @@ module WDSinatra
84
85
  require 'weasel_diesel'
85
86
  require 'sinatra'
86
87
  require 'wd_sinatra/sinatra_ext'
87
- # TODO: hook to custom app dependencies
88
88
  end
89
89
 
90
- def load_app_config
91
- require File.join(root_path, 'config', 'app')
90
+ def load_app_file
91
+ require File.join(root_path, 'lib', 'app')
92
92
  end
93
93
 
94
94
  def load_models
@@ -116,5 +116,12 @@ module WDSinatra
116
116
  require File.join(root_path, 'config', 'sinatra_config')
117
117
  end
118
118
 
119
+ def load_hooks
120
+ hooks_file = File.join(root_path, 'lib', 'hooks.rb')
121
+ if File.exist?(hooks_file)
122
+ require 'hooks'
123
+ end
124
+ end
125
+
119
126
  end
120
127
  end
@@ -4,9 +4,11 @@ require 'rack'
4
4
  require 'rack/test'
5
5
  require 'json'
6
6
  require 'weasel_diesel'
7
+ require 'wd_sinatra/app_loader'
7
8
  require 'json_response_verification'
8
9
 
9
10
  WeaselDiesel.send(:include, JSONResponseVerification)
11
+ ENV['DONT_PRINT_ROUTES'] = 'true'
10
12
 
11
13
  class Requester
12
14
  include ::Rack::Test::Methods
@@ -19,12 +21,26 @@ end
19
21
  module TestApi
20
22
  module_function
21
23
 
22
- URL_PLACEHOLDER = /\/*(:[a-z A-Z _]+)\/*/
23
- if defined?(AuthHelpers::INTERNAL_X_HEADER)
24
- INTERNAL_X_HEADER = AuthHelpers::INTERNAL_X_HEADER[/HTTP_(.*)/, 1] # strip the header marker added by Rack
24
+ URL_PLACEHOLDER = /\/*(:[a-z A-Z _]+)\/*/
25
+
26
+ # Sets the X header name to make auth'd requests.
27
+ def auth_request_x_header=(val)
28
+ @auth_request_x_header = val
29
+ end
30
+
31
+ # getter for the auth X header
32
+ def auth_request_x_header
33
+ @auth_request_x_header
25
34
  end
26
- if defined?(AuthHelpers::MOBILE_X_HEADER)
27
- MOBILE_X_HEADER = AuthHelpers::MOBILE_X_HEADER[/HTTP_(.*)/, 1] # strip the header marker added by Rack
35
+
36
+ # Sets the X header name for mobile auth'd requests
37
+ def mobile_request_x_header=(val)
38
+ @mobile_request_x_header = val
39
+ end
40
+
41
+ # getter for the mobile X header
42
+ def mobile_request_x_header
43
+ @mobile_request_x_header
28
44
  end
29
45
 
30
46
  def request(verb, uri, params={}, headers=nil)
@@ -121,16 +137,15 @@ module TestApi
121
137
  @json_response.rest_response if @json_response
122
138
  end
123
139
 
140
+ # Define this method in your test helpers
124
141
  def valid_internal_api_headers(headers)
125
- custom_headers = {INTERNAL_X_HEADER => AuthHelpers::ALLOWED_API_KEYS[0]}
126
- custom_headers.merge!(headers) if headers
127
- custom_headers
142
+ raise 'NotImplemented, You need to implement this method yourself'
128
143
  end
129
144
 
145
+ # Define this method in your test helpers
146
+
130
147
  def mobile_headers(headers)
131
- custom_headers = {MOBILE_X_HEADER => @account ? Base64.urlsafe_encode64(@account.mobile_token) : nil}
132
- custom_headers.merge!(headers) if headers
133
- custom_headers
148
+ raise 'NotImplemented, You need to implement this method yourself'
134
149
  end
135
150
 
136
151
  end
@@ -1,5 +1,5 @@
1
1
  module WD
2
2
  module Sinatra
3
- VERSION = "0.1.0"
3
+ VERSION = "0.2.0"
4
4
  end
5
5
  end
@@ -13,6 +13,6 @@ use Rack::ContentLength
13
13
 
14
14
  # Store the caught exception in the rack env so it can be used
15
15
  # by 3rd party apps like airbrake.
16
- error(Sinatra::Base::Exception) do |exception|
16
+ error(::Exception) do |exception|
17
17
  @env['rack.exception'] = exception
18
18
  end
File without changes
@@ -72,3 +72,4 @@ module WDSinatraHooks
72
72
  end
73
73
 
74
74
  Sinatra::Helpers.send(:include, WDSinatraHooks)
75
+ WeaselDiesel::RequestHandler.send(:include, WDSinatraHooks)
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wd_sinatra
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
4
+ hash: 23
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
- - 1
8
+ - 2
9
9
  - 0
10
- version: 0.1.0
10
+ version: 0.2.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Matt Aimonetti
@@ -15,7 +15,8 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2012-05-03 00:00:00 Z
18
+ date: 2012-05-09 00:00:00 +02:00
19
+ default_executable:
19
20
  dependencies:
20
21
  - !ruby/object:Gem::Dependency
21
22
  name: weasel_diesel
@@ -74,14 +75,14 @@ files:
74
75
  - templates/api/hello_world.rb
75
76
  - templates/bin/console
76
77
  - templates/config.ru
77
- - templates/config/app.rb
78
78
  - templates/config/environments/default.rb
79
79
  - templates/config/environments/production.rb
80
80
  - templates/config/environments/test.rb
81
- - templates/config/hooks.rb
82
81
  - templates/config/middleware.rb
83
82
  - templates/config/sinatra_config.rb
83
+ - templates/lib/app.rb
84
84
  - templates/lib/body_parser.rb
85
+ - templates/lib/hooks.rb
85
86
  - templates/lib/tasks/doc.rake
86
87
  - templates/lib/tasks/doc_generator/bootstrap/.gitignore
87
88
  - templates/lib/tasks/doc_generator/bootstrap/LICENSE
@@ -140,6 +141,7 @@ files:
140
141
  - templates/lib/tasks/doc_generator/template.erb
141
142
  - templates/public/favicon.ico
142
143
  - wd-sinatra.gemspec
144
+ has_rdoc: true
143
145
  homepage: https://github.com/mattetti/wd_sinatra
144
146
  licenses: []
145
147
 
@@ -169,7 +171,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
169
171
  requirements: []
170
172
 
171
173
  rubyforge_project:
172
- rubygems_version: 1.8.18
174
+ rubygems_version: 1.5.3
173
175
  signing_key:
174
176
  specification_version: 3
175
177
  summary: Weasel-Diesel Sinatra app gem, allowing you to generate/update sinatra apps using the Weasel Diesel DSL