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.
Files changed (111) hide show
  1. data/README.textile +87 -99
  2. data/Rakefile +14 -109
  3. data/lib/restfulie.rb +183 -23
  4. metadata +12 -197
  5. data/Gemfile +0 -28
  6. data/Gemfile.lock +0 -128
  7. data/LICENSE +0 -17
  8. data/lib/restfulie/client.rb +0 -26
  9. data/lib/restfulie/client/base.rb +0 -36
  10. data/lib/restfulie/client/cache.rb +0 -11
  11. data/lib/restfulie/client/cache/basic.rb +0 -76
  12. data/lib/restfulie/client/cache/fake.rb +0 -15
  13. data/lib/restfulie/client/cache/http_ext.rb +0 -123
  14. data/lib/restfulie/client/cache/restrictions.rb +0 -13
  15. data/lib/restfulie/client/configuration.rb +0 -67
  16. data/lib/restfulie/client/dsl.rb +0 -66
  17. data/lib/restfulie/client/entry_point.rb +0 -61
  18. data/lib/restfulie/client/ext/atom_ext.rb +0 -14
  19. data/lib/restfulie/client/ext/http_ext.rb +0 -22
  20. data/lib/restfulie/client/ext/json_ext.rb +0 -16
  21. data/lib/restfulie/client/feature.rb +0 -5
  22. data/lib/restfulie/client/feature/base.rb +0 -75
  23. data/lib/restfulie/client/feature/base_request.rb +0 -35
  24. data/lib/restfulie/client/feature/cache.rb +0 -16
  25. data/lib/restfulie/client/feature/enhance_response.rb +0 -12
  26. data/lib/restfulie/client/feature/follow_request.rb +0 -41
  27. data/lib/restfulie/client/feature/history.rb +0 -26
  28. data/lib/restfulie/client/feature/history_request.rb +0 -19
  29. data/lib/restfulie/client/feature/open_search.rb +0 -21
  30. data/lib/restfulie/client/feature/open_search/pattern_matcher.rb +0 -25
  31. data/lib/restfulie/client/feature/serialize_body.rb +0 -32
  32. data/lib/restfulie/client/feature/setup_header.rb +0 -22
  33. data/lib/restfulie/client/feature/throw_error.rb +0 -41
  34. data/lib/restfulie/client/feature/verb.rb +0 -119
  35. data/lib/restfulie/client/http.rb +0 -7
  36. data/lib/restfulie/client/http/cache.rb +0 -28
  37. data/lib/restfulie/client/http/error.rb +0 -77
  38. data/lib/restfulie/client/http/response_holder.rb +0 -29
  39. data/lib/restfulie/client/master_delegator.rb +0 -31
  40. data/lib/restfulie/client/mikyung.rb +0 -15
  41. data/lib/restfulie/client/mikyung/concatenator.rb +0 -18
  42. data/lib/restfulie/client/mikyung/core.rb +0 -70
  43. data/lib/restfulie/client/mikyung/languages.rb +0 -11
  44. data/lib/restfulie/client/mikyung/languages/german.rb +0 -24
  45. data/lib/restfulie/client/mikyung/languages/portuguese.rb +0 -23
  46. data/lib/restfulie/client/mikyung/rest_process_model.rb +0 -191
  47. data/lib/restfulie/client/mikyung/steady_state_walker.rb +0 -38
  48. data/lib/restfulie/client/mikyung/then_condition.rb +0 -39
  49. data/lib/restfulie/client/mikyung/when_condition.rb +0 -57
  50. data/lib/restfulie/common.rb +0 -18
  51. data/lib/restfulie/common/converter.rb +0 -43
  52. data/lib/restfulie/common/converter/atom.rb +0 -12
  53. data/lib/restfulie/common/converter/atom/base.rb +0 -91
  54. data/lib/restfulie/common/converter/atom/builder.rb +0 -111
  55. data/lib/restfulie/common/converter/atom/helpers.rb +0 -17
  56. data/lib/restfulie/common/converter/json.rb +0 -12
  57. data/lib/restfulie/common/converter/json/base.rb +0 -87
  58. data/lib/restfulie/common/converter/json/builder.rb +0 -102
  59. data/lib/restfulie/common/converter/json/helpers.rb +0 -17
  60. data/lib/restfulie/common/converter/open_search.rb +0 -16
  61. data/lib/restfulie/common/converter/open_search/descriptor.rb +0 -32
  62. data/lib/restfulie/common/converter/values.rb +0 -33
  63. data/lib/restfulie/common/converter/xml.rb +0 -14
  64. data/lib/restfulie/common/converter/xml/base.rb +0 -63
  65. data/lib/restfulie/common/converter/xml/builder.rb +0 -113
  66. data/lib/restfulie/common/converter/xml/helpers.rb +0 -17
  67. data/lib/restfulie/common/converter/xml/link.rb +0 -30
  68. data/lib/restfulie/common/converter/xml/links.rb +0 -21
  69. data/lib/restfulie/common/core_ext.rb +0 -1
  70. data/lib/restfulie/common/core_ext/hash.rb +0 -18
  71. data/lib/restfulie/common/error.rb +0 -19
  72. data/lib/restfulie/common/links.rb +0 -9
  73. data/lib/restfulie/common/logger.rb +0 -19
  74. data/lib/restfulie/common/representation.rb +0 -3
  75. data/lib/restfulie/common/representation/atom.rb +0 -20
  76. data/lib/restfulie/common/representation/atom/atom.rng +0 -597
  77. data/lib/restfulie/common/representation/atom/base.rb +0 -142
  78. data/lib/restfulie/common/representation/atom/category.rb +0 -41
  79. data/lib/restfulie/common/representation/atom/entry.rb +0 -59
  80. data/lib/restfulie/common/representation/atom/factory.rb +0 -43
  81. data/lib/restfulie/common/representation/atom/feed.rb +0 -110
  82. data/lib/restfulie/common/representation/atom/link.rb +0 -68
  83. data/lib/restfulie/common/representation/atom/person.rb +0 -48
  84. data/lib/restfulie/common/representation/atom/source.rb +0 -59
  85. data/lib/restfulie/common/representation/atom/tag_collection.rb +0 -38
  86. data/lib/restfulie/common/representation/atom/xml.rb +0 -90
  87. data/lib/restfulie/common/representation/generic.rb +0 -22
  88. data/lib/restfulie/common/representation/json.rb +0 -13
  89. data/lib/restfulie/common/representation/json/base.rb +0 -27
  90. data/lib/restfulie/common/representation/json/keys_as_methods.rb +0 -74
  91. data/lib/restfulie/common/representation/json/link.rb +0 -29
  92. data/lib/restfulie/common/representation/json/link_collection.rb +0 -23
  93. data/lib/restfulie/common/representation/links.rb +0 -11
  94. data/lib/restfulie/server.rb +0 -25
  95. data/lib/restfulie/server/action_controller.rb +0 -11
  96. data/lib/restfulie/server/action_controller/base.rb +0 -48
  97. data/lib/restfulie/server/action_controller/params_parser.rb +0 -100
  98. data/lib/restfulie/server/action_controller/patch.rb +0 -6
  99. data/lib/restfulie/server/action_controller/restful_responder.rb +0 -12
  100. data/lib/restfulie/server/action_controller/trait.rb +0 -9
  101. data/lib/restfulie/server/action_controller/trait/cacheable.rb +0 -81
  102. data/lib/restfulie/server/action_controller/trait/created.rb +0 -17
  103. data/lib/restfulie/server/action_view.rb +0 -10
  104. data/lib/restfulie/server/action_view/helpers.rb +0 -50
  105. data/lib/restfulie/server/action_view/template_handlers.rb +0 -30
  106. data/lib/restfulie/server/action_view/template_handlers/tokamak.rb +0 -21
  107. data/lib/restfulie/server/configuration.rb +0 -24
  108. data/lib/restfulie/server/controller.rb +0 -74
  109. data/lib/restfulie/server/core_ext.rb +0 -1
  110. data/lib/restfulie/server/core_ext/array.rb +0 -61
  111. data/lib/restfulie/version.rb +0 -14
