restrack 1.6.8 → 1.6.9
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/lib/restrack.rb +5 -0
- data/lib/restrack/resource_request.rb +7 -3
- data/lib/restrack/support.rb +31 -0
- data/lib/restrack/version.rb +1 -1
- metadata +2 -2
data/lib/restrack.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
module RESTRack
|
2
2
|
# The ResourceRequest class handles all incoming requests.
|
3
3
|
class ResourceRequest
|
4
|
-
attr_reader :request, :request_id, :params, :post_params, :get_params, :active_controller
|
4
|
+
attr_reader :request, :request_id, :params, :post_params, :get_params, :active_controller, :headers
|
5
5
|
attr_accessor :mime_type, :url_chain
|
6
6
|
|
7
7
|
# Initialize the ResourceRequest by assigning a request_id and determining the path, format, and controller of the resource.
|
@@ -46,13 +46,13 @@ module RESTRack
|
|
46
46
|
@post_params = parse_body( @request )
|
47
47
|
@get_params = parse_query_string( @request )
|
48
48
|
@params = {}
|
49
|
-
# TODO: symbolize!
|
50
49
|
if @post_params.respond_to?(:merge)
|
51
50
|
@params = @post_params.merge( @get_params )
|
52
51
|
else
|
53
52
|
@params = @get_params
|
54
53
|
end
|
55
|
-
|
54
|
+
@params.symbolize!
|
55
|
+
log_request_params(@params)
|
56
56
|
|
57
57
|
# Pull first controller from URL
|
58
58
|
@active_resource_name = @url_chain.shift
|
@@ -68,6 +68,10 @@ module RESTRack
|
|
68
68
|
@active_controller = instantiate_controller( @active_resource_name )
|
69
69
|
end
|
70
70
|
|
71
|
+
def log_request_params(params_hash)
|
72
|
+
RESTRack.request_log.debug 'Combined Request Params: ' + params_hash.inspect
|
73
|
+
end
|
74
|
+
|
71
75
|
# Call the next entity in the path stack.
|
72
76
|
# Method called by controller relationship methods.
|
73
77
|
def call_controller(resource_name)
|
data/lib/restrack/support.rb
CHANGED
@@ -69,6 +69,37 @@ class ARFormattedError < String
|
|
69
69
|
end
|
70
70
|
end
|
71
71
|
|
72
|
+
class Hash
|
73
|
+
def symbolize!
|
74
|
+
new_keys = {}
|
75
|
+
self.each do |key,val|
|
76
|
+
if val.is_a? Hash or val.is_a? Array
|
77
|
+
val.symbolize!
|
78
|
+
end
|
79
|
+
unless key.is_a? Symbol or not key.respond_to?(:to_sym)
|
80
|
+
new_keys[key.to_sym] = self[key]
|
81
|
+
self.delete(key)
|
82
|
+
end
|
83
|
+
end
|
84
|
+
self.merge!(new_keys)
|
85
|
+
end
|
86
|
+
|
87
|
+
def symbolize
|
88
|
+
self_clone = self.clone
|
89
|
+
new_keys = {}
|
90
|
+
self_clone.each do |key,val|
|
91
|
+
if val.is_a? Hash or val.is_a? Array
|
92
|
+
val = val.symbolize
|
93
|
+
end
|
94
|
+
unless key.is_a? Symbol or not key.respond_to?(:to_sym)
|
95
|
+
new_keys[key.to_sym] = val
|
96
|
+
self_clone.delete(key)
|
97
|
+
end
|
98
|
+
end
|
99
|
+
return self_clone.merge(new_keys)
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
72
103
|
# We will support ".text" as an extension
|
73
104
|
MIME::Types['text/plain'][0].extensions << 'text'
|
74
105
|
MIME::Types.index_extensions( MIME::Types['text/plain'][0] )
|
data/lib/restrack/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: restrack
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.6.
|
4
|
+
version: 1.6.9
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-12-20 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rack
|