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
- 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