jpmobile 0.1.0.pre → 0.1.0.pre.2

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.
data/VERSION.yml CHANGED
@@ -2,4 +2,4 @@
2
2
  :major: 0
3
3
  :minor: 1
4
4
  :patch: 0
5
- :build: pre
5
+ :build: pre.2
data/jpmobile.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{jpmobile}
8
- s.version = "0.1.0.pre"
8
+ s.version = "0.1.0.pre.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new("> 1.3.1") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Yoji Shidara", "Shin-ichiro OGAWA"]
12
- s.date = %q{2010-07-28}
12
+ s.date = %q{2010-07-29}
13
13
  s.description = %q{A Rails plugin for Japanese mobile-phones}
14
14
  s.email = %q{dara@shidara.net}
15
15
  s.extra_rdoc_files = [
@@ -1,15 +1,16 @@
1
+ # -*- coding: utf-8 -*-
1
2
  ActiveSupport.on_load(:action_controller) do
2
- # -*- coding: utf-8 -*-
3
3
  require 'jpmobile/docomo_guid'
4
4
  require 'jpmobile/filter'
5
5
  require 'jpmobile/helpers'
6
6
  require 'jpmobile/hook_action_controller'
7
7
  require 'jpmobile/hook_action_view'
8
8
  require 'jpmobile/trans_sid'
9
+ end
9
10
 
11
+ ActiveSupport.on_load(:before_configuration) do
10
12
  # MobileCarrierのみデフォルトで有効
11
13
  ::Rails.application.middleware.insert_before('ActionDispatch::ParamsParser', Jpmobile::Rack::MobileCarrier)
12
-
13
14
  module Rails
14
15
  class Application
15
16
  class Configuration
@@ -6,14 +6,15 @@ module ParamsOverCookie
6
6
  def self.included(base)
7
7
  base.class_eval do
8
8
  # cookie よりも params を先に見るパッチ
9
- def load_session_with_jpmobile(env)
9
+ def extract_session_id_with_jpmobile(env)
10
10
  request = Rack::Request.new(env)
11
- sid = request.cookies[@key]
12
- sid ||= request.params[@key] unless @cookie_only
13
- sid, session = get_session(env, sid)
14
- [sid, session]
11
+ if request.params[@key] and !@cookie_only
12
+ sid = request.params[@key] unless @cookie_only
13
+ end
14
+ sid ||= request.cookies[@key]
15
+ sid
15
16
  end
16
- alias_method_chain :load_session, :jpmobile
17
+ alias_method_chain :extract_session_id, :jpmobile
17
18
  end
18
19
  end
19
20
  end
@@ -59,21 +60,11 @@ module ActionController
59
60
  class Base #:nodoc:
60
61
  class_inheritable_accessor :trans_sid_mode
61
62
 
62
- def transit_sid_mode(*args)
63
- STDERR.puts "Method transit_sid is now deprecated. Use trans_sid instead."
64
- trans_sid_mode(*args)
65
- end
66
-
67
63
  class << self
68
64
  def trans_sid(mode = :mobile)
69
65
  include Jpmobile::TransSid
70
66
  self.trans_sid_mode = mode
71
67
  end
72
-
73
- def transit_sid(*args)
74
- STDERR.puts "Method transit_sid is now deprecated. Use trans_sid instead."
75
- trans_sid(*args)
76
- end
77
68
  end
78
69
 
79
70
  private
@@ -62,13 +62,6 @@ namespace :test do
62
62
  FileUtils.cp_r(file, rails_root)
63
63
  end
64
64
 
65
- # for 2.3.2
66
- if rails_version == "2.3.2"
67
- FileList["test/rails/2.3.2/*"].each do |file|
68
- FileUtils.cp_r(file, rails_root)
69
- end
70
- end
71
-
72
65
  # for cookie_only option
73
66
  config_path = File.join(rails_root, 'config', 'initializers', 'session_store.rb')
74
67
  File.open(config_path, 'w') do |file|
@@ -1,6 +1,6 @@
1
1
  source 'http://rubygems.org'
2
2
 
3
- gem 'rails', '3.0.0.beta4'
3
+ gem 'rails', '3.0.0.rc'
4
4
 
5
5
  # Bundle edge Rails instead:
6
6
  # gem 'rails', :git => 'git://github.com/rails/rails.git'
@@ -17,7 +17,7 @@ shared_examples_for "trans_sid が起動しないとき" do
17
17
  it "で form の自動書き換えが行われない" do
18
18
  res = get_with_session(@controller, "form", @user_agent)
19
19
 
20
- res.response.body.should =~ /<form action=\"\/.+?\/form\"/
20
+ res.response.body.should =~ /<form accept-charset="#{@charset}" action=\"\/.+?\/form\"/
21
21
  end
22
22
  it "で redirect の自動書き換えが行われない" do
23
23
  res = get_with_session(@controller, "redirect", @user_agent)
@@ -35,7 +35,7 @@ shared_examples_for "trans_sid が起動するとき" do
35
35
  it "で form の自動書き換えが行われる" do
36
36
  res = get_with_session(@controller, "form", @user_agent)
37
37
 
38
- res.response.body.should =~ /<form action=\"\/.+?\/form\?_session_id=[a-zA-Z0-9]{32}\"/
38
+ res.response.body.should =~ /<form accept-charset="#{@charset}" action=\"\/.+?\/form\?_session_id=[a-zA-Z0-9]{32}\"/
39
39
  end
40
40
  it "で redirect の自動書き換えが行われる" do
41
41
  res = get_with_session(@controller, "redirect", @user_agent)
@@ -48,6 +48,7 @@ describe TransSidBaseController, "という trans_sid が有効になってい
48
48
  before(:each) do
49
49
  @controller = "trans_sid_base"
50
50
  @user_agent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 ( .NET CLR 3.5.30729)"
51
+ @charset = "UTF-8"
51
52
  end
52
53
 
53
54
  it "の trans_sid_mode は nil" do
@@ -62,6 +63,7 @@ describe TransSidNoneController, "という trans_sid :none が指定されて
62
63
  before(:each) do
63
64
  @controller = "trans_sid_none"
64
65
  @user_agent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 ( .NET CLR 3.5.30729)"
66
+ @charset = "UTF-8"
65
67
  end
66
68
 
67
69
  it "の trans_sid_mode は :none" do
@@ -76,6 +78,7 @@ describe TransSidAlwaysController, "という trans_sid :always が指定され
76
78
  before(:each) do
77
79
  @controller = "trans_sid_always"
78
80
  @user_agent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 ( .NET CLR 3.5.30729)"
81
+ @charset = "UTF-8"
79
82
  end
80
83
 
81
84
  it "の trans_sid_mode は :always" do
@@ -90,6 +93,7 @@ describe TransSidMobileController, "という trans_sid :mobile が指定され
90
93
  before(:each) do
91
94
  @controller = "trans_sid_mobile"
92
95
  @user_agent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 ( .NET CLR 3.5.30729)"
96
+ @charset = "UTF-8"
93
97
  end
94
98
 
95
99
  it "の trans_sid_mode は :mobile" do
@@ -99,44 +103,47 @@ describe TransSidMobileController, "という trans_sid :mobile が指定され
99
103
  end
100
104
  end
101
105
 
102
- def describe_mobile_with_ua(user_agent, &block)
106
+ def describe_mobile_with_ua(user_agent, charset, &block)
103
107
  describe("trans_sid :mobile が指定されているコントローラに #{user_agent} からアクセスしたとき") do
104
108
  before(:each) do
105
109
  @controller = "trans_sid_mobile"
106
110
  @user_agent = user_agent
111
+ @charset = charset
107
112
  end
108
113
 
109
114
  instance_eval(&block)
110
115
  end
111
116
  end
112
117
 
113
- # NOTE: Rails 3.0b4 では session_id が自動的に生成されるようなので、強制的に書き換わってしまう。
114
- # describe TransSidAlwaysAndSessionOffController, "という trans_sid :always が指定されていて session がロードされていないとき" do
115
- # before(:each) do
116
- # @controller = "trans_sid_always_and_session_off"
117
- # @user_agent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 ( .NET CLR 3.5.30729)"
118
- # end
118
+ describe TransSidAlwaysAndSessionOffController, "という trans_sid :always が指定されていて session がロードされていないとき" do
119
+ before(:each) do
120
+ @controller = "trans_sid_always_and_session_off"
121
+ @user_agent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 ( .NET CLR 3.5.30729)"
122
+ @charset = "UTF-8"
123
+ end
119
124
 
120
- # it "の trans_sid_mode は :always" do
121
- # res = get_with_session(@controller, "link", @user_agent)
125
+ it "の trans_sid_mode は :always" do
126
+ res = get_with_session(@controller, "link", @user_agent)
122
127
 
123
- # res.controller.trans_sid_mode.should == :always
124
- # end
125
- # it_should_behave_like "trans_sid が起動しないとき"
126
- # end
128
+ res.controller.trans_sid_mode.should == :always
129
+ end
130
+ it_should_behave_like "trans_sid が起動しないとき"
131
+ end
127
132
 
128
- describe_mobile_with_ua "DoCoMo/2.0 SH902i(c100;TB;W24H12)" do
133
+ # NOTE: 3.0.0RC では accept-charset は UTF-8 で埋め込まれるので保留
134
+ describe_mobile_with_ua "DoCoMo/2.0 SH902i(c100;TB;W24H12)", "UTF-8" do
129
135
  it_should_behave_like "trans_sid が起動するとき"
130
136
  end
131
137
 
132
- describe_mobile_with_ua "KDDI-CA32 UP.Browser/6.2.0.7.3.129 (GUI) MMP/2.0" do
138
+ # NOTE: 3.0.0RC では accept-charset は UTF-8 で埋め込まれるので保留
139
+ describe_mobile_with_ua "KDDI-CA32 UP.Browser/6.2.0.7.3.129 (GUI) MMP/2.0", "UTF-8" do
133
140
  it_should_behave_like "trans_sid が起動しないとき"
134
141
  end
135
142
 
136
- describe_mobile_with_ua "SoftBank/1.0/910T/TJ001/SN000000000000000 Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1" do
143
+ describe_mobile_with_ua "SoftBank/1.0/910T/TJ001/SN000000000000000 Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1", "UTF-8" do
137
144
  it_should_behave_like "trans_sid が起動しないとき"
138
145
  end
139
146
 
140
- describe_mobile_with_ua "Vodafone/1.0/V903T/TJ001 Browser/VF-Browser/1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 Ext-J-Profile/JSCL-1.2.2 Ext-V-Profile/VSCL-2.0.0" do
147
+ describe_mobile_with_ua "Vodafone/1.0/V903T/TJ001 Browser/VF-Browser/1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 Ext-J-Profile/JSCL-1.2.2 Ext-V-Profile/VSCL-2.0.0", "UTF-8" do
141
148
  it_should_behave_like "trans_sid が起動しないとき"
142
149
  end
metadata CHANGED
@@ -7,7 +7,8 @@ version: !ruby/object:Gem::Version
7
7
  - 1
8
8
  - 0
9
9
  - pre
10
- version: 0.1.0.pre
10
+ - 2
11
+ version: 0.1.0.pre.2
11
12
  platform: ruby
12
13
  authors:
13
14
  - Yoji Shidara
@@ -16,7 +17,7 @@ autorequire:
16
17
  bindir: bin
17
18
  cert_chain: []
18
19
 
19
- date: 2010-07-28 00:00:00 +09:00
20
+ date: 2010-07-29 00:00:00 +09:00
20
21
  default_executable:
21
22
  dependencies:
22
23
  - !ruby/object:Gem::Dependency