simple_rest 0.0.3 → 0.0.4

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/Rakefile CHANGED
@@ -24,16 +24,16 @@ Rake::RDocTask.new(:rdoc) do |rdoc|
24
24
  end
25
25
 
26
26
  PKG_FILES = FileList[ '[a-zA-Z]*', 'lib/**/*', 'test/**/*' ]
27
- require 'lib/simple_rest.rb'
27
+ require './lib/simple_rest.rb'
28
28
  spec = Gem::Specification.new do |s|
29
29
  s.name = "simple_rest"
30
30
  s.version = SimpleRest::VERSION
31
- s.author = "niquola,smecsia"
32
- s.email = "niquola@gmail.com,smecsia@gmail.com"
31
+ s.author = "niquola,smecsia,mirasrael"
32
+ s.email = "niquola@gmail.com,smecsia@gmail.com,alexander.i.bondarev@gmail.com"
33
33
  #s.homepage = ""
34
34
  s.platform = Gem::Platform::RUBY
35
35
  s.summary = "ActionControllers helpers for restful rails"
36
- s.add_dependency('rails', '>= 2.3.5')
36
+ s.add_dependency('rails', '>= 3.0')
37
37
  s.files = PKG_FILES.to_a
38
38
  s.require_path = "lib"
39
39
  s.has_rdoc = false
@@ -3,6 +3,7 @@ module SimpleRest
3
3
  def self.included(base)
4
4
  base.extend(ClassMethods)
5
5
  base.before_filter :json_request_handling_filter
6
+ base.respond_to :js, :xml, :jsonp, :pdf, :yaml, :html
6
7
  end
7
8
 
8
9
  module ClassMethods
@@ -22,40 +23,9 @@ module SimpleRest
22
23
  end
23
24
  end
24
25
 
25
- def simple_rest(data, opts={})
26
- status= opts[:status] || :ok
27
- serial_opts= opts[:serialize_opts] || {}
28
- respond_to do |format|
29
- format.js { render :json => data.to_json(serial_opts),:status=>status}
30
- format.html { render opts}
31
- format.yaml { render :partial=> 'shared/inspect',:content_type =>'text/html',:locals => { :data => data } ,:status=>status }
32
- format.xml { render :xml => data.to_xml(serial_opts),:status=>status}
33
- format.pdf { render (opts[:pdf_opts] || {}).merge(:layout=>false) }
34
- format.jsonp { render_jsonp(data,opts) }
35
- end
36
- end
37
-
38
- def render_jsonp(data, options={})
39
- text = build_jsonp_message(data,options)
40
- render({:content_type => :js, :text => text}.merge(options.merge(:status=>:ok)))
41
- end
42
-
43
- def build_jsonp_message(data,options)
44
- message = {:status=>options[:status] || 200, :data=>data}
45
- json=message.to_json(options)
46
- callback, variable = params[:callback], params[:variable]
47
- response =
48
- begin
49
- if callback && variable
50
- "var #{variable} = #{json};\n#{callback}(#{variable});"
51
- elsif variable
52
- "var #{variable} = #{json};"
53
- elsif callback
54
- "#{callback}(#{json});"
55
- else
56
- json
57
- end
58
- end
26
+ def simple_rest(data, opts = {})
27
+ ::ActiveSupport::Deprecation.warn("simple_rest is deprecated. Please use respond_with instead")
28
+ respond_with data, opts
59
29
  end
60
30
 
61
31
  def store_location
