roy 0.2.2 → 0.3.0

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/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- roy (0.2.1)
4
+ roy (0.3.0)
5
5
  rack
6
6
 
7
7
  GEM
data/README.md CHANGED
@@ -25,17 +25,17 @@ class MessageQueue
25
25
  @stack = []
26
26
  end
27
27
 
28
- def get
28
+ def get(_)
29
29
  @stack.inspect
30
30
  end
31
31
 
32
- def post
32
+ def post(_)
33
33
  halt 403 unless roy.params[:item]
34
34
  @stack << roy.params[:item].strip
35
35
  get
36
36
  end
37
37
 
38
- def delete
38
+ def delete(_)
39
39
  @stack.shift.inspect
40
40
  end
41
41
  end
@@ -54,7 +54,7 @@ class Example
54
54
  include Roy
55
55
  roy allow: [:get], prefix: :http_, foo: "bar"
56
56
 
57
- def http_get(*args)
57
+ def http_get(path)
58
58
  "foo is #{roy.conf.foo}"
59
59
  end
60
60
  end
data/lib/roy/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Roy
2
- VERSION = "0.2.2"
2
+ VERSION = "0.3.0"
3
3
  end
data/lib/roy.rb CHANGED
@@ -30,16 +30,15 @@ module Roy
30
30
  }
31
31
 
32
32
  method = roy.env['REQUEST_METHOD'].downcase.to_sym
33
- args = roy.env['PATH_INFO'].sub(/^\/+/, '').split(/\/+/).map { |arg|
34
- Rack::Utils.unescape(arg)
35
- }
33
+ path = roy.env['PATH_INFO']
34
+ path = "/#{path}" unless path[0] == '/'
36
35
 
37
36
  method, was_head = :get, true if method == :head
38
37
 
39
38
  roy.response.status, body = catch(:halt) do
40
39
  halt(405) unless roy.conf.allow.include?(method)
41
40
  prefixed_method = :"#{roy.conf.prefix}#{method}"
42
- [roy.response.status, send(prefixed_method, *args)]
41
+ [roy.response.status, send(prefixed_method, path)]
43
42
  end
44
43
 
45
44
  roy.response.write(body) unless was_head
data/test/after_test.rb CHANGED
@@ -10,7 +10,7 @@ class AfterTestObject
10
10
  response.header['Content-Type'] = 'text/plain'
11
11
  }
12
12
 
13
- def get(*args)
13
+ def get _
14
14
  'success'
15
15
  end
16
16
  end
data/test/base_test.rb CHANGED
@@ -11,19 +11,19 @@ class BaseTestObject
11
11
 
12
12
  roy allow: [:get, :put, :custom]
13
13
 
14
- def get(*args)
14
+ def get(path)
15
15
  history.inspect
16
16
  end
17
17
 
18
- def put(*args)
18
+ def put(path)
19
19
  Roy.halt 400 unless roy.params[:body]
20
20
  history << roy.params[:body]
21
21
  history << roy.params[:foo] if roy.params[:foo]
22
- get
22
+ get(path)
23
23
  end
24
24
 
25
- def custom(*args)
26
- args.join('+')
25
+ def custom(path)
26
+ path
27
27
  end
28
28
  end
29
29
 
@@ -51,7 +51,7 @@ class BaseTest < MiniTest::Unit::TestCase
51
51
  def test_forward_allowed_methods
52
52
  get '/'
53
53
  ok!
54
- assert_equal app.get, last_response.body
54
+ assert_equal app.get('/'), last_response.body
55
55
  end
56
56
 
57
57
  def test_block_forbidden_methods
@@ -64,6 +64,7 @@ class BaseTest < MiniTest::Unit::TestCase
64
64
  def test_set_allowed_methods
65
65
  assert_includes app.class.conf.allow, :get
66
66
  assert_includes app.class.conf.allow, :put
67
+ assert_includes app.class.conf.allow, :custom
67
68
  refute_includes app.class.conf.allow, :post
68
69
  end
69
70
 
@@ -89,9 +90,9 @@ class BaseTest < MiniTest::Unit::TestCase
89
90
  assert_equal %w(hello bar).inspect, last_response.body
90
91
  end
91
92
 
92
- def test_path_components_as_method_arguments
93
- request '/a/b/c', :method => 'CUSTOM'
93
+ def test_custom_methods
94
+ request '/', :method => 'CUSTOM'
94
95
  ok!
95
- assert_equal 'a+b+c', last_response.body
96
+ assert_equal '/', last_response.body
96
97
  end
97
98
  end
data/test/before_test.rb CHANGED
@@ -10,7 +10,7 @@ class BeforeTestObject
10
10
  env['REQUEST_METHOD'] = 'GET'
11
11
  }
12
12
 
13
- def get(*args)
13
+ def get(path)
14
14
  'success'
15
15
  end
16
16
  end
@@ -6,7 +6,7 @@ Roy::Defaults.prefix = :http_
6
6
  class DefaultsTestObject
7
7
  include Roy
8
8
 
9
- def http_get(*args)
9
+ def http_get(path)
10
10
  'success'
11
11
  end
12
12
  end
data/test/plugins_test.rb CHANGED
@@ -14,7 +14,7 @@ class PluginsTestObject
14
14
  response.header['Content-Type'] = 'text/plain'
15
15
  }
16
16
 
17
- def get(*args)
17
+ def get(path)
18
18
  'success'
19
19
  end
20
20
  end
data/test/prefix_test.rb CHANGED
@@ -5,7 +5,7 @@ class PrefixTestObject
5
5
 
