vidibus-oauth2_server 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -1,7 +1,7 @@
1
1
  source :rubygems
2
2
 
3
3
  gem "rails", "~> 3.0.0"
4
- gem "mongoid", "~> 2.0.0.beta.20"
4
+ gem "mongoid", "~> 2.0.0"
5
5
  gem "vidibus-core_extensions", "~> 0.3.14"
6
6
  gem "vidibus-uuid"
7
7
 
data/README.rdoc CHANGED
@@ -34,7 +34,7 @@ If you use the {Vidibus::Service}[https://github.com/vidibus/vidibus-service] ge
34
34
 
35
35
  # Returns true if given client_secret matches signature.
36
36
  def valid_oauth2_secret?(client_secret)
37
- client_secret == Vidibus::Secure.sign("#{Service.this.url}#{uuid}", secret)
37
+ client_secret == Vidibus::Secure.sign(uuid, secret)
38
38
  end
39
39
 
40
40
 
@@ -121,20 +121,9 @@ This gem will also provide an action to obtain data of the user currently logged
121
121
 
122
122
  get "/oauth/user" => "oauth2/users#show"
123
123
 
124
- You may overwrite the Oauth2::UsersController class to adjust it to your needs. However, if you want to use the default controller, you'll need a method on your ApplicationController to obtain a user by a given UUID.
124
+ You may overwrite the Oauth2::UsersController class to adjust it to your needs. However, if you want to use the default controller, you'll need a User model that responds to <t>:uuid</t>.
125
125
 
126
- For a typical ActiveRecord model this would be:
127
-
128
- # Returns user matching given uuid
129
- def find_user_by_uuid(uuid)
130
- User.first(:conditions => {:uuid => uuid})
131
- end
132
-
133
- The default #show method of this controller delivers a JSON string including name, email and UUID of the current user:
134
-
135
- def show
136
- render :json => @user.attributes.only(*%w[name email uuid])
137
- end
126
+ The default #show method of this controller delivers a JSON of attributes returned by User#oauth_attribute. If no such method exist, the response will include name, email and UUID of the current user.
138
127
 
139
128
  == And the client side?
140
129
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.3
1
+ 0.0.4
@@ -29,7 +29,7 @@ class Oauth2::AuthenticationController < Oauth2Controller
29
29
 
30
30
  # Ensures that the type of flow is supported
31
31
  def validate_oauth2_type!
32
- type = params[:type]
32
+ type = params[:type] || params[:response_type] || params[:grant_type]
33
33
  raise Vidibus::Oauth2Server::MissingTypeError if type.blank?
34
34
  raise Vidibus::Oauth2Server::UnsupportedTypeError unless Vidibus::Oauth2Server::FLOWS.include?(type)
35
35
  end
@@ -3,16 +3,20 @@ class Oauth2::UsersController < Oauth2Controller
3
3
  before_filter :find_user
4
4
 
5
5
  def show
6
- render :json => @user.attributes.only(*%w[name email uuid])
6
+ attributes = @user.try!(:oauth_attributes) || @user.attributes.only(*%w[name email uuid])
7
+ render :json => attributes
7
8
  end
8
9
 
9
10
  protected
10
11
 
11
12
  def find_user
12
- @user = find_user_by_uuid(@access_token.user_id) or render(:nothing => true, :status => :bad_request)
13
+ @user = User.where(:uuid => @access_token.user_id).first or render(:nothing => true, :status => :bad_request)
13
14
  end
14
15
 
15
16
  def ensure_token!
16
- @access_token = Oauth2Token.find!(:token => params[:access_token])
17
+ unless token = params[:access_token] || params[:oauth_token]
18
+ raise Vidibus::Oauth2Server::MissingTokenError
19
+ end
20
+ @access_token = Oauth2Token.find!(:token => token)
17
21
  end
18
22
  end
@@ -7,12 +7,12 @@ class Oauth2Token
7
7
  CODE_EXPIRY = 60 # Lifetime of token authorization code in seconds.
8
8
  TOKEN_EXPIRY = 0 # Lifetime of token in seconds. 0 will never expire token.
9
9
 
10
- field :client_id
11
- field :user_id
12
- field :redirect_url
13
- field :token
14
- field :secret
15
- field :code
10
+ field :client_id, :type => String
11
+ field :user_id, :type => String
12
+ field :redirect_url, :type => String
13
+ field :token, :type => String
14
+ field :secret, :type => String
15
+ field :code, :type => String
16
16
 
17
17
  field :code_expires_at, :type => Time
18
18
  field :token_expires_at, :type => Time
@@ -0,0 +1,16 @@
1
+ de:
2
+ oauth2_server:
3
+ errors:
4
+ missing_type: "Der Parameter '*_type' fehlt. Bitte gib den Typ des OAuth-Flows an."
5
+ unsupported_type: "Der Wert des Parameters '*_type' ist ungültig. Dieser OAuth-Flow wird nicht unterstützt."
6
+ missing_client_id: "Der Parameter 'client_id' fehlt. Bitte gib die ID der Anwendung an."
7
+ invalid_client_id: "Der Parameter 'client_id' ist ungültig. Bitte gib die gültige ID der Anwendung an."
8
+ invalid_client_secret: "Der Parameter 'client_secret' ist ungültig. Bitte gib das gültige Passwort der Anwendung an."
9
+ missing_redirect_url: "Der Parameter 'redirect_url' fehlt. Bitte gib eine URL an, zu der umgeleitet werden soll."
10
+ malformed_redirect_url: "Der Parameter 'redirect_url' hat ein ungültiges Format. Bitte gib eine gültige URL an, zu der umgeleitet werden soll."
11
+ invalid_redirect_url: "Der Parameter 'redirect_url' is ungültig. Er muss zu der URL des anfragenden Services passen. Bitte gib eine gültige URL an, zu der umgeleitet werden soll."
12
+ missing_code: "Der Parameter 'code' fehlt. Bitte gib einen Code zur Abfrage des OAuth-Tokens an."
13
+ invalid_code: "Der Parameter 'code' ist ungültig. Bitte gib einen gültigen Code zur Abfrage des OAuth-Tokens an."
14
+ expired_code: "Der Parameter 'code' ist ungültig. Der angegebene Code zur Abfrage des OAuth-Tokens ist abgelaufen."
15
+ invalid_token: "Der Parameter 'token' ist ungültig. Bitte gib ein gültiges OAuth-Token zur Autorisierung an."
16
+ expired_token: "Der Parameter 'token' ist ungültig. Das angegebene OAuth-Token ist abgelaufen."
@@ -1,8 +1,8 @@
1
1
  en:
2
2
  oauth2_server:
3
3
  errors:
4
- missing_type: "Parameter 'type' is missing. Please provide the type of OAuth flow to apply."
5
- unsupported_type: "Parameter 'type' has an supported value. This type of OAuth flow is not supported by this server."
4
+ missing_type: "Parameter '*_type' is missing. Please provide the type of OAuth flow to apply."
5
+ unsupported_type: "Parameter '*_type' has an supported value. This type of OAuth flow is not supported by this server."
6
6
  missing_client_id: "Parameter 'client_id' is missing. Please provide the key of the requesting client application."
7
7
  invalid_client_id: "Parameter 'client_id' is invalid. Please provide the key of a valid client application."
8
8
  invalid_client_secret: "Parameter 'client_secret' is invalid. Please provide the secret of given client application."
data/config/routes.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  Rails.application.routes.draw do
2
2
  get "/oauth/authorize" => "oauth2/authentication#authorize"
3
- post "/oauth/access_token" => "oauth2/authentication#access_token"
3
+ match "/oauth/access_token" => "oauth2/authentication#access_token", :via => [:get, :post]
4
+ match "/oauth/oauth_token" => "oauth2/authentication#access_token", :via => [:get, :post]
4
5
  get "/oauth/user" => "oauth2/users#show"
5
6
  end
@@ -20,6 +20,6 @@ module Vidibus
20
20
  class InvalidTokenError < Oauth2ServerError; end
21
21
  class ExpiredTokenError < Oauth2ServerError; end
22
22
 
23
- FLOWS = %w[web_server]
23
+ FLOWS = %w[web_server code authorization_code]
24
24
  end
25
25
  end
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{vidibus-oauth2_server}
8
- s.version = "0.0.3"
8
+ s.version = "0.0.4"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Andre Pankratz"]
12
- s.date = %q{2011-02-23}
12
+ s.date = %q{2011-05-04}
13
13
  s.description = %q{OAuth2 server for Rails 3 with Mongoid.}
14
14
  s.email = %q{andre@vidibus.com}
15
15
  s.extra_rdoc_files = [
@@ -19,7 +19,6 @@ Gem::Specification.new do |s|
19
19
  s.files = [
20
20
  ".document",
21
21
  "Gemfile",
22
- "Gemfile.lock",
23
22
  "LICENSE",
24
23
  "README.rdoc",
25
24
  "Rakefile",
@@ -28,6 +27,7 @@ Gem::Specification.new do |s|
28
27
  "app/controllers/oauth2/users_controller.rb",
29
28
  "app/controllers/oauth2_controller.rb",
30
29
  "app/models/oauth2_token.rb",
30
+ "config/locales/de.yml",
31
31
  "config/locales/en.yml",
32
32
  "config/routes.rb",
33
33
  "lib/vidibus-oauth2_server.rb",
@@ -38,16 +38,15 @@ Gem::Specification.new do |s|
38
38
  ]
39
39
  s.homepage = %q{http://github.com/vidibus/vidibus-oauth2_server}
40
40
  s.require_paths = ["lib"]
41
- s.rubygems_version = %q{1.3.7}
41
+ s.rubygems_version = %q{1.6.2}
42
42
  s.summary = %q{OAuth2 server for Rails 3 with Mongoid.}
43
43
 
44
44
  if s.respond_to? :specification_version then
45
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
46
45
  s.specification_version = 3
47
46
 
48
47
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
49
48
  s.add_runtime_dependency(%q<rails>, ["~> 3.0.0"])
50
- s.add_runtime_dependency(%q<mongoid>, ["~> 2.0.0.beta.20"])
49
+ s.add_runtime_dependency(%q<mongoid>, ["~> 2.0.0"])
51
50
  s.add_runtime_dependency(%q<vidibus-core_extensions>, ["~> 0.3.14"])
52
51
  s.add_runtime_dependency(%q<vidibus-uuid>, [">= 0"])
53
52
  s.add_development_dependency(%q<jeweler>, [">= 0"])
@@ -58,7 +57,7 @@ Gem::Specification.new do |s|
58
57
  s.add_development_dependency(%q<webmock>, [">= 0"])
59
58
  else
60
59
  s.add_dependency(%q<rails>, ["~> 3.0.0"])
61
- s.add_dependency(%q<mongoid>, ["~> 2.0.0.beta.20"])
60
+ s.add_dependency(%q<mongoid>, ["~> 2.0.0"])
62
61
  s.add_dependency(%q<vidibus-core_extensions>, ["~> 0.3.14"])
63
62
  s.add_dependency(%q<vidibus-uuid>, [">= 0"])
64
63
  s.add_dependency(%q<jeweler>, [">= 0"])
@@ -70,7 +69,7 @@ Gem::Specification.new do |s|
70
69
  end
71
70
  else
72
71
  s.add_dependency(%q<rails>, ["~> 3.0.0"])
73
- s.add_dependency(%q<mongoid>, ["~> 2.0.0.beta.20"])
72
+ s.add_dependency(%q<mongoid>, ["~> 2.0.0"])
74
73
  s.add_dependency(%q<vidibus-core_extensions>, ["~> 0.3.14"])
75
74
  s.add_dependency(%q<vidibus-uuid>, [">= 0"])
76
75
  s.add_dependency(%q<jeweler>, [">= 0"])
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vidibus-oauth2_server
3
3
  version: !ruby/object:Gem::Version
4
- hash: 25
5
- prerelease: false
4
+ hash: 23
5
+ prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 3
10
- version: 0.0.3
9
+ - 4
10
+ version: 0.0.4
11
11
  platform: ruby
12
12
  authors:
13
13
  - Andre Pankratz
@@ -15,14 +15,13 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-02-23 00:00:00 +01:00
18
+ date: 2011-05-04 00:00:00 +02:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
- type: :runtime
23
22
  prerelease: false
24
- name: rails
25
- version_requirements: &id001 !ruby/object:Gem::Requirement
23
+ type: :runtime
24
+ requirement: &id001 !ruby/object:Gem::Requirement
26
25
  none: false
27
26
  requirements:
28
27
  - - ~>
@@ -33,30 +32,28 @@ dependencies:
33
32
  - 0
34
33
  - 0
35
34
  version: 3.0.0
36
- requirement: *id001
35
+ name: rails
36
+ version_requirements: *id001
37
37
  - !ruby/object:Gem::Dependency
38
- type: :runtime
39
38
  prerelease: false
40
- name: mongoid
41
- version_requirements: &id002 !ruby/object:Gem::Requirement
39
+ type: :runtime
40
+ requirement: &id002 !ruby/object:Gem::Requirement
42
41
  none: false
43
42
  requirements:
44
43
  - - ~>
45
44
  - !ruby/object:Gem::Version
46
- hash: 62196427
45
+ hash: 15
47
46
  segments:
48
47
  - 2
49
48
  - 0
50
49
  - 0
51
- - beta
52
- - 20
53
- version: 2.0.0.beta.20
54
- requirement: *id002
50
+ version: 2.0.0
51
+ name: mongoid
52
+ version_requirements: *id002
55
53
  - !ruby/object:Gem::Dependency
56
- type: :runtime
57
54
  prerelease: false
58
- name: vidibus-core_extensions
59
- version_requirements: &id003 !ruby/object:Gem::Requirement
55
+ type: :runtime
56
+ requirement: &id003 !ruby/object:Gem::Requirement
60
57
  none: false
61
58
  requirements:
62
59
  - - ~>
@@ -67,12 +64,12 @@ dependencies:
67
64
  - 3
68
65
  - 14
69
66
  version: 0.3.14
70
- requirement: *id003
67
+ name: vidibus-core_extensions
68
+ version_requirements: *id003
71
69
  - !ruby/object:Gem::Dependency
72
- type: :runtime
73
70
  prerelease: false
74
- name: vidibus-uuid
75
- version_requirements: &id004 !ruby/object:Gem::Requirement
71
+ type: :runtime
72
+ requirement: &id004 !ruby/object:Gem::Requirement
76
73
  none: false
77
74
  requirements:
78
75
  - - ">="
@@ -81,12 +78,12 @@ dependencies:
81
78
  segments:
82
79
  - 0
83
80
  version: "0"
84
- requirement: *id004
81
+ name: vidibus-uuid
82
+ version_requirements: *id004
85
83
  - !ruby/object:Gem::Dependency
86
- type: :development
87
84
  prerelease: false
88
- name: jeweler
89
- version_requirements: &id005 !ruby/object:Gem::Requirement
85
+ type: :development
86
+ requirement: &id005 !ruby/object:Gem::Requirement
90
87
  none: false
91
88
  requirements:
92
89
  - - ">="
@@ -95,12 +92,12 @@ dependencies:
95
92
  segments:
96
93
  - 0
97
94
  version: "0"
98
- requirement: *id005
95
+ name: jeweler
96
+ version_requirements: *id005
99
97
  - !ruby/object:Gem::Dependency
100
- type: :development
101
98
  prerelease: false
102
- name: rake
103
- version_requirements: &id006 !ruby/object:Gem::Requirement
99
+ type: :development
100
+ requirement: &id006 !ruby/object:Gem::Requirement
104
101
  none: false
105
102
  requirements:
106
103
  - - ">="
@@ -109,12 +106,12 @@ dependencies:
109
106
  segments:
110
107
  - 0
111
108
  version: "0"
112
- requirement: *id006
109
+ name: rake
110
+ version_requirements: *id006
113
111
  - !ruby/object:Gem::Dependency
114
- type: :development
115
112
  prerelease: false
116
- name: rspec
117
- version_requirements: &id007 !ruby/object:Gem::Requirement
113
+ type: :development
114
+ requirement: &id007 !ruby/object:Gem::Requirement
118
115
  none: false
119
116
  requirements:
120
117
  - - ~>
@@ -127,12 +124,12 @@ dependencies:
127
124
  - beta
128
125
  - 20
129
126
  version: 2.0.0.beta.20
130
- requirement: *id007
127
+ name: rspec
128
+ version_requirements: *id007
131
129
  - !ruby/object:Gem::Dependency
132
- type: :development
133
130
  prerelease: false
134
- name: rr
135
- version_requirements: &id008 !ruby/object:Gem::Requirement
131
+ type: :development
132
+ requirement: &id008 !ruby/object:Gem::Requirement
136
133
  none: false
137
134
  requirements:
138
135
  - - ">="
@@ -141,12 +138,12 @@ dependencies:
141
138
  segments:
142
139
  - 0
143
140
  version: "0"
144
- requirement: *id008
141
+ name: rr
142
+ version_requirements: *id008
145
143
  - !ruby/object:Gem::Dependency
146
- type: :development
147
144
  prerelease: false
148
- name: relevance-rcov
149
- version_requirements: &id009 !ruby/object:Gem::Requirement
145
+ type: :development
146
+ requirement: &id009 !ruby/object:Gem::Requirement
150
147
  none: false
151
148
  requirements:
152
149
  - - ">="
@@ -155,12 +152,12 @@ dependencies:
155
152
  segments:
156
153
  - 0
157
154
  version: "0"
158
- requirement: *id009
155
+ name: relevance-rcov
156
+ version_requirements: *id009
159
157
  - !ruby/object:Gem::Dependency
160
- type: :development
161
158
  prerelease: false
162
- name: webmock
163
- version_requirements: &id010 !ruby/object:Gem::Requirement
159
+ type: :development
160
+ requirement: &id010 !ruby/object:Gem::Requirement
164
161
  none: false
165
162
  requirements:
166
163
  - - ">="
@@ -169,7 +166,8 @@ dependencies:
169
166
  segments:
170
167
  - 0
171
168
  version: "0"
172
- requirement: *id010
169
+ name: webmock
170
+ version_requirements: *id010
173
171
  description: OAuth2 server for Rails 3 with Mongoid.
174
172
  email: andre@vidibus.com
175
173
  executables: []
@@ -182,7 +180,6 @@ extra_rdoc_files:
182
180
  files:
183
181
  - .document
184
182
  - Gemfile
185
- - Gemfile.lock
186
183
  - LICENSE
187
184
  - README.rdoc
188
185
  - Rakefile
@@ -191,6 +188,7 @@ files:
191
188
  - app/controllers/oauth2/users_controller.rb
192
189
  - app/controllers/oauth2_controller.rb
193
190
  - app/models/oauth2_token.rb
191
+ - config/locales/de.yml
194
192
  - config/locales/en.yml
195
193
  - config/routes.rb
196
194
  - lib/vidibus-oauth2_server.rb
@@ -228,7 +226,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
228
226
  requirements: []
229
227
 
230
228
  rubyforge_project:
231
- rubygems_version: 1.3.7
229
+ rubygems_version: 1.6.2
232
230
  signing_key:
233
231
  specification_version: 3
234
232
  summary: OAuth2 server for Rails 3 with Mongoid.
data/Gemfile.lock DELETED
@@ -1,123 +0,0 @@
1
- GEM
2
- remote: http://rubygems.org/
3
- specs:
4
- abstract (1.0.0)
5
- actionmailer (3.0.0)
6
- actionpack (= 3.0.0)
7
- mail (~> 2.2.5)
8
- actionpack (3.0.0)
9
- activemodel (= 3.0.0)
10
- activesupport (= 3.0.0)
11
- builder (~> 2.1.2)
12
- erubis (~> 2.6.6)
13
- i18n (~> 0.4.1)
14
- rack (~> 1.2.1)
15
- rack-mount (~> 0.6.12)
16
- rack-test (~> 0.5.4)
17
- tzinfo (~> 0.3.23)
18
- activemodel (3.0.0)
19
- activesupport (= 3.0.0)
20
- builder (~> 2.1.2)
21
- i18n (~> 0.4.1)
22
- activerecord (3.0.0)
23
- activemodel (= 3.0.0)
24
- activesupport (= 3.0.0)
25
- arel (~> 1.0.0)
26
- tzinfo (~> 0.3.23)
27
- activeresource (3.0.0)
28
- activemodel (= 3.0.0)
29
- activesupport (= 3.0.0)
30
- activesupport (3.0.0)
31
- addressable (2.2.1)
32
- arel (1.0.1)
33
- activesupport (~> 3.0.0)
34
- bson (1.0.9)
35
- builder (2.1.2)
36
- crack (0.1.8)
37
- diff-lcs (1.1.2)
38
- erubis (2.6.6)
39
- abstract (>= 1.0.0)
40
- gemcutter (0.6.1)
41
- git (1.2.5)
42
- i18n (0.4.1)
43
- jeweler (1.4.0)
44
- gemcutter (>= 0.1.0)
45
- git (>= 1.2.5)
46
- rubyforge (>= 2.0.0)
47
- json_pure (1.4.6)
48
- macaddr (1.0.0)
49
- mail (2.2.6.1)
50
- activesupport (>= 2.3.6)
51
- mime-types
52
- treetop (>= 1.4.5)
53
- mime-types (1.16)
54
- mongo (1.0.9)
55
- bson (>= 1.0.5)
56
- mongoid (2.0.0.beta.19)
57
- activemodel (~> 3.0)
58
- mongo (= 1.0.9)
59
- tzinfo (~> 0.3.22)
60
- will_paginate (~> 3.0.pre)
61
- polyglot (0.3.1)
62
- rack (1.2.1)
63
- rack-mount (0.6.13)
64
- rack (>= 1.0.0)
65
- rack-test (0.5.6)
66
- rack (>= 1.0)
67
- rails (3.0.0)
68
- actionmailer (= 3.0.0)
69
- actionpack (= 3.0.0)
70
- activerecord (= 3.0.0)
71
- activeresource (= 3.0.0)
72
- activesupport (= 3.0.0)
73
- bundler (~> 1.0.0)
74
- railties (= 3.0.0)
75
- railties (3.0.0)
76
- actionpack (= 3.0.0)
77
- activesupport (= 3.0.0)
78
- rake (>= 0.8.4)
79
- thor (~> 0.14.0)
80
- rake (0.8.7)
81
- relevance-rcov (0.9.2.1)
82
- rr (1.0.0)
83
- rspec (2.0.0.beta.22)
84
- rspec-core (= 2.0.0.beta.22)
85
- rspec-expectations (= 2.0.0.beta.22)
86
- rspec-mocks (= 2.0.0.beta.22)
87
- rspec-core (2.0.0.beta.22)
88
- rspec-expectations (2.0.0.beta.22)
89
- diff-lcs (>= 1.1.2)
90
- rspec-mocks (2.0.0.beta.22)
91
- rspec-core (= 2.0.0.beta.22)
92
- rspec-expectations (= 2.0.0.beta.22)
93
- rubyforge (2.0.4)
94
- json_pure (>= 1.1.7)
95
- thor (0.14.2)
96
- treetop (1.4.8)
97
- polyglot (>= 0.3.1)
98
- tzinfo (0.3.23)
99
- uuid (2.3.1)
100
- macaddr (~> 1.0)
101
- vidibus-core_extensions (0.3.14)
102
- vidibus-uuid (0.3.8)
103
- mongoid (~> 2.0.0.beta.20)
104
- uuid (~> 2.3.1)
105
- webmock (1.3.5)
106
- addressable (>= 2.1.1)
107
- crack (>= 0.1.7)
108
- will_paginate (3.0.pre2)
109
-
110
- PLATFORMS
111
- ruby
112
-
113
- DEPENDENCIES
114
- jeweler
115
- mongoid (~> 2.0.0.beta.20)
116
- rails (~> 3.0.0)
117
- rake
118
- relevance-rcov
119
- rr
120
- rspec (~> 2.0.0.beta.20)
121
- vidibus-core_extensions
122
- vidibus-uuid
123
- webmock