@@ -0,0 +1,45 @@
1
+ module SimpleRest
2
+ module ActionControllerResponderMethods
3
+ def to_js
4
+ status = options[:status] || :ok
5
+ render :json => resource.to_json(options[:serialize_opts] || {}), :status => status
6
+ end
7
+
8
+ def to_yaml
9
+ status = options[:status] || :ok
10
+ render :partial=> 'shared/inspect', :content_type =>'text/html', :locals => {:data => resource}, :status=> status
11
+ end
12
+
13
+ def to_pdf
14
+ render (options[:pdf_opts] || {}).merge(:layout=>false)
15
+ end
16
+
17
+ def to_xml
18
+ status = options[:status] || :ok
19
+ render :xml => resource.to_xml(options[:serialize_opts] || {}), :status => status
20
+ end
21
+
22
+ def to_jsonp
23
+ text = build_jsonp_message(resource, options)
24
+ render ({:content_type => :js, :text => text}.merge(options.merge(:status=>:ok)))
25
+ end
26
+
27
+ def build_jsonp_message(data, options)
28
+ message = {:status=>options[:status] || 200, :data=>data}
29
+ json = message.to_json(options)
30
+ callback, variable = controller.params[:callback], controller.params[:variable]
31
+ response =
32
+ begin
33
+ if callback && variable
34
+ "var #{variable} = #{json};\n#{callback}(#{variable});"
35
+ elsif variable
36
+ "var #{variable} = #{json};"
37
+ elsif callback
38
+ "#{callback}(#{json});"
39
+ else
40
+ json
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
data/lib/simple_rest.rb CHANGED
@@ -1,11 +1,13 @@
1
1
  $:.unshift(File.dirname(__FILE__)) unless
2
2
  $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
3
3
  module SimpleRest
4
- VERSION = '0.0.3'
4
+ VERSION = '0.0.4'
5
5
  autoload :ActionControllerMethods, 'simple_rest/action_controller_methods'
6
+ autoload :ActionControllerResponderMethods, 'simple_rest/action_controller_responder_methods'
6
7
  class << self
7
8
  def enable
8
9
  ActionController::Base.send :include, ActionControllerMethods
10
+ ActionController::Responder.send :include, ActionControllerResponderMethods
9
11
  enable_mime_types
10
12
  end
11
13
 
@@ -1,10 +1,4 @@
1
- require File.dirname(__FILE__) + '/test_helper.rb'
2
-
3
- ActionController::Routing::Routes.draw do |map|
4
- map.connect ':controller/:action/:id.:format'
5
- map.connect ':controller/:action.:format'
6
- map.connect ':controller/:action/:id'
7
- end
1
+ require File.expand_path(File.dirname(__FILE__) + '/test_helper.rb')
8
2
 
9
3
  class MyController < ActionController::Base
10
4
  rescue_exceptions_restfully
@@ -13,7 +7,7 @@ class MyController < ActionController::Base
13
7
  end
14
8
 
15
9
  rescue_from MyException do |exception|
16
- simple_rest({:message=>exception.to_s},{:status=>500})
10
+ simple_rest({:message=>exception.to_s}, {:status=>500})
17
11
  end
18
12
 
19
13
  def echo
@@ -32,10 +26,25 @@ class MyController < ActionController::Base
32
26
  def action_with_uncatched_error
33
27
  raise Exception.new("Some error")
34
28
  end
29
+ end
30
+
31
+ class TestApp < Rails::Application
35
32
 
36
33
  end
37
34
 
35
+ TestApp.initialize!
36
+
38
37
  class MyControllerTest < ActionController::TestCase
38
+ def setup
39
+ @routes = ActionDispatch::Routing::RouteSet.new
40
+ @routes.draw do
41
+ match ':controller/:action/:id.:format', :to => MyController
42
+ match ':controller/:action.:format', :to => MyController
43
+ match ':controller/:action/:id', :to => MyController
44
+ end
45
+ MyController.send :include, @routes.url_helpers
46
+ end
47
+
39
48
  def test_methods_mixed
40
49
  assert(MyController.new.respond_to?(:simple_rest))
41
50
  end
@@ -67,8 +76,8 @@ class MyControllerTest < ActionController::TestCase
67
76
  get :index, :format => 'jsonp'
68
77
  resp_obj = parse_json_responce
69
78
  assert_not_nil(resp_obj['status'])
70
- assert_equal(200,resp_obj['status'])
71
- assert_equal('value',resp_obj['data']['field'])
79
+ assert_equal(200, resp_obj['status'])
80
+ assert_equal('value', resp_obj['data']['field'])
72
81
  end
73
82
 
74
83
  def test_xml_format
@@ -85,15 +94,15 @@ class MyControllerTest < ActionController::TestCase
85
94
  get :action_with_error, :format => 'jsonp'
86
95
  resp_obj = parse_json_responce
87
96
  assert_not_nil(resp_obj['data']['message'])
88
- assert_equal(500,resp_obj['status'])
97
+ assert_equal(500, resp_obj['status'])
89
98
  end
