restfulie 0.9.3 → 1.0.0.beta1

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.
Files changed (78) hide show
  1. data/Gemfile +2 -0
  2. data/Gemfile.lock +2 -2
  3. data/README.textile +4 -2
  4. data/Rakefile +12 -13
  5. data/lib/restfulie/client/base.rb +9 -2
  6. data/lib/restfulie/client/cache/basic.rb +6 -5
  7. data/lib/restfulie/client/cache/http_ext.rb +10 -8
  8. data/lib/restfulie/client/cache/restrictions.rb +1 -6
  9. data/lib/restfulie/client/dsl.rb +66 -0
  10. data/lib/restfulie/client/entry_point.rb +34 -9
  11. data/lib/restfulie/client/ext/atom_ext.rb +4 -2
  12. data/lib/restfulie/client/ext/json_ext.rb +5 -1
  13. data/lib/restfulie/client/feature/base.rb +75 -0
  14. data/lib/restfulie/client/feature/base_request.rb +35 -0
  15. data/lib/restfulie/client/feature/cache.rb +16 -0
  16. data/lib/restfulie/client/feature/enhance_response.rb +12 -0
  17. data/lib/restfulie/client/feature/follow_request.rb +41 -0
  18. data/lib/restfulie/client/feature/history.rb +26 -0
  19. data/lib/restfulie/client/feature/history_request.rb +19 -0
  20. data/lib/restfulie/client/feature/open_search/pattern_matcher.rb +25 -0
  21. data/lib/restfulie/client/feature/open_search.rb +21 -0
  22. data/lib/restfulie/client/feature/serialize_body.rb +32 -0
  23. data/lib/restfulie/client/feature/setup_header.rb +22 -0
  24. data/lib/restfulie/client/feature/throw_error.rb +41 -0
  25. data/lib/restfulie/client/feature/verb.rb +119 -0
  26. data/lib/restfulie/client/feature.rb +5 -0
  27. data/lib/restfulie/client/http/response_holder.rb +26 -6
  28. data/lib/restfulie/client/http.rb +1 -21
  29. data/lib/restfulie/client/master_delegator.rb +31 -0
  30. data/lib/restfulie/client/mikyung/core.rb +5 -4
  31. data/lib/restfulie/client/mikyung/steady_state_walker.rb +1 -1
  32. data/lib/restfulie/client/mikyung.rb +1 -8
  33. data/lib/restfulie/client.rb +3 -1
  34. data/lib/restfulie/common/converter/atom/base.rb +2 -0
  35. data/lib/restfulie/common/converter/form_url_encoded.rb +16 -0
  36. data/lib/restfulie/common/converter/json/base.rb +5 -2
  37. data/lib/restfulie/common/converter/open_search/descriptor.rb +32 -0
  38. data/lib/restfulie/common/converter/open_search.rb +16 -0
  39. data/lib/restfulie/common/converter/xml/base.rb +3 -1
  40. data/lib/restfulie/common/converter/xml/builder.rb +3 -2
  41. data/lib/restfulie/common/converter/xml/helpers.rb +4 -4
  42. data/lib/restfulie/common/converter/xml/link.rb +5 -0
  43. data/lib/restfulie/common/converter/xml/links.rb +1 -5
  44. data/lib/restfulie/common/converter.rb +25 -4
  45. data/lib/restfulie/common/core_ext/hash.rb +6 -0
  46. data/lib/restfulie/common/links.rb +9 -0
  47. data/lib/restfulie/common/representation/atom/base.rb +34 -33
  48. data/lib/restfulie/common/representation/atom/xml.rb +5 -10
  49. data/lib/restfulie/common/representation/generic.rb +0 -12
  50. data/lib/restfulie/common/representation/json/keys_as_methods.rb +2 -0
  51. data/lib/restfulie/common/representation.rb +2 -9
  52. data/lib/restfulie/common.rb +2 -1
  53. data/lib/restfulie/server/action_controller/trait/cacheable.rb +81 -0
  54. data/lib/restfulie/server/action_controller/trait/created.rb +17 -0
  55. data/lib/restfulie/server/action_controller/trait/save_prior_to_create.rb +13 -0
  56. data/lib/restfulie/server/action_controller/trait.rb +9 -0
  57. data/lib/restfulie/server/action_controller.rb +1 -5
  58. data/lib/restfulie/server/action_view/template_handlers/tokamak.rb +1 -1
  59. data/lib/restfulie/server.rb +6 -0
  60. data/lib/restfulie/version.rb +4 -4
  61. data/lib/restfulie.rb +21 -3
  62. metadata +37 -26
  63. data/lib/restfulie/client/ext/xml_ext.rb +0 -4
  64. data/lib/restfulie/client/http/link_request_builder.rb +0 -16
  65. data/lib/restfulie/client/http/request_adapter.rb +0 -213
  66. data/lib/restfulie/client/http/request_builder.rb +0 -114
  67. data/lib/restfulie/client/http/request_builder_executor.rb +0 -24
  68. data/lib/restfulie/client/http/request_executor.rb +0 -17
  69. data/lib/restfulie/client/http/request_follow.rb +0 -42
  70. data/lib/restfulie/client/http/request_follow_executor.rb +0 -10
  71. data/lib/restfulie/client/http/request_history.rb +0 -71
  72. data/lib/restfulie/client/http/request_history_executor.rb +0 -10
  73. data/lib/restfulie/client/http/request_marshaller.rb +0 -129
  74. data/lib/restfulie/client/http/request_marshaller_executor.rb +0 -10
  75. data/lib/restfulie/client/http/response.rb +0 -23
  76. data/lib/restfulie/client/http/response_handler.rb +0 -67
  77. data/lib/restfulie/server/action_controller/cacheable_responder.rb +0 -77
  78. data/lib/restfulie/server/action_controller/created_responder.rb +0 -19
