restfulie 0.1.0.beta1 → 0.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.textile +87 -99
- data/Rakefile +14 -109
- data/lib/restfulie.rb +183 -23
- metadata +12 -197
- data/Gemfile +0 -28
- data/Gemfile.lock +0 -128
- data/LICENSE +0 -17
- data/lib/restfulie/client.rb +0 -26
- data/lib/restfulie/client/base.rb +0 -36
- data/lib/restfulie/client/cache.rb +0 -11
- data/lib/restfulie/client/cache/basic.rb +0 -76
- data/lib/restfulie/client/cache/fake.rb +0 -15
- data/lib/restfulie/client/cache/http_ext.rb +0 -123
- data/lib/restfulie/client/cache/restrictions.rb +0 -13
- data/lib/restfulie/client/configuration.rb +0 -67
- data/lib/restfulie/client/dsl.rb +0 -66
- data/lib/restfulie/client/entry_point.rb +0 -61
- data/lib/restfulie/client/ext/atom_ext.rb +0 -14
- data/lib/restfulie/client/ext/http_ext.rb +0 -22
- data/lib/restfulie/client/ext/json_ext.rb +0 -16
- data/lib/restfulie/client/feature.rb +0 -5
- data/lib/restfulie/client/feature/base.rb +0 -75
- data/lib/restfulie/client/feature/base_request.rb +0 -35
- data/lib/restfulie/client/feature/cache.rb +0 -16
- data/lib/restfulie/client/feature/enhance_response.rb +0 -12
- data/lib/restfulie/client/feature/follow_request.rb +0 -41
- data/lib/restfulie/client/feature/history.rb +0 -26
- data/lib/restfulie/client/feature/history_request.rb +0 -19
- data/lib/restfulie/client/feature/open_search.rb +0 -21
- data/lib/restfulie/client/feature/open_search/pattern_matcher.rb +0 -25
- data/lib/restfulie/client/feature/serialize_body.rb +0 -32
- data/lib/restfulie/client/feature/setup_header.rb +0 -22
- data/lib/restfulie/client/feature/throw_error.rb +0 -41
- data/lib/restfulie/client/feature/verb.rb +0 -119
- data/lib/restfulie/client/http.rb +0 -7
- data/lib/restfulie/client/http/cache.rb +0 -28
- data/lib/restfulie/client/http/error.rb +0 -77
- data/lib/restfulie/client/http/response_holder.rb +0 -29
- data/lib/restfulie/client/master_delegator.rb +0 -31
- data/lib/restfulie/client/mikyung.rb +0 -15
- data/lib/restfulie/client/mikyung/concatenator.rb +0 -18
- data/lib/restfulie/client/mikyung/core.rb +0 -70
- data/lib/restfulie/client/mikyung/languages.rb +0 -11
- data/lib/restfulie/client/mikyung/languages/german.rb +0 -24
- data/lib/restfulie/client/mikyung/languages/portuguese.rb +0 -23
- data/lib/restfulie/client/mikyung/rest_process_model.rb +0 -191
- data/lib/restfulie/client/mikyung/steady_state_walker.rb +0 -38
- data/lib/restfulie/client/mikyung/then_condition.rb +0 -39
- data/lib/restfulie/client/mikyung/when_condition.rb +0 -57
- data/lib/restfulie/common.rb +0 -18
- data/lib/restfulie/common/converter.rb +0 -43
- data/lib/restfulie/common/converter/atom.rb +0 -12
- data/lib/restfulie/common/converter/atom/base.rb +0 -91
- data/lib/restfulie/common/converter/atom/builder.rb +0 -111
- data/lib/restfulie/common/converter/atom/helpers.rb +0 -17
- data/lib/restfulie/common/converter/json.rb +0 -12
- data/lib/restfulie/common/converter/json/base.rb +0 -87
- data/lib/restfulie/common/converter/json/builder.rb +0 -102
- data/lib/restfulie/common/converter/json/helpers.rb +0 -17
- data/lib/restfulie/common/converter/open_search.rb +0 -16
- data/lib/restfulie/common/converter/open_search/descriptor.rb +0 -32
- data/lib/restfulie/common/converter/values.rb +0 -33
- data/lib/restfulie/common/converter/xml.rb +0 -14
- data/lib/restfulie/common/converter/xml/base.rb +0 -63
- data/lib/restfulie/common/converter/xml/builder.rb +0 -113
- data/lib/restfulie/common/converter/xml/helpers.rb +0 -17
- data/lib/restfulie/common/converter/xml/link.rb +0 -30
- data/lib/restfulie/common/converter/xml/links.rb +0 -21
- data/lib/restfulie/common/core_ext.rb +0 -1
- data/lib/restfulie/common/core_ext/hash.rb +0 -18
- data/lib/restfulie/common/error.rb +0 -19
- data/lib/restfulie/common/links.rb +0 -9
- data/lib/restfulie/common/logger.rb +0 -19
- data/lib/restfulie/common/representation.rb +0 -3
- data/lib/restfulie/common/representation/atom.rb +0 -20
- data/lib/restfulie/common/representation/atom/atom.rng +0 -597
- data/lib/restfulie/common/representation/atom/base.rb +0 -142
- data/lib/restfulie/common/representation/atom/category.rb +0 -41
- data/lib/restfulie/common/representation/atom/entry.rb +0 -59
- data/lib/restfulie/common/representation/atom/factory.rb +0 -43
- data/lib/restfulie/common/representation/atom/feed.rb +0 -110
- data/lib/restfulie/common/representation/atom/link.rb +0 -68
- data/lib/restfulie/common/representation/atom/person.rb +0 -48
- data/lib/restfulie/common/representation/atom/source.rb +0 -59
- data/lib/restfulie/common/representation/atom/tag_collection.rb +0 -38
- data/lib/restfulie/common/representation/atom/xml.rb +0 -90
- data/lib/restfulie/common/representation/generic.rb +0 -22
- data/lib/restfulie/common/representation/json.rb +0 -13
- data/lib/restfulie/common/representation/json/base.rb +0 -27
- data/lib/restfulie/common/representation/json/keys_as_methods.rb +0 -74
- data/lib/restfulie/common/representation/json/link.rb +0 -29
- data/lib/restfulie/common/representation/json/link_collection.rb +0 -23
- data/lib/restfulie/common/representation/links.rb +0 -11
- data/lib/restfulie/server.rb +0 -25
- data/lib/restfulie/server/action_controller.rb +0 -11
- data/lib/restfulie/server/action_controller/base.rb +0 -48
- data/lib/restfulie/server/action_controller/params_parser.rb +0 -100
- data/lib/restfulie/server/action_controller/patch.rb +0 -6
- data/lib/restfulie/server/action_controller/restful_responder.rb +0 -12
- data/lib/restfulie/server/action_controller/trait.rb +0 -9
- data/lib/restfulie/server/action_controller/trait/cacheable.rb +0 -81
- data/lib/restfulie/server/action_controller/trait/created.rb +0 -17
- data/lib/restfulie/server/action_view.rb +0 -10
- data/lib/restfulie/server/action_view/helpers.rb +0 -50
- data/lib/restfulie/server/action_view/template_handlers.rb +0 -30
- data/lib/restfulie/server/action_view/template_handlers/tokamak.rb +0 -21
- data/lib/restfulie/server/configuration.rb +0 -24
- data/lib/restfulie/server/controller.rb +0 -74
- data/lib/restfulie/server/core_ext.rb +0 -1
- data/lib/restfulie/server/core_ext/array.rb +0 -61
- data/lib/restfulie/version.rb +0 -14
data/lib/restfulie/server.rb
DELETED
@@ -1,25 +0,0 @@
|
|
1
|
-
require 'respondie'
|
2
|
-
require 'restfulie/common'
|
3
|
-
|
4
|
-
module Restfulie
|
5
|
-
module Server
|
6
|
-
autoload :Configuration, 'restfulie/server/configuration'
|
7
|
-
autoload :ActionController, 'restfulie/server/action_controller'
|
8
|
-
autoload :ActionView, 'restfulie/server/action_view'
|
9
|
-
autoload :Controller, 'restfulie/server/controller'
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
require 'restfulie/server/core_ext'
|
14
|
-
Restfulie::Server::ActionView::TemplateHandlers.activate!
|
15
|
-
|
16
|
-
class ActionController::Base
|
17
|
-
def self.restfulie
|
18
|
-
include Restfulie::Server::ActionController::Base
|
19
|
-
end
|
20
|
-
|
21
|
-
def self.use_trait(&block)
|
22
|
-
Respondie::Builder.new("Restfulie::Server::ActionController::Trait::$trait$", self).instance_eval(&block)
|
23
|
-
end
|
24
|
-
|
25
|
-
end
|
@@ -1,11 +0,0 @@
|
|
1
|
-
module Restfulie
|
2
|
-
module Server
|
3
|
-
module ActionController #:nodoc:
|
4
|
-
if defined?(::ActionController) || defined?(::ApplicationController)
|
5
|
-
Dir["#{File.dirname(__FILE__)}/action_controller/*.rb"].each {|f| autoload File.basename(f)[0..-4].camelize.to_sym, f }
|
6
|
-
end
|
7
|
-
end
|
8
|
-
end
|
9
|
-
end
|
10
|
-
|
11
|
-
require 'restfulie/server/action_controller/patch'
|
@@ -1,48 +0,0 @@
|
|
1
|
-
module Restfulie
|
2
|
-
module Server
|
3
|
-
module ActionController
|
4
|
-
module Base
|
5
|
-
def self.included(base)
|
6
|
-
# Sets a default responder for this controller.
|
7
|
-
# Needs to require responder_legacy.rb
|
8
|
-
base.responder = Restfulie::Server::ActionController::RestfulResponder
|
9
|
-
base.extend(Restfulie::Server::ActionController::Base::ClassMethods)
|
10
|
-
# Atom representation is added by default
|
11
|
-
Restfulie::Server::ActionController::ParamsParser.register('application/atom+xml', Restfulie::Common::Converter::Atom)
|
12
|
-
end
|
13
|
-
|
14
|
-
module ClassMethods
|
15
|
-
def call(env)
|
16
|
-
if include_restfulie? && env.has_key?("action_controller.restfulie.response")
|
17
|
-
if logger && logger.info?
|
18
|
-
information = "Status: #{env["action_controller.restfulie.response"][0]} "
|
19
|
-
information << ::ActionController::StatusCodes::STATUS_CODES[env["action_controller.restfulie.response"][0]]
|
20
|
-
logger.info(information)
|
21
|
-
end
|
22
|
-
return env["action_controller.restfulie.response"]
|
23
|
-
end
|
24
|
-
super
|
25
|
-
end
|
26
|
-
|
27
|
-
def include_restfulie?
|
28
|
-
defined?(Restfulie::Server::ActionController::Base) && self.include?(Restfulie::Server::ActionController::Base)
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
# If your controller inherits from Restfulie::Server::Controller::Base,
|
33
|
-
# it will have an :atom option, very similar to render :xml
|
34
|
-
def render(options = nil, extra_options = {}, &block)
|
35
|
-
if options && atom = options[:atom]
|
36
|
-
response.content_type ||= Mime::ATOM
|
37
|
-
representation = atom.respond_to?(:to_atom) ? atom.to_atom.to_xml : atom.to_xml
|
38
|
-
options[:text] = representation
|
39
|
-
options[:atom] = nil
|
40
|
-
super options
|
41
|
-
else
|
42
|
-
super
|
43
|
-
end
|
44
|
-
end
|
45
|
-
end
|
46
|
-
end
|
47
|
-
end
|
48
|
-
end
|
@@ -1,100 +0,0 @@
|
|
1
|
-
module Restfulie
|
2
|
-
module Server
|
3
|
-
module ActionController
|
4
|
-
|
5
|
-
# This class is just a proxy for the extension point offered by ActionDispatch::ParamsParser
|
6
|
-
class ParamsParser3
|
7
|
-
|
8
|
-
def register(content_type, representation)
|
9
|
-
ActionDispatch::ParamsParser::DEFAULT_PARSERS[Mime::Type.lookup(content_type)] = representation.method(:to_hash).to_proc
|
10
|
-
end
|
11
|
-
|
12
|
-
def unregister(content_type)
|
13
|
-
ActionDispatch::ParamsParser::DEFAULT_PARSERS.delete(Mime::Type.lookup(content_type))
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
# This class is just a proxy for the extension point offered by ActionController::Base
|
18
|
-
class ParamsParser2
|
19
|
-
|
20
|
-
def param_parsers
|
21
|
-
::ActionController::Base.param_parsers
|
22
|
-
end
|
23
|
-
|
24
|
-
def register(content_type, representation)
|
25
|
-
param_parsers[Mime::Type.lookup(content_type)] = representation.method(:to_hash).to_proc
|
26
|
-
end
|
27
|
-
|
28
|
-
def unregister(content_type)
|
29
|
-
param_parsers.delete(Mime::Type.lookup(content_type))
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
|
34
|
-
class ParamsParser
|
35
|
-
|
36
|
-
def self.rails3?
|
37
|
-
defined?(::ActionDispatch) && defined?(::ActionDispatch::ParamsParser)
|
38
|
-
end
|
39
|
-
|
40
|
-
if rails3?
|
41
|
-
@parser = ParamsParser3.new
|
42
|
-
else
|
43
|
-
@parser = ParamsParser2.new
|
44
|
-
# This monkey patch is needed because Rails 2.3.5 doesn't support
|
45
|
-
# a way of use rescue_from ActionController handling to return
|
46
|
-
# bad request status when trying to parse an invalid body request
|
47
|
-
#
|
48
|
-
# In Rails 3 this won't be necessary, because all exception handling
|
49
|
-
# extensions are handled by the Rack stack
|
50
|
-
#
|
51
|
-
# TODO Change this when porting this code to Rails 3
|
52
|
-
::ActionController::ParamsParser.class_eval do
|
53
|
-
def call(env)
|
54
|
-
begin
|
55
|
-
if params = parse_formatted_parameters(env)
|
56
|
-
env["action_controller.request.request_parameters"] = params
|
57
|
-
elsif !(env["CONTENT_TYPE"] == "application/x-www-form-urlencoded") #do not override rails default behaviour for this media type, it's dangerous... (o.O)
|
58
|
-
if env["CONTENT_LENGTH"] && (env["CONTENT_LENGTH"] != "0")
|
59
|
-
env["action_controller.restfulie.response"] = [415, {'Content-Type' => 'text/html'}, ["<html><body><h1>415 Unsupported Media Type</h1></body></html>"]]
|
60
|
-
end
|
61
|
-
end
|
62
|
-
rescue
|
63
|
-
env["action_controller.restfulie.response"] = [400, {'Content-Type' => 'text/html'}, ["<html><body><h1>400 Bad Request</h1></body></html>"]]
|
64
|
-
end
|
65
|
-
|
66
|
-
@app.call(env)
|
67
|
-
end
|
68
|
-
end
|
69
|
-
end
|
70
|
-
|
71
|
-
##
|
72
|
-
# :singleton-method:
|
73
|
-
# Use it to register param parsers on the server side.
|
74
|
-
#
|
75
|
-
# * <tt>media type</tt>
|
76
|
-
# * <tt>a restfulie representation with to_hash method</tt>
|
77
|
-
#
|
78
|
-
# Restfulie::Server::ActionController::ParamsParser.register('application/atom+xml', Atom)
|
79
|
-
#
|
80
|
-
def self.register(content_type, representation)
|
81
|
-
@parser.register(content_type, representation)
|
82
|
-
end
|
83
|
-
|
84
|
-
##
|
85
|
-
# :singleton-method:
|
86
|
-
# Use it to unregister param parsers on the server side.
|
87
|
-
#
|
88
|
-
# * <tt>media type</tt>
|
89
|
-
#
|
90
|
-
# Restfulie::Server::ActionController::ParamsParser.unregister('application/atom+xml')
|
91
|
-
#
|
92
|
-
def self.unregister(content_type)
|
93
|
-
@parser.unregister(content_type)
|
94
|
-
end
|
95
|
-
end
|
96
|
-
|
97
|
-
end
|
98
|
-
end
|
99
|
-
end
|
100
|
-
|
@@ -1,81 +0,0 @@
|
|
1
|
-
class Expires
|
2
|
-
def do_http_cache(responder, headers)
|
3
|
-
if responder.options[:expires_in]
|
4
|
-
headers << "max-age=#{responder.options[:expires_in]}"
|
5
|
-
true
|
6
|
-
else
|
7
|
-
false
|
8
|
-
end
|
9
|
-
end
|
10
|
-
end
|
11
|
-
|
12
|
-
class LastModifieds
|
13
|
-
# default implementation that will check whether caching can be applied
|
14
|
-
def accepts?(responder)
|
15
|
-
responder.resources.flatten.select do |resource|
|
16
|
-
resource.respond_to?(:updated_at)
|
17
|
-
end &&
|
18
|
-
responder.controller.response.last_modified.nil? &&
|
19
|
-
!new_record?(responder)
|
20
|
-
end
|
21
|
-
|
22
|
-
def do_http_cache(responder, headers)
|
23
|
-
return false unless accepts?(responder)
|
24
|
-
|
25
|
-
timestamps = responder.resources.flatten.select do |resource|
|
26
|
-
resource.respond_to?(:updated_at)
|
27
|
-
end.map do |resource|
|
28
|
-
(resource.updated_at || Time.now).utc
|
29
|
-
end
|
30
|
-
|
31
|
-
timestamp = timestamps.max
|
32
|
-
|
33
|
-
responder.controller.response.last_modified = timestamp if timestamp
|
34
|
-
end
|
35
|
-
|
36
|
-
def new_record?(responder)
|
37
|
-
responder.resource.respond_to?(:new_record?) && responder.resource.new_record?
|
38
|
-
end
|
39
|
-
|
40
|
-
end
|
41
|
-
|
42
|
-
module Restfulie::Server::ActionController
|
43
|
-
module Trait
|
44
|
-
module Cacheable
|
45
|
-
|
46
|
-
CACHES = [::Expires.new, ::LastModifieds.new]
|
47
|
-
|
48
|
-
def to_format
|
49
|
-
headers = cache_control_headers
|
50
|
-
cached = CACHES.inject(false) do |cached, cache|
|
51
|
-
cached || cache.do_http_cache(self, headers)
|
52
|
-
end
|
53
|
-
if ::ActionController::Base.perform_caching && cached
|
54
|
-
set_public_cache_control(headers)
|
55
|
-
controller.response.headers["Cache-Control"] = headers.join(', ')
|
56
|
-
fresh = request.fresh?(controller.response)
|
57
|
-
if fresh
|
58
|
-
head :not_modified
|
59
|
-
else
|
60
|
-
super
|
61
|
-
end
|
62
|
-
else
|
63
|
-
super
|
64
|
-
end
|
65
|
-
end
|
66
|
-
|
67
|
-
private
|
68
|
-
|
69
|
-
def set_public_cache_control(headers)
|
70
|
-
headers.delete("private")
|
71
|
-
headers.delete("no-cache")
|
72
|
-
headers << "public"
|
73
|
-
end
|
74
|
-
|
75
|
-
def cache_control_headers
|
76
|
-
(controller.response.headers["Cache-Control"] || "").split(",").map {|k| k.strip }
|
77
|
-
end
|
78
|
-
|
79
|
-
end
|
80
|
-
end
|
81
|
-
end
|
@@ -1,17 +0,0 @@
|
|
1
|
-
module Restfulie::Server::ActionController
|
2
|
-
module Trait
|
3
|
-
|
4
|
-
# Adds support to answering as a 201 when the resource has been just created
|
5
|
-
module Created
|
6
|
-
|
7
|
-
def to_format
|
8
|
-
if (options[:status] == 201) || (options[:status] == :created)
|
9
|
-
render :status => 201, :location => controller.url_for(resource), :text => ""
|
10
|
-
else
|
11
|
-
super
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
@@ -1,10 +0,0 @@
|
|
1
|
-
if defined? ::ActionView and ::ActionController
|
2
|
-
module Restfulie #:nodoc:
|
3
|
-
module Server #:nodoc:
|
4
|
-
module ActionView #:nodoc:
|
5
|
-
autoload :TemplateHandlers, 'restfulie/server/action_view/template_handlers'
|
6
|
-
autoload :Helpers, 'restfulie/server/action_view/helpers'
|
7
|
-
end
|
8
|
-
end
|
9
|
-
end
|
10
|
-
end
|
@@ -1,50 +0,0 @@
|
|
1
|
-
module Restfulie
|
2
|
-
module Server
|
3
|
-
module ActionView
|
4
|
-
module Helpers
|
5
|
-
# Load a partial template to execute in describe
|
6
|
-
#
|
7
|
-
# For example:
|
8
|
-
#
|
9
|
-
# Passing the current context to partial in template:
|
10
|
-
#
|
11
|
-
# member(@album) do |member, album|
|
12
|
-
# partial('member', binding)
|
13
|
-
# end
|
14
|
-
#
|
15
|
-
# in partial:
|
16
|
-
#
|
17
|
-
# member.links << link(:rel => :artists, :href => album_artists_url(album))
|
18
|
-
#
|
19
|
-
# Or passing local variables assing
|
20
|
-
#
|
21
|
-
# collection(@albums) do |collection|
|
22
|
-
# collection.members do |member, album|
|
23
|
-
# partial("member", :locals => {:member => member, :album => album})
|
24
|
-
# end
|
25
|
-
# end
|
26
|
-
#
|
27
|
-
def partial(partial_path, caller_binding = nil)
|
28
|
-
# Create a context to assing variables
|
29
|
-
if caller_binding.kind_of?(Hash)
|
30
|
-
Proc.new do
|
31
|
-
extend @restfulie_type_helpers
|
32
|
-
context = eval("(class << self; self; end)", binding)
|
33
|
-
|
34
|
-
unless caller_binding[:locals].nil?
|
35
|
-
caller_binding[:locals].each do |k, v|
|
36
|
-
context.send(:define_method, k.to_sym) { v }
|
37
|
-
end
|
38
|
-
end
|
39
|
-
|
40
|
-
partial(partial_path, binding)
|
41
|
-
end.call
|
42
|
-
else
|
43
|
-
template = _pick_partial_template(partial_path)
|
44
|
-
eval(template.source, caller_binding, template.path)
|
45
|
-
end
|
46
|
-
end
|
47
|
-
end
|
48
|
-
end
|
49
|
-
end
|
50
|
-
end
|
@@ -1,30 +0,0 @@
|
|
1
|
-
module Restfulie
|
2
|
-
module Server
|
3
|
-
module ActionView
|
4
|
-
module TemplateHandlers #:nodoc:
|
5
|
-
autoload :Tokamak, 'restfulie/server/action_view/template_handlers/tokamak'
|
6
|
-
|
7
|
-
def self.template_registry
|
8
|
-
if defined? ::ActionView::Template and
|
9
|
-
::ActionView::Template.respond_to?(:register_template_handler)
|
10
|
-
::ActionView::Template
|
11
|
-
else
|
12
|
-
::ActionView::Base
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
# It is needed to explicitly call 'activate!' to install the Tokamak
|
17
|
-
# template handler
|
18
|
-
def self.activate!
|
19
|
-
template_registry.register_template_handler(:tokamak,
|
20
|
-
Restfulie::Server::ActionView::TemplateHandlers::Tokamak)
|
21
|
-
|
22
|
-
# TODO unsure if it can be removed. check feedback prior to 1.0.0
|
23
|
-
# if defined?(::ActionController::Base) && ::ActionController::Base.respond_to?(:exempt_from_layout)
|
24
|
-
# ::ActionController::Base.exempt_from_layout :tokamak
|
25
|
-
# end
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
@@ -1,21 +0,0 @@
|
|
1
|
-
module Restfulie
|
2
|
-
module Server
|
3
|
-
module ActionView
|
4
|
-
module TemplateHandlers
|
5
|
-
class Tokamak < ::ActionView::TemplateHandler
|
6
|
-
include ::ActionView::TemplateHandlers::Compilable
|
7
|
-
|
8
|
-
def compile(template)
|
9
|
-
"@restfulie_type_helpers = Restfulie::Common::Converter.content_type_for(self.response.content_type).helper; " +
|
10
|
-
"extend @restfulie_type_helpers; " +
|
11
|
-
"extend Restfulie::Server::ActionView::Helpers; " +
|
12
|
-
"code_block = lambda { #{template.source} };" +
|
13
|
-
"builder = code_block.call; " +
|
14
|
-
"self.response.headers['Link'] = Restfulie::Common::Representation::Links.extract_link_header(builder.links) if builder.respond_to?(:links); " +
|
15
|
-
"builder.to_s"
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
@@ -1,24 +0,0 @@
|
|
1
|
-
module Restfulie
|
2
|
-
module Server
|
3
|
-
module Configuration
|
4
|
-
# Defines host to be passed to polymorphic_url.
|
5
|
-
# You need to setup this to your own domain in order to generate meaningful links.
|
6
|
-
mattr_accessor :host
|
7
|
-
@@host = 'localhost'
|
8
|
-
|
9
|
-
# Passes a symbol to polymorphic_url in order to use a namespaced named_route.
|
10
|
-
# So, if config.named_route_prefix = :rest, it will search for rest_album_url,
|
11
|
-
# rest_album_songs_url, and so on.
|
12
|
-
mattr_accessor :named_route_prefix
|
13
|
-
@@named_route_prefix = nil
|
14
|
-
|
15
|
-
# This defines a Rails-like way to setup options. You can do, in a initializer:
|
16
|
-
# Restfulie::Server.setup do |config|
|
17
|
-
# config.host = 'mydomain.com'
|
18
|
-
# end
|
19
|
-
def self.setup
|
20
|
-
yield self
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|