mobile_rails 0.0.3 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
- ActionController::Base.send(:include, MobileRails::ControllerAdditions::InstanceMethods)
35
+ if defined? ActionController
36
+ ActionController::Base.send(:extend, MobileRails::ControllerAdditions::ClassMethods)
37
+ end
37
38
 
@@ -1,3 +1,3 @@
1
1
  module MobileRails
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.5"
3
3
  end
@@ -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
@@ -1 +1,2 @@
1
- require 'mobile_rails'
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.3
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-15 00:00:00.000000000Z
12
+ date: 2011-12-20 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
16
- requirement: &70209047366720 !ruby/object:Gem::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: *70209047366720
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