@@ -84,55 +84,56 @@ module Restfulie
84
84
 
85
85
  # Author have name, and optional uri and email, this describes a person
86
86
  def authors
87
- unless @authors
88
- @authors = TagCollection.new(@doc)
89
- @doc.xpath("xmlns:author").each do |author|
90
- @authors << Person.new("author", author)
91
- end
87
+ return @authors if @authors
88
+
89
+ @authors = TagCollection.new(@doc)
90
+ @doc.xpath("xmlns:author").each do |author|
91
+ @authors << Person.new("author", author)
92
92
  end
93
+ @authors
93
94
 
94
- return @authors
95
95
  end
96
96
 
97
97
  def contributors
98
- unless @contributors
99
- @contributors = TagCollection.new(@doc)
100
- @doc.xpath("xmlns:author").each do |contributor|
101
- @contributors << Person.new("contributor", contributor)
102
- end
98
+ return @contributors if @contributors
99
+
100
+ @contributors = TagCollection.new(@doc)
101
+ @doc.xpath("xmlns:author").each do |contributor|
102
+ @contributors << Person.new("contributor", contributor)
103
103
  end
104
-
105
- return @contributor
104
+ @contributors
106
105
  end
107
106
 
107
+ include Restfulie::Common::Links
108
+
108
109
  # It has one required attribute, href, and five optional attributes: rel, type, hreflang, title, and length
109
110
  def links
110
- unless @links
111
- @links = TagCollection.new(@doc) do |array, symbol, *args|
112
- linkset = array.select {|link| link.rel == symbol.to_s }
113
- unless linkset.empty?
114
- linkset.size == 1 ? linkset.first : linkset
115
- else
116
- nil
117
- end
118
- end
119
- @doc.xpath("xmlns:link").each do |link|
120
- @links << Link.new(link)
121
- end
111
+ return @links if @links
112
+
113
+ @links = TagCollection.new(@doc) do |array, symbol, *args|
114
+ linkset = array.select {|link| link.rel == symbol.to_s }
115
+ unless linkset.empty?
116
+ linkset.size == 1 ? linkset.first : linkset
117
+ else
118
+ nil
119
+ end
122
120
  end
