restrack 0.1.0 → 0.1.1
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/README.rdoc +63 -29
- data/lib/restrack/version.rb +1 -1
- metadata +3 -3
data/README.rdoc
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
= RESTRack
|
2
2
|
|
3
3
|
== Description:
|
4
|
-
RESTRack is a Rack
|
4
|
+
RESTRack is a Rack-based MVC framework that makes it extremely easy to develop RESTful data services. It is inspired
|
5
5
|
by Rails, and follows a few of its conventions. But it has no routes file, routing relationships are done through
|
6
6
|
supplying custom code blocks to class methods such as 'has_relationship_to' or 'has_mapped_relationships_to'.
|
7
7
|
RESTRack aims at being lightweight and easy to use. It will automatically render JSON and XML for the data
|
@@ -52,11 +52,13 @@
|
|
52
52
|
Defining a controller for a resource means that you plan to expose that resource to requests to your service.
|
53
53
|
Defining a controller relationship means that you plan to expose a path from this resource to another.
|
54
54
|
|
55
|
+
=== 'pass_through_to'
|
55
56
|
An open, or pass-through, path can be defined via the 'pass_through_to' class method for resource controllers. This
|
56
57
|
exposes URL patterns like the following:
|
57
58
|
GET /foo/123/bar/234 <= simple pass-through from Foo 123 to show Bar 234
|
58
59
|
GET /foo/123/bar <= simple pass-through from Foo 123 to Bar index
|
59
60
|
|
61
|
+
=== 'has_relationship_to'
|
60
62
|
A direct path to a single related resource's controller can be defined with the 'has_relationship_to' method. This
|
61
63
|
allows you to define a one-to-one relationship from this resource to a related resource, which means that the id of
|
62
64
|
the related resource is implied through the id of the caller. The caller has one relation through a custom code block
|
@@ -71,6 +73,7 @@
|
|
71
73
|
PUT /people/Henry/spouse <= direct route to update Henry's spouse
|
72
74
|
POST /people/Jane/spouse <= direct route to add Jane's spouse
|
73
75
|
|
76
|
+
=== 'has_relationships_to' and 'has_defined_relationships_to'
|
74
77
|
A direct path to many related resources' controller can be defined with the 'has_relationships_to' and
|
75
78
|
'has_defined_relationships_to' methods. These allows you to define one-to-many relationships. They work similar to
|
76
79
|
'has_relationship_to', except that they accept code blocks which evaluate to arrays of related child ids. Each
|
@@ -88,6 +91,7 @@
|
|
88
91
|
GET /people/Nancy/children/George <= direct route to show child 0
|
89
92
|
DELETE /people/Robert/children/John <= direct route to destroy child 100
|
90
93
|
|
94
|
+
=== 'has_mapped_relationships_to'
|
91
95
|
Multiple named one-to-many relationships can be exposed with the 'has_mapped_relationships_to' method. This allows
|
92
96
|
you to define many named or keyword paths to related resources. The method's code block should accepts the parent id
|
93
97
|
and return a hash where the keys are your relationship names and the values are the child resource ids. For example,
|
@@ -111,37 +115,67 @@
|
|
111
115
|
default data type of String is used if a different type is not specified.
|
112
116
|
|
113
117
|
|
114
|
-
==
|
118
|
+
== Logging/Logging Level
|
119
|
+
RESTRack logs to two logs, the standard log (or error log) and the request log. Paths and logging levels for these
|
120
|
+
can be configured in config/constants.yaml. RESTRack uses Logger from Ruby-stdlib.
|
121
|
+
|
122
|
+
== XML Serialization
|
123
|
+
RESTRack will convert the data structures that your actions return to JSON by default. You can change the default
|
124
|
+
by setting :DEFAULT_FORMAT to :XML in config/constants.yml.
|
125
|
+
|
126
|
+
=== With XmlSimple
|
127
|
+
RESTRack will attempt to serialize the data structures that your action methods return automatically using the
|
128
|
+
xml-simple gem.
|
129
|
+
|
130
|
+
=== With Builder
|
131
|
+
Custom XML serialization can be done by providing Builder gem templates in views/<controller>/<action>.xml.builder
|
115
132
|
|
116
|
-
=== Logging/Logging Level
|
117
|
-
RESTRack logs to two logs, the standard log (or error log) and the request log. Paths and logging levels for these
|
118
|
-
can be configured in config/constants.yaml. RESTRack uses Logger from Ruby-stdlib.
|
119
|
-
|
120
|
-
=== XML Serialization
|
121
|
-
RESTRack will convert the data structures that your actions return to JSON by default. You can change the default
|
122
|
-
by setting :DEFAULT_FORMAT to :XML in config/constants.yml.
|
123
133
|
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
134
|
+
== Inputs
|
135
|
+
|
136
|
+
=== Query string parameters
|
137
|
+
Available to controllers in the @params instance variable.
|
138
|
+
|
139
|
+
=== POST data
|
140
|
+
Available to controllers in the @input instance variable.
|
141
|
+
|
142
|
+
|
143
|
+
== Constant Definition (config/constants.yaml)
|
144
|
+
|
145
|
+
=== Required Configuration Settings
|
146
|
+
==== :LOG
|
147
|
+
Sets the location of the error log.
|
148
|
+
|
149
|
+
==== :REQUEST_LOG
|
150
|
+
Sets the location of the request log.
|
151
|
+
|
152
|
+
==== :LOG_LEVEL
|
153
|
+
Sets the the logging level of the error log, based on the Ruby Logger object. Supply these as a symbol, with valid
|
154
|
+
values being :DEBUG, :INFO, :WARN, etc.
|
155
|
+
|
156
|
+
==== :REQUEST_LOG_LEVEL
|
157
|
+
Sets the the logging level of the request log, similar to :LOG_LEVEL.
|
158
|
+
|
159
|
+
=== Optional Configuration Settings
|
160
|
+
==== :DEFAULT_FORMAT
|
161
|
+
Sets the default format for the response. This is the format that the response will take if no extension is
|
162
|
+
appended to the request string (i.e. /foo/123 rather than /foo/123.xml). Services will have a default format of JSON
|
163
|
+
if this configuration option is not defined.
|
164
|
+
|
165
|
+
==== :DEFAULT_RESOURCE
|
137
166
|
Set this option in config/constants.yaml to use an implied root resource controller.
|
138
|
-
:DEFAULT_RESOURCE: foo
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
167
|
+
:DEFAULT_RESOURCE: foo
|
168
|
+
# /foo/123 could be accessed with /123
|
169
|
+
# /foo could be accessed with /
|
170
|
+
|
171
|
+
==== :ROOT_RESOURCE_ACCEPT
|
172
|
+
:ROOT_RESOURCE_ACCEPT: [ 'foo', 'bar' ]
|
173
|
+
defines an array of resources that can be accessed (without being proxied through another relation).
|
174
|
+
|
175
|
+
|
176
|
+
==== :ROOT_RESOURCE_DENY
|
177
|
+
:ROOT_RESOURCE_DENY: [ 'baz' ]
|
178
|
+
defines an array of resources that cannot be accessed without proxying though another controller.
|
145
179
|
|
146
180
|
|
147
181
|
== License:
|
data/lib/restrack/version.rb
CHANGED
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 1
|
8
|
-
-
|
9
|
-
version: 0.1.
|
8
|
+
- 1
|
9
|
+
version: 0.1.1
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Chris St. John
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2011-02-
|
17
|
+
date: 2011-02-06 00:00:00 -05:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|