@@ -1,74 +0,0 @@
1
- module Restfulie
2
- module Server
3
- # Controller which adds default CRUD + search + other operations.
4
- # TODO: move these actions to controller/base.rb (maybe using InheritedResources, maybe not)
5
- module Controller
6
- # creates a model based on the request media-type extracted from its content-type
7
- def create
8
- type = model_type
9
- return head 415 unless fits_content(type, request.headers['CONTENT_TYPE'])
10
-
11
- @model = type.from_xml request.body.string
12
- if @model.save
13
- render_created @model
14
- else
15
- render :xml => @model.errors, :status => :unprocessable_entity
16
- end
17
- end
18
-
19
- # renders this resource
20
- def show
21
- @model = model_type.find(params[:id])
22
- instance_variable_set(model_variable_name, @model)
23
- render_resource(@model)
24
- end
25
-
26
- def model_variable_name
27
- ("@" + model_type.to_s.downcase).to_sym
28
- end
29
-
30
- # destroys this resource
31
- def destroy
32
- @model = model_type.find(params[:id])
33
- @model.destroy
34
- head :ok
35
- end
36
-
37
- # updates a resouce
38
- def update
39
- type = model_type
40
-
41
- @loaded = type.find(params[:id])
42
- return head(:status => 405) unless @loaded.can? :update
43
-
44
- return head(415) unless fits_content(type, request.headers['CONTENT_TYPE'])
45
-
46
- @model = Hash.from_xml(request.body.string)[model_name]
47
- pre_update(@model) if self.respond_to?(:pre_update)
48
-
49
- if @loaded.update_attributes(@model)
50
- render_resource @loaded
51
- else
52
- render :xml => @loaded.errors, :status => :unprocessable_entity
53
- end
54
- end
55
-
56
- # returns the model for this controller
57
- def model_type
58
- self.class.name[/(.*)Controller/,1].singularize.constantize
59
- end
60
-
61
- # retrieves the model name
62
- def model_name
63
- self.class.name[/(.*)Controller/,1].singularize.underscore
64
- end
65
-
66
- def fits_content(type, content_type)
67
- Restfulie::MediaType.supports?(content_type) &&
68
- (type.respond_to?(:media_type_representations) ?
69
- type.media_type_representations.include?(content_type) :
70
- Restfulie::MediaType.default_representations.include?(content_type))
71
- end
72
- end
73
- end
74
- end
@@ -1 +0,0 @@
1
- require 'restfulie/server/core_ext/array'
@@ -1,61 +0,0 @@
1
- # Introspective methods to assist in the conversion of collections in other formats.
2
- class Array
3
- def to_atom(options={}, &block)
4
- raise "Not all elements respond to to_atom" unless all? { |e| e.respond_to? :to_atom }
5
- options = options.dup
6
-
7
- if options.delete :only_self_link
8
- options[:skip_associations_links] = true
9
- options[:skip_attributes] = true
10
- end
11
-
12
- feed = Restfulie::Common::Representation::Atom::Feed.new
13
- # TODO: Define better feed attributes
14
- # Array#to_s can return a very long string
15
- feed.title = "Collection of #{map {|i| i.class.name }.uniq.to_sentence}"
16
- feed.updated = updated_at
17
- feed.published = published_at
18
- # TODO: this id does not comply with Rest standards yet
19
- feed.id = hash
20
-
21
- each do |element|
22
- feed.entries << element.to_atom(options)
23
- end
24
-
25
- yield feed if block_given?
26
-
27
- feed
28
- end
29
-
30
- # Return max update date for items in collection, for it uses the updated_at of items.
31
- #
32
- #==Example:
33
- #
34
- # Find max updated at in ActiveRecord objects
35
- #
36
- # albums = Albums.find(:all)
37
- # albums.updated_at
38
- #
39
- # Using a custom field to check the max date
40
- #
41
- # albums = Albums.find(:all)
42
- # albums.updated_at(:created_at)
43
- #
44
- def updated_at(field = :updated_at)
45
- max = max_by{|o| o.send(field)}
46
- if max
47
- max.send(field)
48
- else
49
- Time.now
50
- end
51
- end
52
-
53
- def published_at(field = :published_at)
54
- min = min_by{|o| o.send(field)}
55
- if min
56
- min.send(field)
57
- else
58
- Time.now
59
- end
60
- end
61
- end
@@ -1,14 +0,0 @@
1
- module Restfulie
2
- module VERSION #:nodoc:
3
- MAJOR = 0
4
- MINOR = 1
5
- TINY = 0
6
-
7
- STRING = [MAJOR, MINOR, TINY].join('.') + ".beta1"
8
-
9
- # Restfulie's version
10
- def self.to_s
11
- STRING
12
- end
13
- end
14
- end