121
+ @doc.xpath("xmlns:link").each do |link|
122
+ @links << Link.new(link)
123
+ end
124
+ @links
123
125
 
124
- return @links
125
126
  end
126
127
 
127
128
  def categories
128
- unless @categories
129
- @categories = TagCollection.new(@doc)
130
- @doc.xpath("xmlns:category").each do |category|
131
- @categories << Link.new(category)
132
- end
133
- end
129
+ return @categories if @categories
130
+
131
+ @categories = TagCollection.new(@doc)
132
+ @doc.xpath("xmlns:category").each do |category|
133
+ @categories << Link.new(category)
134
+ end
135
+ @categories
134
136
 
135
- return @categories
136
137
  end
137
138
  end
138
139
  end
@@ -39,12 +39,7 @@ module Restfulie
39
39
  end
40
40
 
41
41
  def method_missing(method)
42
- value = text(method)
43
- unless value
44
- super
45
- else
46
- value
47
- end
42
+ text(method) || super
48
43
  end
49
44
 
50
45
  protected
@@ -54,12 +49,12 @@ module Restfulie
54
49
  end
55
50
 
56
51
  def set_text(node_name, value)
57
- unless (node = @doc.at_xpath("xmlns:#{node_name}"))
58
- node = create_element(node_name, value)
59
- node.parent = @doc
60
- else
52
+ if (node = @doc.at_xpath("xmlns:#{node_name}"))
61
53
  value = value.xmlschema if value.kind_of?(Time) || value.kind_of?(DateTime)
62
54
  node.content = value
55
+ else
56
+ node = create_element(node_name, value)
57
+ node.parent = @doc
63
58
  end
64
59
  end
65
60
 
@@ -3,15 +3,6 @@ module Restfulie
3
3
  module Representation
4
4
  # Unknown representation's unmarshalling on the client side
5
5
  class Generic
6
- def self.media_type_name
7
- raise Error::RestfulieError.new("Generic representation does not have a specific media type")
8
- end
9
-
10
- cattr_reader :headers
11
- @@headers = {
12
- :get => { },
13
- :post => { }
14
- }
15
6
 
16
7
  # Because there is no media type registered, return the content itself
17
8
  def unmarshal(content)
@@ -25,9 +16,6 @@ module Restfulie
25
16
  string
26
17
  end
27
18
 
28
- def prepare_link_for(link)
29
- link
30
- end
31
19
  end
32
20
  end
33
21
  end
@@ -44,6 +44,8 @@ module Restfulie
44
44
  class << self; self; end
45
45
  end
46
46
 
47
+ include Restfulie::Common::Links
48
+
47
49
  # easy accessors to links
48
50
  def links
49
51
  some_links = self["link"]
@@ -1,10 +1,3 @@
1
- module Restfulie
2
- module Common
3
- module Representation
4
- autoload :Atom, 'restfulie/common/representation/atom'
5
- autoload :Generic, 'restfulie/common/representation/generic'
6
- autoload :Json, 'restfulie/common/representation/json'
7
- autoload :Links, 'restfulie/common/representation/links'
8
- end
9
- end
1
+ module Restfulie::Common::Representation
2
+ Dir["#{File.dirname(__FILE__)}/representation/*.rb"].each {|f| autoload File.basename(f)[0..-4].camelize.to_sym, f }
10
3
  end
@@ -4,14 +4,15 @@ require 'uri'
4
4
  require 'rubygems'
5
5
  require 'active_support'
6
6
  require 'action_controller'
7
- require 'restfulie/common/core_ext'
8
7
 
9
8
  module Restfulie
10
9
  module Common
11
10
  autoload :Error, 'restfulie/common/error'
11
+ autoload :Links, 'restfulie/common/links'
12
12
  autoload :Logger, 'restfulie/common/logger'
13
13
  autoload :Representation, 'restfulie/common/representation'
14
14
  autoload :Converter, 'restfulie/common/converter'
15
15
  end
16
16
  end
17
17
 