90
99
 
91
100
  def test_rescue_exceptions_restfully
92
101
  get :action_with_uncatched_error, :format => 'jsonp'
93
- resp = @response.body
102
+ resp = @response.body
94
103
  resp_obj = parse_json_responce
95
104
  assert_not_nil(resp_obj['data']['message'])
96
- assert_equal(500,resp_obj['status'])
105
+ assert_equal(500, resp_obj['status'])
97
106
  assert_response(:ok)
98
107
 
99
108
  get :action_with_uncatched_error, :format => 'js'
@@ -102,7 +111,7 @@ class MyControllerTest < ActionController::TestCase
102
111
  end
103
112
 
104
113
  def test_json_request_support
105
- get :echo, :format => 'jsonp',:_json=>'{suboject:{field:[1,2,3]}}'
114
+ get :echo, :format => 'jsonp', :_json=>'{suboject:{field:[1,2,3]}}'
106
115
  resp_obj = nil
107
116
  resp_obj = parse_json_responce
108
117
  assert_not_nil(resp_obj['data'])
data/test/test_helper.rb CHANGED
@@ -5,8 +5,9 @@ end
5
5
  $:.unshift(path('../lib'))
6
6
  require 'rubygems'
7
7
  require "test/unit"
8
- require 'active_support'
9
- require 'active_support/test_case'
10
- require 'action_controller'
8
+ require 'rails'
9
+ require "action_controller"
10
+ require "action_dispatch/routing"
11
+ #require 'rails/application/configuration'
11
12
  require 'simple_rest'
12
13
 
metadata CHANGED
@@ -1,21 +1,20 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simple_rest
3
3
  version: !ruby/object:Gem::Version
4
- hash: 25
5
4
  prerelease: false
6
5
  segments:
7
6
  - 0
8
7
  - 0
9
- - 3
10
- version: 0.0.3
8
+ - 4
9
+ version: 0.0.4
11
10
  platform: ruby
12
11
  authors:
13
- - niquola,smecsia
12
+ - niquola,smecsia,mirasrael
14
13
  autorequire:
15
14
  bindir: bin
16
15
  cert_chain: []
17
16
 
18
- date: 2010-08-16 00:00:00 +04:00
17
+ date: 2011-01-26 00:00:00 +03:00
19
18
  default_executable:
20
19
  dependencies:
21
20
  - !ruby/object:Gem::Dependency
@@ -26,16 +25,14 @@ dependencies:
26
25
  requirements:
27
26
  - - ">="
28
27
  - !ruby/object:Gem::Version
29
- hash: 9
30
28
  segments:
31
- - 2
32
29
  - 3
33
- - 5
34
- version: 2.3.5
30
+ - 0
31
+ version: "3.0"
35
32
  type: :runtime
36
33
  version_requirements: *id001
37
34
  description:
38
- email: niquola@gmail.com,smecsia@gmail.com
35
+ email: niquola@gmail.com,smecsia@gmail.com,alexander.i.bondarev@gmail.com
39
36
  executables: []
40
37
 
41
38
  extensions: []
@@ -43,9 +40,10 @@ extensions: []
43
40
  extra_rdoc_files:
44
41
  - README.rdoc
45
42
  files:
46
- - Rakefile
47
43
  - README.rdoc
44
+ - Rakefile
48
45
  - lib/simple_rest/action_controller_methods.rb
46
+ - lib/simple_rest/action_controller_responder_methods.rb
49
47
  - lib/simple_rest.rb
50
48
  - test/simple_rest_test.rb
51
49
  - test/test_helper.rb
@@ -63,7 +61,6 @@ required_ruby_version: !ruby/object:Gem::Requirement
63
61
  requirements:
64
62
  - - ">="
65
63
  - !ruby/object:Gem::Version
66
- hash: 3
67
64
  segments:
68
65
  - 0
69
66
  version: "0"
@@ -72,7 +69,6 @@ required_rubygems_version: !ruby/object:Gem::Requirement
72
69
  requirements:
73
70
  - - ">="
74
71
  - !ruby/object:Gem::Version
75
- hash: 3
76
72
  segments:
77
73
  - 0
78
74
  version: "0"