restfulie 0.1.0.beta1 → 0.1

Sign up to get free protection for your applications and to get access to all the features.
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