18
+ require 'restfulie/common/core_ext'
@@ -0,0 +1,81 @@
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
@@ -0,0 +1,17 @@
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
@@ -0,0 +1,13 @@
1
+ module Restfulie::Server::ActionController::Trait::SavePriorToCreate
2
+ def to_format
3
+ if (options[:status] == 201) || (options[:status] == :created)==201
4
+ if resource.save
5
+ super
6
+ else
7
+ render :action => "new"
8
+ end
9
+ else
10
+ super
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,9 @@
1
+ module Restfulie
2
+ module Server
3
+ module ActionController #:nodoc:
4
+ module Trait #:nodoc:
5
+ Dir["#{File.dirname(__FILE__)}/trait/*.rb"].each {|f| autoload File.basename(f)[0..-4].camelize.to_sym, f }
6
+ end
7
+ end
8
+ end
9
+ end
@@ -2,11 +2,7 @@ module Restfulie
2
2
  module Server
3
3
  module ActionController #:nodoc:
4
4
  if defined?(::ActionController) || defined?(::ApplicationController)
5
- autoload :ParamsParser, 'restfulie/server/action_controller/params_parser'
6
- autoload :CacheableResponder, 'restfulie/server/action_controller/cacheable_responder'
7
- autoload :CreatedResponder, 'restfulie/server/action_controller/created_responder'
8
- autoload :RestfulResponder, 'restfulie/server/action_controller/restful_responder'
9
- autoload :Base, 'restfulie/server/action_controller/base'
5
+ Dir["#{File.dirname(__FILE__)}/action_controller/*.rb"].each {|f| autoload File.basename(f)[0..-4].camelize.to_sym, f }
10
6
  end
11
7
  end
12
8
  end
@@ -6,7 +6,7 @@ module Restfulie
6
6
  include ::ActionView::TemplateHandlers::Compilable
7
7
 
8
8
  def compile(template)
9
- "@restfulie_type_helpers = Restfulie::Client::HTTP::RequestMarshaller.content_type_for(self.response.content_type).helper; " +
9
+ "@restfulie_type_helpers = Restfulie::Common::Converter.content_type_for(self.response.content_type).helper; " +
10
10
  "extend @restfulie_type_helpers; " +
11
11
  "extend Restfulie::Server::ActionView::Helpers; " +
12
12
  "code_block = lambda { #{template.source} };" +
@@ -1,3 +1,4 @@
1
+ require 'respondie'
1
2
  require 'restfulie/common'
2
3
 
3
4
  module Restfulie
@@ -16,4 +17,9 @@ class ActionController::Base
16
17
  def self.restfulie
17
18
  include Restfulie::Server::ActionController::Base
18
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
+
19
25
  end
@@ -1,10 +1,10 @@
1
1
  module Restfulie
2
2
  module VERSION #:nodoc:
3
- MAJOR = 0
4
- MINOR = 9
5
- TINY = 3
3
+ MAJOR = 1
4
+ MINOR = 0
5
+ TINY = 0
6
6
 
7
- STRING = [MAJOR, MINOR, TINY].join('.')
7
+ STRING = [MAJOR, MINOR, TINY].join('.') + ".beta1"
8
8
 
9
9
  # Restfulie's version
10
10
  def self.to_s
data/lib/restfulie.rb CHANGED
@@ -5,12 +5,30 @@ require 'restfulie/common'
5
5
  require 'restfulie/client'
6
6
  require 'restfulie/server'
7
7
 
8
- # Shortcut to Restfulie::Client::EntryPoint
8
+ # Shortcut to RestfulieDsl
9
9
  module Restfulie
10
- extend Restfulie::Client::EntryPoint
11
10
 
12
11
  # creates a new entry point for executing requests
13
12
  def self.at(uri)
