rapidash 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a317197b608c00d1116ad4be65b62238b0a98034
4
- data.tar.gz: cdc69d6da7a4e33c58d83d0fc89e1b0a70cfb72c
3
+ metadata.gz: f0efe6c53b4dda6119666b7b280aa8ab1315640a
4
+ data.tar.gz: 229e2f7d0836fc06ae2f8656d23fe30e7713f0b2
5
5
  SHA512:
6
- metadata.gz: c85000a1ed1351fadcfc1567a4469d54c4920a23eb8e6aa6e60de579b2b6abdd4867179eb7bbc2c844c6c9d745d8ec95ef4114d6c05312c4abdb4e33a3a06751
7
- data.tar.gz: 71ef9f5d5e1669de47f6681a86c9c541b7712d9cc29b57add9cc4cd86ac15acbb73f20fc0c972881bfebbd38088dc86c92e720f9476781c84cbe2766d1ed94cc
6
+ metadata.gz: 7efc8162ed268a6512bcaf02fb3529a2df0a0ab3f17448740aefa98454023f56ae73f63475fbf81c37daa0efb74c9b290c77afe6e4bf183c1ca7994a5e465c4c
7
+ data.tar.gz: 332545525ee072dc890f708eb58ef9b251759d05bc41e8e485e7184258044b6cbf1423425b63cb51391e5e0971018cb0f4f38e40ead5aa32d78417ec33047d19
@@ -24,20 +24,24 @@ module Rapidash
24
24
  options = names.extract_options!
25
25
 
26
26
  mod = self.to_s.split("::")[0...-1]
27
- mod = mod.empty? ? Object : Object.const_get(mod.join("::"))
27
+ mod = mod.empty? ? Object : mod.join("::").constantize
28
28
 
29
29
  names.each do |name|
30
30
  if options[:class_name]
31
- class_name = options[:class_name]
31
+ class_name = options[:class_name].to_s
32
32
  else
33
33
  class_name = name.to_s.camelcase.singularize
34
+
35
+ unless mod == Object
36
+ class_name = "#{mod}::#{class_name}"
37
+ end
34
38
  end
35
39
 
36
40
  begin
37
- klass = "#{mod}::#{class_name}".constantize
41
+ klass = class_name.constantize
38
42
  rescue NameError
39
43
  Kernel.warn "[DEPRECATED] - RAPIDASH WARNING using #{class_name.pluralize} instead of #{class_name.singularize} - please either use `#{class_name.singularize}` or set the class name with `resource #{name}, :class_name => #{class_name.pluralize}` implicit plural naming will be deprecated in Rapidash 1.0"
40
- klass = "#{mod}::#{class_name}".pluralize.constantize
44
+ klass = class_name.pluralize.constantize
41
45
  end
42
46
 
43
47
  define_method(name) do |*args|
@@ -1,3 +1,3 @@
1
1
  module Rapidash
2
- VERSION = "0.2.0"
2
+ VERSION = "0.2.1"
3
3
  end
@@ -120,7 +120,7 @@ describe Rapidash::Resourceable do
120
120
  end
121
121
 
122
122
  it "should not fail when presented with a multi-word resource" do
123
- expect {
123
+ expect {
124
124
  class ClientTester
125
125
  resource :admin_users
126
126
  end
@@ -205,9 +205,14 @@ describe Rapidash::Resourceable do
205
205
  end
206
206
  end
207
207
 
208
- module Its
209
- module A
210
- class DeepResource
208
+ module SomeModule
209
+ module SomeSubModule
210
+ class User
211
+ def initialize(*args)
212
+ end
213
+ end
214
+
215
+ class Post
211
216
  def initialize(*args)
212
217
  end
213
218
  end
@@ -218,7 +223,8 @@ describe Rapidash::Resourceable do
218
223
  include Rapidash::Resourceable
219
224
  resource :users, :class_name => "Facebook::User"
220
225
  resource :posts, :class_name => Facebook::Posts
221
- resource :deep_resources, :class_name => Its::A::DeepResource
226
+ resource :deep_users, :class_name => "SomeModule::SomeSubModule::User"
227
+ resource :deep_posts, :class_name => SomeModule::SomeSubModule::Post
222
228
  end
223
229
 
224
230
  it "should find user in another module" do
@@ -229,8 +235,25 @@ describe Rapidash::Resourceable do
229
235
  ModuleTester.new.posts.class.should eql(Facebook::Posts)
230
236
  end
231
237
 
232
- it "should find deep_resource in a nested module" do
233
- ModuleTester.new.deep_resources.class.should eql(Its::A::DeepResource)
238
+ it "should find deep_users in a nested module" do
239
+ ModuleTester.new.deep_users.class.should eql(SomeModule::SomeSubModule::User)
240
+ end
241
+
242
+ it "should find deep_posts in a nested class name" do
243
+ ModuleTester.new.deep_posts.class.should eql(SomeModule::SomeSubModule::Post)
234
244
  end
245
+
246
+ it "should not raise a wrong constant NameError" do
247
+ expect {
248
+ module Deep
249
+ module ModuleTester
250
+ class MyResource < Rapidash::Base
251
+ resource :users, :class_name => "Facebook::User"
252
+ end
253
+ end
254
+ end
255
+ }.to_not raise_error(NameError)
256
+ end
257
+
235
258
  end
236
259
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rapidash
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gary 'Gazler' Rennie
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-03-30 00:00:00.000000000 Z
11
+ date: 2013-05-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler