mobile_rails 0.0.3 → 0.0.5
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.
|
@@ -22,6 +22,7 @@ module MobileRails
|
|
|
22
22
|
end
|
|
23
23
|
module ClassMethods
|
|
24
24
|
def has_mobile_rails
|
|
25
|
+
self.send(:include, MobileRails::ControllerAdditions::InstanceMethods)
|
|
25
26
|
before_filter :set_mobile_request
|
|
26
27
|
|
|
27
28
|
helper_method :mobile?
|
|
@@ -31,7 +32,7 @@ module MobileRails
|
|
|
31
32
|
end
|
|
32
33
|
end
|
|
33
34
|
|
|
34
|
-
|
|
35
|
-
ActionController::Base.send(:extend, MobileRails::ControllerAdditions::ClassMethods)
|
|
36
|
-
|
|
35
|
+
if defined? ActionController
|
|
36
|
+
ActionController::Base.send(:extend, MobileRails::ControllerAdditions::ClassMethods)
|
|
37
|
+
end
|
|
37
38
|
|
data/lib/mobile_rails/version.rb
CHANGED
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
require "spec_helper"
|
|
2
|
+
|
|
3
|
+
describe MobileRails::ControllerAdditions::InstanceMethods do
|
|
4
|
+
let(:controller_class) { Class.new }
|
|
5
|
+
let(:controller) { controller_class.new }
|
|
6
|
+
let(:session) { Hash.new }
|
|
7
|
+
let(:request) { Object.new }
|
|
8
|
+
|
|
9
|
+
before(:each) do
|
|
10
|
+
controller_class.send(:include, MobileRails::ControllerAdditions::InstanceMethods)
|
|
11
|
+
controller.stub(:session) { session }
|
|
12
|
+
controller.stub(:request) { request }
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
describe ".set_mobile_request" do
|
|
16
|
+
it "should not mobile request if having a web version session" do
|
|
17
|
+
request.stub(:user_agent).and_return("iphone")
|
|
18
|
+
session[:mobile_session] = 0
|
|
19
|
+
controller.request.should_not_receive(:format=).with(:mobile)
|
|
20
|
+
controller.set_mobile_request
|
|
21
|
+
session[:mobile_session].should == 0
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
it "should set mobile request as default for a mobile devise" do
|
|
25
|
+
request.stub(:user_agent).and_return("iphone")
|
|
26
|
+
controller.request.should_receive(:format=).with(:mobile)
|
|
27
|
+
controller.set_mobile_request
|
|
28
|
+
session[:mobile_session].should == 1
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
it "should not set mobile request for a non mobile devise" do
|
|
32
|
+
request.stub(:user_agent).and_return("mozilla")
|
|
33
|
+
controller.request.should_not_receive(:format=).with(:mobile)
|
|
34
|
+
controller.set_mobile_request
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
describe ".mobile_session?" do
|
|
39
|
+
it "should return true if session is set to mobile" do
|
|
40
|
+
session[:mobile_session] = 1
|
|
41
|
+
controller.mobile_session?.should be_true
|
|
42
|
+
end
|
|
43
|
+
it "should return false if session is not set to mobile" do
|
|
44
|
+
session[:mobile_session] = 0
|
|
45
|
+
controller.mobile_session?.should be_false
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
describe "mobile?" do
|
|
50
|
+
it "should return true for mobile devise" do
|
|
51
|
+
request.stub(:user_agent).and_return("iphone")
|
|
52
|
+
controller.mobile?.should be_true
|
|
53
|
+
end
|
|
54
|
+
it "should return false for non mobile devise" do
|
|
55
|
+
request.stub(:user_agent).and_return("iphone")
|
|
56
|
+
controller.mobile?.should be_true
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
describe MobileRails::ControllerAdditions::ClassMethods do
|
|
61
|
+
let(:controller_class) { Class.new }
|
|
62
|
+
let(:controller) { controller_class.new }
|
|
63
|
+
|
|
64
|
+
describe "#has_mobile_rails" do
|
|
65
|
+
it "should set up controller" do
|
|
66
|
+
controller_class.send(:extend, MobileRails::ControllerAdditions::ClassMethods)
|
|
67
|
+
controller_class.should_receive(:before_filter).with(:set_mobile_request)
|
|
68
|
+
controller_class.should_receive(:helper_method).with :mobile?
|
|
69
|
+
controller_class.should_receive(:layout).with(:mobile_layout)
|
|
70
|
+
controller_class.should_receive(:include).with(MobileRails::ControllerAdditions::InstanceMethods)
|
|
71
|
+
controller_class.has_mobile_rails
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
end
|
data/spec/spec_helper.rb
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
require '
|
|
1
|
+
require 'rubygems'
|
|
2
|
+
require 'mobile_rails'
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: mobile_rails
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.5
|
|
5
5
|
prerelease:
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
@@ -9,11 +9,11 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2011-12-
|
|
12
|
+
date: 2011-12-20 00:00:00.000000000Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: rspec
|
|
16
|
-
requirement: &
|
|
16
|
+
requirement: &70100599701060 !ruby/object:Gem::Requirement
|
|
17
17
|
none: false
|
|
18
18
|
requirements:
|
|
19
19
|
- - ! '>='
|
|
@@ -21,7 +21,7 @@ dependencies:
|
|
|
21
21
|
version: '0'
|
|
22
22
|
type: :development
|
|
23
23
|
prerelease: false
|
|
24
|
-
version_requirements: *
|
|
24
|
+
version_requirements: *70100599701060
|
|
25
25
|
description: Gem for easy creation of mobile enabled rails app.
|
|
26
26
|
email:
|
|
27
27
|
- zyinghai@gmail.com
|
|
@@ -42,6 +42,7 @@ files:
|
|
|
42
42
|
- lib/mobile_rails/controller_additions.rb
|
|
43
43
|
- lib/mobile_rails/version.rb
|
|
44
44
|
- mobile_rails.gemspec
|
|
45
|
+
- spec/mobile_rails/controller_additions_spec.rb
|
|
45
46
|
- spec/spec_helper.rb
|
|
46
47
|
homepage: https://github.com/hisea/mobile_rails
|
|
47
48
|
licenses: []
|
|
@@ -68,4 +69,5 @@ signing_key:
|
|
|
68
69
|
specification_version: 3
|
|
69
70
|
summary: Gem for easy creation of mobile enabled rails app.
|
|
70
71
|
test_files:
|
|
72
|
+
- spec/mobile_rails/controller_additions_spec.rb
|
|
71
73
|
- spec/spec_helper.rb
|