14
- Object.new.send(:extend, Restfulie::Client::EntryPoint).at(uri)
13
+ Restfulie.use.at(uri)
14
+ end
15
+
16
+ def self.using(&block)
17
+ RestfulieUsing.new.instance_eval(&block)
18
+ end
19
+
20
+ def self.use(&block)
21
+ if block_given?
22
+ Restfulie::Client::Dsl.new.instance_eval(&block)
23
+ else
24
+ Restfulie::Client::Dsl.new
25
+ end
26
+ end
27
+
28
+ end
29
+
30
+ class RestfulieUsing
31
+ def method_missing(sym, *args)
32
+ @current = "Restfulie::Client::HTTP::#{sym.to_s.classify}".constantize.new(@current || Restfulie::Client::HTTP::RequestAdapter.new, *args)
15
33
  end
16
34
  end
metadata CHANGED
@@ -1,13 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: restfulie
3
3
  version: !ruby/object:Gem::Version
4
- hash: 61
5
- prerelease: false
4
+ hash: 299253597
5
+ prerelease: true
6
6
  segments:
7
+ - 1
8
+ - 0
7
9
  - 0
8
- - 9
9
- - 3
10
- version: 0.9.3
10
+ - beta1
11
+ version: 1.0.0.beta1
11
12
  platform: ruby
12
13
  authors:
13
14
  - Guilherme Silveira, Caue Guerra, Luis Cipriani, Everton Ribeiro, George Guimaraes, Paulo Ahagon, Several contributors
@@ -15,7 +16,7 @@ autorequire:
15
16
  bindir: bin
16
17
  cert_chain: []
17
18
 
18
- date: 2010-08-31 00:00:00 -03:00
19
+ date: 2010-10-31 00:00:00 -02:00
19
20
  default_executable:
20
21
  dependencies:
21
22
  - !ruby/object:Gem::Dependency
@@ -98,28 +99,30 @@ files:
98
99
  - lib/restfulie/client/cache/restrictions.rb
99
100
  - lib/restfulie/client/cache.rb
100
101
  - lib/restfulie/client/configuration.rb
102
+ - lib/restfulie/client/dsl.rb
101
103
  - lib/restfulie/client/entry_point.rb
102
104
  - lib/restfulie/client/ext/atom_ext.rb
103
105
  - lib/restfulie/client/ext/http_ext.rb
104
106
  - lib/restfulie/client/ext/json_ext.rb
105
- - lib/restfulie/client/ext/xml_ext.rb
107
+ - lib/restfulie/client/feature/base.rb
108
+ - lib/restfulie/client/feature/base_request.rb
109
+ - lib/restfulie/client/feature/cache.rb
110
+ - lib/restfulie/client/feature/enhance_response.rb
111
+ - lib/restfulie/client/feature/follow_request.rb
112
+ - lib/restfulie/client/feature/history.rb
113
+ - lib/restfulie/client/feature/history_request.rb
114
+ - lib/restfulie/client/feature/open_search/pattern_matcher.rb
115
+ - lib/restfulie/client/feature/open_search.rb
116
+ - lib/restfulie/client/feature/serialize_body.rb
117
+ - lib/restfulie/client/feature/setup_header.rb
118
+ - lib/restfulie/client/feature/throw_error.rb
119
+ - lib/restfulie/client/feature/verb.rb
120
+ - lib/restfulie/client/feature.rb
106
121
  - lib/restfulie/client/http/cache.rb
107
122
  - lib/restfulie/client/http/error.rb
108
- - lib/restfulie/client/http/link_request_builder.rb
109
- - lib/restfulie/client/http/request_adapter.rb
110
- - lib/restfulie/client/http/request_builder.rb
111
- - lib/restfulie/client/http/request_builder_executor.rb
112
- - lib/restfulie/client/http/request_executor.rb
113
- - lib/restfulie/client/http/request_follow.rb
114
- - lib/restfulie/client/http/request_follow_executor.rb
115
- - lib/restfulie/client/http/request_history.rb
116
- - lib/restfulie/client/http/request_history_executor.rb
117
- - lib/restfulie/client/http/request_marshaller.rb
118
- - lib/restfulie/client/http/request_marshaller_executor.rb
119
- - lib/restfulie/client/http/response.rb
120
- - lib/restfulie/client/http/response_handler.rb
121
123
  - lib/restfulie/client/http/response_holder.rb