6
6
  roy allow: [:get], prefix: :http_
7
7
 
8
- def http_get(*args)
8
+ def http_get(path)
9
9
  'success'
10
10
  end
11
11
  end
data/test/render_test.rb CHANGED
@@ -15,21 +15,21 @@ class RenderTestObject
15
15
  roy allow: [:get],
16
16
  views: 'test/views'
17
17
 
18
- def get(*args)
19
- case args.first
20
- when 'template'
18
+ def get(path)
19
+ case path
20
+ when '/template'
21
21
  render :erb, :test
22
- when 'template_layout'
22
+ when '/template_layout'
23
23
  render :erb, :layout do
24
24
  render :erb, :test
25
25
  end
26
- when 'inline'
26
+ when '/inline'
27
27
  render :erb, Templates[:simple]
28
- when 'locals'
28
+ when '/locals'
29
29
  render :erb, Templates[:locals], person: 'Bob'
30
- when 'scope'
30
+ when '/scope'
31
31
  render :erb, Templates[:scope]
32
- when 'yield'
32
+ when '/yield'
33
33
  render :erb, Templates[:yield] do
34
34
  render :erb, Templates[:simple]
35
35
  end
metadata CHANGED
@@ -1,73 +1,69 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: roy
3
- version: !ruby/object:Gem::Version
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.3.0
4
5
  prerelease:
5
- version: 0.2.2
6
6
  platform: ruby
7
- authors:
7
+ authors:
8
8
  - madx
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
-
13
- date: 2011-10-29 00:00:00 Z
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
12
+ date: 2011-11-16 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
16
15
  name: rack
17
- prerelease: false
18
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: &6811460 !ruby/object:Gem::Requirement
19
17
  none: false
20
- requirements:
21
- - - ">="
22
- - !ruby/object:Gem::Version
23
- version: "0"
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
24
22
  type: :runtime
25
- version_requirements: *id001
26
- - !ruby/object:Gem::Dependency
27
- name: minitest
28
23
  prerelease: false
29
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: *6811460
25
+ - !ruby/object:Gem::Dependency
26
+ name: minitest
27
+ requirement: &6810920 !ruby/object:Gem::Requirement
30
28
  none: false
31
- requirements:
32
- - - ">="
33
- - !ruby/object:Gem::Version
34
- version: "0"
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
35
33
  type: :development
36
- version_requirements: *id002
37
- - !ruby/object:Gem::Dependency
38
- name: rack-test
39
34
  prerelease: false
40
- requirement: &id003 !ruby/object:Gem::Requirement
35
+ version_requirements: *6810920
36
+ - !ruby/object:Gem::Dependency
37
+ name: rack-test
38
+ requirement: &6810380 !ruby/object:Gem::Requirement
41
39
  none: false
42
- requirements:
43
- - - ">="
44
- - !ruby/object:Gem::Version
45
- version: "0"
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
46
44
  type: :development
47
- version_requirements: *id003
48
- - !ruby/object:Gem::Dependency
49
- name: tilt
50
45
  prerelease: false
51
- requirement: &id004 !ruby/object:Gem::Requirement
46
+ version_requirements: *6810380
47
+ - !ruby/object:Gem::Dependency
48
+ name: tilt
49
+ requirement: &6809880 !ruby/object:Gem::Requirement
52
50
  none: false
53
- requirements:
54
- - - ">="
55
- - !ruby/object:Gem::Version
56
- version: "0"
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
57
55
  type: :development
58
- version_requirements: *id004
59
- description: |-
60
- roy is a small library which allows every Ruby object to be used
61
- as a Rack application.
62
- email:
56
+ prerelease: false
57
+ version_requirements: *6809880
58
+ description: ! 'roy is a small library which allows every Ruby object to be used
59
+
60
+ as a Rack application.'
61
+ email:
63
62
  - madx@yapok.org
64
63
  executables: []
65
-
66
64
  extensions: []
67
-
68
65
  extra_rdoc_files: []
69
-
70
- files:
66
+ files:
71
67
  - Gemfile
72
68
  - Gemfile.lock
73
69
  - LICENSE
@@ -93,32 +89,29 @@ files:
93
89
  - test/views/test.erb
94
90
  homepage: https://github.com/madx/roy
95
91
  licenses: []
96
-
97
92
  post_install_message:
98
93
  rdoc_options: []
99
-
100
- require_paths:
94
+ require_paths:
101
95
  - lib
102
- required_ruby_version: !ruby/object:Gem::Requirement
96
+ required_ruby_version: !ruby/object:Gem::Requirement
103
97
  none: false
104
- requirements:
105
- - - ">="
106
- - !ruby/object:Gem::Version
107
- version: "0"
108
- required_rubygems_version: !ruby/object:Gem::Requirement
98
+ requirements:
99
+ - - ! '>='
100
+ - !ruby/object:Gem::Version
101
+ version: '0'
102
+ required_rubygems_version: !ruby/object:Gem::Requirement
109
103
  none: false
110
- requirements:
111
- - - ">="
112
- - !ruby/object:Gem::Version
113
- version: "0"
104
+ requirements:
105
+ - - ! '>='
106
+ - !ruby/object:Gem::Version
107
+ version: '0'
114
108
  requirements: []
115
-
116
109
  rubyforge_project: roy
117
110
  rubygems_version: 1.8.5
118
111
  signing_key:
119
112
  specification_version: 3
120
113
  summary: make your objects REST-friendly
121
- test_files:
114
+ test_files:
122
115
  - test/after_test.rb
123
116
  - test/base_test.rb
124
117
  - test/before_test.rb