122
124
  - lib/restfulie/client/http.rb
125
+ - lib/restfulie/client/master_delegator.rb
123
126
  - lib/restfulie/client/mikyung/concatenator.rb
124
127
  - lib/restfulie/client/mikyung/core.rb
125
128
  - lib/restfulie/client/mikyung/languages/german.rb
@@ -135,10 +138,13 @@ files:
135
138
  - lib/restfulie/common/converter/atom/builder.rb
136
139
  - lib/restfulie/common/converter/atom/helpers.rb
137
140
  - lib/restfulie/common/converter/atom.rb
141
+ - lib/restfulie/common/converter/form_url_encoded.rb
138
142
  - lib/restfulie/common/converter/json/base.rb
139
143
  - lib/restfulie/common/converter/json/builder.rb
140
144
  - lib/restfulie/common/converter/json/helpers.rb
141
145
  - lib/restfulie/common/converter/json.rb
146
+ - lib/restfulie/common/converter/open_search/descriptor.rb
147
+ - lib/restfulie/common/converter/open_search.rb
142
148
  - lib/restfulie/common/converter/values.rb
143
149
  - lib/restfulie/common/converter/xml/base.rb
144
150
  - lib/restfulie/common/converter/xml/builder.rb
@@ -150,6 +156,7 @@ files:
150
156
  - lib/restfulie/common/core_ext/hash.rb
151
157
  - lib/restfulie/common/core_ext.rb
152
158
  - lib/restfulie/common/error.rb
159
+ - lib/restfulie/common/links.rb
153
160
  - lib/restfulie/common/logger.rb
154
161
  - lib/restfulie/common/representation/atom/base.rb
155
162
  - lib/restfulie/common/representation/atom/category.rb
@@ -172,11 +179,13 @@ files:
172
179
  - lib/restfulie/common/representation.rb
173
180
  - lib/restfulie/common.rb
174
181
  - lib/restfulie/server/action_controller/base.rb
175
- - lib/restfulie/server/action_controller/cacheable_responder.rb
176
- - lib/restfulie/server/action_controller/created_responder.rb
177
182
  - lib/restfulie/server/action_controller/params_parser.rb
178
183
  - lib/restfulie/server/action_controller/patch.rb
179
184
  - lib/restfulie/server/action_controller/restful_responder.rb
185
+ - lib/restfulie/server/action_controller/trait/cacheable.rb
186
+ - lib/restfulie/server/action_controller/trait/created.rb
187
+ - lib/restfulie/server/action_controller/trait/save_prior_to_create.rb
188
+ - lib/restfulie/server/action_controller/trait.rb
180
189
  - lib/restfulie/server/action_controller.rb
181
190
  - lib/restfulie/server/action_view/helpers.rb
182
191
  - lib/restfulie/server/action_view/template_handlers/tokamak.rb
@@ -216,12 +225,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
216
225
  required_rubygems_version: !ruby/object:Gem::Requirement
217
226
  none: false
218
227
  requirements:
219
- - - ">="
228
+ - - ">"
220
229
  - !ruby/object:Gem::Version
221
- hash: 3
230
+ hash: 25
222
231
  segments:
223
- - 0
224
- version: "0"
232
+ - 1
233
+ - 3
234
+ - 1
235
+ version: 1.3.1
225
236
  requirements: []
226
237
 
227
238
  rubyforge_project:
@@ -1,4 +0,0 @@
1
- # inject new behavior in Atom instances to enable easily access to link relationships.
2
- class Hash
3
- include Restfulie::Client::HTTP::LinkRequestBuilder
4
- end
@@ -1,16 +0,0 @@
1
- module Restfulie
2
- module Client
3
- module HTTP
4
- module LinkRequestBuilder
5
- include RequestMarshaller
6
- include RequestFollow
7
-
8
- def path#:nodoc:
9
- at(href)
10
- as(type) if type
11
- super
12
- end
13
- end
14
- end
15
- end
16
- end