jpmobile 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +10 -0
- data/README.rdoc +6 -3
- data/VERSION.yml +1 -1
- data/lib/jpmobile/filter.rb +55 -15
- data/lib/jpmobile/rack/filter.rb +2 -1
- data/lib/jpmobile/trans_sid.rb +2 -2
- data/lib/jpmobile/util.rb +8 -0
- data/lib/tasks/jpmobile_tasks.rake +3 -3
- data/spec/rack/jpmobile/au_spec.rb +10 -10
- data/spec/rack/jpmobile/docomo_spec.rb +6 -6
- data/spec/rack/jpmobile/filter_spec.rb +20 -2
- data/spec/rack/jpmobile/softbank_spec.rb +2 -2
- data/spec/rack/jpmobile/willcom_spec.rb +2 -2
- data/test/rails/overrides/Gemfile +33 -0
- data/test/rails/overrides/app/controllers/filter_controller.rb +1 -1
- data/test/rails/overrides/app/controllers/filter_controller_base.rb +6 -0
- data/test/rails/overrides/app/controllers/hankaku_filter_controller.rb +1 -1
- data/test/rails/overrides/app/controllers/hankaku_input_filter_controller.rb +7 -0
- data/test/rails/overrides/app/controllers/trans_sid_metal_controller.rb +15 -0
- data/test/rails/overrides/app/views/hankaku_input_filter/index.html.erb +0 -0
- data/test/rails/overrides/app/views/hankaku_input_filter/index_xhtml.html.erb +1 -0
- data/test/rails/overrides/app/views/layouts/xhtml.html.erb +12 -0
- data/test/rails/overrides/config/routes.rb +1 -1
- data/test/rails/overrides/spec/requests/filter_spec.rb +50 -0
- data/test/rails/overrides/spec/requests/trans_sid_spec.rb +18 -0
- data/test/rails/overrides/spec/spec_helper.rb +1 -0
- metadata +169 -53
- data/.gitignore +0 -7
data/Gemfile
ADDED
data/README.rdoc
CHANGED
@@ -98,7 +98,6 @@
|
|
98
98
|
end
|
99
99
|
|
100
100
|
class MobileController < ApplicationController
|
101
|
-
mobile_filter
|
102
101
|
end
|
103
102
|
|
104
103
|
=== 位置情報の取得
|
@@ -173,10 +172,14 @@ jpmobileを読み込むとDoCoMo、Au、SoftBankの絵文字を透過的に扱
|
|
173
172
|
Rails のみ半角・全角の自動変換フィルターが用意されている。用いるには
|
174
173
|
|
175
174
|
class MyController
|
176
|
-
|
175
|
+
hankaku_filter
|
177
176
|
end
|
178
177
|
|
179
|
-
|
178
|
+
と指定する。またtextareaやhidden/text/passwordのinputタグで半角に変換したくない場合は :input => true を指定する。
|
179
|
+
|
180
|
+
class MyController
|
181
|
+
hankaku_filter :input => true
|
182
|
+
end
|
180
183
|
|
181
184
|
Jpmobile内では、各キャリアの絵文字はUnicode私的領域上にマッピングされ、管理される。
|
182
185
|
このとき、DoCoMo、Auは公式サイト記載のマッピングが使用される。
|
data/VERSION.yml
CHANGED
data/lib/jpmobile/filter.rb
CHANGED
@@ -1,15 +1,19 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
|
-
# =
|
2
|
+
# = 半角変換フィルター
|
3
3
|
# thanks to masuidrive <masuidrive (at) masuidrive.jp>
|
4
4
|
|
5
5
|
class ActionController::Base #:nodoc:
|
6
|
+
def self.hankaku_filter(options={})
|
7
|
+
options = {:input => false}.update(options)
|
8
|
+
|
9
|
+
before_filter lambda {|controller| Jpmobile::HankakuFilter.before(controller, options)}
|
10
|
+
after_filter lambda {|controller| Jpmobile::HankakuFilter.after(controller, options)}
|
11
|
+
end
|
12
|
+
|
6
13
|
def self.mobile_filter(options={})
|
7
|
-
|
14
|
+
STDERR.puts "Method mobile_filter is now deprecated. Use hankaku_filter instead for Hankaku-conversion."
|
8
15
|
|
9
|
-
|
10
|
-
before_filter lambda {|controller| Jpmobile::HankakuFilter.before(controller)}
|
11
|
-
after_filter lambda {|controller| Jpmobile::HankakuFilter.after(controller)}
|
12
|
-
end
|
16
|
+
self.hankaku_filter(options)
|
13
17
|
end
|
14
18
|
end
|
15
19
|
|
@@ -26,28 +30,44 @@ module Jpmobile
|
|
26
30
|
[nil, "text/html", "application/xhtml+xml"].include?(controller.response.content_type)
|
27
31
|
end
|
28
32
|
|
29
|
-
def before(controller)
|
33
|
+
def before(controller, options = {})
|
30
34
|
if apply_incoming?(controller)
|
31
35
|
Util.deep_apply(controller.params) do |value|
|
32
|
-
value = to_internal(value)
|
36
|
+
value = to_internal(value, options)
|
33
37
|
end
|
34
38
|
end
|
35
39
|
end
|
36
40
|
# 内部コードから外部コードに変換
|
37
|
-
def after(controller)
|
41
|
+
def after(controller, options = {})
|
38
42
|
if apply_outgoing?(controller) and controller.response.body.is_a?(String)
|
39
|
-
controller.response.body = to_external(controller.response.body)
|
43
|
+
controller.response.body = to_external(controller.response.body, options)
|
40
44
|
end
|
41
45
|
end
|
42
46
|
|
43
|
-
@@internal = %w(ガ ギ グ ゲ ゴ ザ ジ ズ ゼ ゾ ダ ヂ ヅ デ ド バ ビ ブ ベ ボ パ ピ プ ペ ポ ヴ ア イ ウ エ オ カ キ ク ケ コ サ シ ス セ ソ タ チ ツ テ ト ナ ニ ヌ ネ ノ ハ ヒ フ ヘ ホ マ ミ ム メ モ ヤ ユ ヨ ラ リ ル レ ロ ワ ヲ ン ャ ュ ョ ァ ィ ゥ ェ ォ ッ ゛ ゜ ー 。 「 」 、 ・).freeze
|
44
|
-
@@external = %w(ガ ギ グ ゲ ゴ ザ ジ ズ ゼ ゾ ダ ヂ ヅ デ ド バ ビ ブ ベ ボ パ ピ プ ペ ポ ヴ ア イ ウ エ オ カ キ ク ケ コ サ シ ス セ ソ タ チ ツ テ ト ナ ニ ヌ ネ ノ ハ ヒ フ ヘ ホ マ ミ ム メ モ ヤ ユ ヨ ラ リ ル レ ロ ワ ヲ ン ャ ュ ョ ァ ィ ゥ ェ ォ ッ ゙ ゚ ー 。 「 」 、 ・).freeze
|
45
|
-
def to_internal(str)
|
47
|
+
@@internal = %w(ガ ギ グ ゲ ゴ ザ ジ ズ ゼ ゾ ダ ヂ ヅ デ ド バ ビ ブ ベ ボ パ ピ プ ペ ポ ヴ ア イ ウ エ オ カ キ ク ケ コ サ シ ス セ ソ タ チ ツ テ ト ナ ニ ヌ ネ ノ ハ ヒ フ ヘ ホ マ ミ ム メ モ ヤ ユ ヨ ラ リ ル レ ロ ワ ヲ ン ャ ュ ョ ァ ィ ゥ ェ ォ ッ ゛ ゜ ー 。 「 」 、 ・ ! ?).freeze
|
48
|
+
@@external = %w(ガ ギ グ ゲ ゴ ザ ジ ズ ゼ ゾ ダ ヂ ヅ デ ド バ ビ ブ ベ ボ パ ピ プ ペ ポ ヴ ア イ ウ エ オ カ キ ク ケ コ サ シ ス セ ソ タ チ ツ テ ト ナ ニ ヌ ネ ノ ハ ヒ フ ヘ ホ マ ミ ム メ モ ヤ ユ ヨ ラ リ ル レ ロ ワ ヲ ン ャ ュ ョ ァ ィ ゥ ェ ォ ッ ゙ ゚ ー 。 「 」 、 ・ ! ?).freeze
|
49
|
+
def to_internal(str, options = {})
|
46
50
|
filter(str, @@external, @@internal)
|
47
51
|
end
|
48
|
-
def to_external(str)
|
49
|
-
|
52
|
+
def to_external(str, options = {})
|
53
|
+
unless options[:input]
|
54
|
+
filter(str, @@internal, @@external)
|
55
|
+
else
|
56
|
+
encoding = (str =~ /^\s*<[^Hh>]*html/) and str.respond_to?(:encoding)
|
57
|
+
nokogiri_klass =
|
58
|
+
(str =~ /^\s*<[^Hh>]*html/) ? Nokogiri::HTML::Document : Nokogiri::HTML::DocumentFragment
|
59
|
+
doc = if encoding
|
60
|
+
nokogiri_klass.parse(str, nil, "UTF-8")
|
61
|
+
else
|
62
|
+
nokogiri_klass.parse(str)
|
63
|
+
end
|
64
|
+
|
65
|
+
doc = convert_text_content(doc)
|
66
|
+
|
67
|
+
doc.to_html
|
68
|
+
end
|
50
69
|
end
|
70
|
+
|
51
71
|
def filter(str, from, to)
|
52
72
|
str = str.clone
|
53
73
|
|
@@ -69,5 +89,25 @@ module Jpmobile
|
|
69
89
|
|
70
90
|
str
|
71
91
|
end
|
92
|
+
|
93
|
+
# 再帰的に探す
|
94
|
+
def convert_text_content(document)
|
95
|
+
document.children.each do |element|
|
96
|
+
if element.kind_of?(Nokogiri::XML::Text)
|
97
|
+
unless element.parent.node_name == "textarea"
|
98
|
+
# textarea 以外のテキストなら content を変換
|
99
|
+
element.content = filter(element.content, @@internal, @@external)
|
100
|
+
end
|
101
|
+
elsif element.node_name == "input" and ["submit", "reset", "button"].include?(element["type"])
|
102
|
+
# テキスト以外でもボタンの value は変換
|
103
|
+
element["value"] = filter(element["value"], @@internal, @@external)
|
104
|
+
elsif element.children.any?
|
105
|
+
# 子要素があれば再帰的に変換
|
106
|
+
element = convert_text_content(element)
|
107
|
+
end
|
108
|
+
end
|
109
|
+
|
110
|
+
document
|
111
|
+
end
|
72
112
|
end
|
73
113
|
end
|
data/lib/jpmobile/rack/filter.rb
CHANGED
@@ -22,7 +22,8 @@ module Jpmobile
|
|
22
22
|
end
|
23
23
|
|
24
24
|
body = response_to_body(response)
|
25
|
-
body = body.
|
25
|
+
body = body.gsub(/<input name="utf8" type="hidden" value="#{[0x2713].pack("U")}"[^>]*?>/, ' ')
|
26
|
+
body = body.gsub(/<input name="utf8" type="hidden" value="✓"[^>]*?>/, ' ')
|
26
27
|
|
27
28
|
response, charset = mobile.to_external(body, type, charset)
|
28
29
|
|
data/lib/jpmobile/trans_sid.rb
CHANGED
@@ -61,7 +61,7 @@ module ActionController
|
|
61
61
|
alias_method_chain :redirect_to, :jpmobile
|
62
62
|
end
|
63
63
|
|
64
|
-
class
|
64
|
+
class Metal #:nodoc:
|
65
65
|
class_inheritable_accessor :trans_sid_mode
|
66
66
|
|
67
67
|
class << self
|
@@ -128,6 +128,6 @@ module Jpmobile::TransSid #:nodoc:
|
|
128
128
|
return unless request # for test process
|
129
129
|
return unless apply_trans_sid?
|
130
130
|
return unless jpmobile_session_id
|
131
|
-
response.body.gsub
|
131
|
+
response.body = response.body.gsub(%r{(</form>)}i, sid_hidden_field_tag+'\1')
|
132
132
|
end
|
133
133
|
end
|
data/lib/jpmobile/util.rb
CHANGED
@@ -79,6 +79,14 @@ module Jpmobile
|
|
79
79
|
end
|
80
80
|
end
|
81
81
|
|
82
|
+
def regexp_utf8_to_sjis(utf8_str)
|
83
|
+
if Object.const_defined?(:Encoding)
|
84
|
+
Regexp.compile(Regexp.escape(utf8_to_sjis(utf8_str)))
|
85
|
+
else
|
86
|
+
Regexp.compile(Regexp.escape(utf8_to_sjis(utf8_str),"s"),nil,'s')
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
82
90
|
def hash_to_utf8(hash)
|
83
91
|
new_hash = {}
|
84
92
|
hash.each do |keu, value|
|
@@ -39,7 +39,7 @@ namespace :test do
|
|
39
39
|
task :rails, [:versions] do |t, args|
|
40
40
|
rails_root = "test/rails/rails_root"
|
41
41
|
relative_root = "../../../"
|
42
|
-
rails_versions = args.versions.split("/") rescue ["3.0.
|
42
|
+
rails_versions = args.versions.split("/") rescue ["3.0.2"]
|
43
43
|
|
44
44
|
puts "Running tests in Rails #{rails_versions.join(', ')}"
|
45
45
|
|
@@ -53,7 +53,7 @@ namespace :test do
|
|
53
53
|
# setup jpmobile
|
54
54
|
plugin_path = File.join(rails_root, 'vendor', 'plugins', 'jpmobile')
|
55
55
|
FileUtils.mkdir_p(plugin_path)
|
56
|
-
FileList["*"].exclude("test").each do |file|
|
56
|
+
FileList["*"].exclude("test").exclude("spec").each do |file|
|
57
57
|
FileUtils.cp_r(file, plugin_path)
|
58
58
|
end
|
59
59
|
|
@@ -98,7 +98,7 @@ END
|
|
98
98
|
# ruby "-S bundle install"
|
99
99
|
ruby "-S rake db:migrate test"
|
100
100
|
ruby "-S rake spec"
|
101
|
-
# ruby "-S rspec -b --color spec/requests/
|
101
|
+
# ruby "-S rspec -b --color spec/requests/filter_spec.rb -e 'jpmobile integration spec HankakuInputFilterController SoftBank 910T からのアクセス it should behave like hankaku_filter :input => true のとき はtextareaの中では半角に変換されないこと'"
|
102
102
|
|
103
103
|
cd relative_root
|
104
104
|
end
|
@@ -50,8 +50,8 @@ describe Jpmobile::Rack::MobileCarrier, "au" do
|
|
50
50
|
"QUERY_STRING" => "ver=1&datum=0&unit=0&lat=%2b43.05.08.95&lon=%2b141.20.25.99&alt=155&time=20060521010328&smaj=76&smin=62&vert=65&majaa=49&fm=1")
|
51
51
|
env = Jpmobile::Rack::MobileCarrier.new(UnitApplication.new).call(res)[1]
|
52
52
|
|
53
|
-
env['rack.jpmobile'].position.lat.should
|
54
|
-
env['rack.jpmobile'].position.lon.should
|
53
|
+
env['rack.jpmobile'].position.lat.should be_within(1e-7).of(43.08581944)
|
54
|
+
env['rack.jpmobile'].position.lon.should be_within(1e-7).of(141.3405528)
|
55
55
|
end
|
56
56
|
|
57
57
|
it "緯度経度を取得できること(dgree_tokyo)" do
|
@@ -61,8 +61,8 @@ describe Jpmobile::Rack::MobileCarrier, "au" do
|
|
61
61
|
"QUERY_STRING" => "ver=1&datum=1&unit=1&lat=%2b43.07475&lon=%2b141.34259&alt=8&time=20061017182825&smaj=113&smin=76&vert=72&majaa=108&fm=1")
|
62
62
|
env = Jpmobile::Rack::MobileCarrier.new(UnitApplication.new).call(res)[1]
|
63
63
|
|
64
|
-
env['rack.jpmobile'].position.lat.should
|
65
|
-
env['rack.jpmobile'].position.lon.should
|
64
|
+
env['rack.jpmobile'].position.lat.should be_within(1e-4).of(43.07719289)
|
65
|
+
env['rack.jpmobile'].position.lon.should be_within(1e-4).of(141.3389013)
|
66
66
|
end
|
67
67
|
|
68
68
|
it "緯度経度を取得できること(dgree_tokyo)" do
|
@@ -72,8 +72,8 @@ describe Jpmobile::Rack::MobileCarrier, "au" do
|
|
72
72
|
"QUERY_STRING" => "ver=1&datum=1&unit=1&lat=%2b43.07475&lon=%2b141.34259&alt=8&time=20061017182825&smaj=113&smin=76&vert=72&majaa=108&fm=1")
|
73
73
|
env = Jpmobile::Rack::MobileCarrier.new(UnitApplication.new).call(res)[1]
|
74
74
|
|
75
|
-
env['rack.jpmobile'].position.lat.should
|
76
|
-
env['rack.jpmobile'].position.lon.should
|
75
|
+
env['rack.jpmobile'].position.lat.should be_within(1e-4).of(43.07719289)
|
76
|
+
env['rack.jpmobile'].position.lon.should be_within(1e-4).of(141.3389013)
|
77
77
|
end
|
78
78
|
|
79
79
|
it "緯度経度を取得できること(dms_tokyo)" do
|
@@ -83,8 +83,8 @@ describe Jpmobile::Rack::MobileCarrier, "au" do
|
|
83
83
|
"QUERY_STRING" => "datum=tokyo&unit=dms&lat=43.04.55.00&lon=141.20.50.75")
|
84
84
|
env = Jpmobile::Rack::MobileCarrier.new(UnitApplication.new).call(res)[1]
|
85
85
|
|
86
|
-
env['rack.jpmobile'].position.lat.should
|
87
|
-
env['rack.jpmobile'].position.lon.should
|
86
|
+
env['rack.jpmobile'].position.lat.should be_within(1e-7).of(43.08194444)
|
87
|
+
env['rack.jpmobile'].position.lon.should be_within(1e-7).of(141.3474306)
|
88
88
|
end
|
89
89
|
|
90
90
|
it "緯度経度を取得できること(antenna)" do
|
@@ -94,8 +94,8 @@ describe Jpmobile::Rack::MobileCarrier, "au" do
|
|
94
94
|
"QUERY_STRING" => "datum=tokyo&unit=dms&lat=43.04.55.00&lon=141.20.50.75")
|
95
95
|
env = Jpmobile::Rack::MobileCarrier.new(UnitApplication.new).call(res)[1]
|
96
96
|
|
97
|
-
env['rack.jpmobile'].position.lat.should
|
98
|
-
env['rack.jpmobile'].position.lon.should
|
97
|
+
env['rack.jpmobile'].position.lat.should be_within(1e-7).of(43.08194444)
|
98
|
+
env['rack.jpmobile'].position.lon.should be_within(1e-7).of(141.3474306)
|
99
99
|
end
|
100
100
|
|
101
101
|
it "GeoKit がある場合に取得できること" do
|
@@ -137,8 +137,8 @@ describe Jpmobile::Rack::MobileCarrier, "docomo" do
|
|
137
137
|
|
138
138
|
env['rack.jpmobile'].areacode.should == "00100"
|
139
139
|
|
140
|
-
env['rack.jpmobile'].position.lat.should
|
141
|
-
env['rack.jpmobile'].position.lon.should
|
140
|
+
env['rack.jpmobile'].position.lat.should be_within(1e-7).of(35.00988889)
|
141
|
+
env['rack.jpmobile'].position.lon.should be_within(1e-7).of(135.6932222)
|
142
142
|
end
|
143
143
|
end
|
144
144
|
|
@@ -150,8 +150,8 @@ describe Jpmobile::Rack::MobileCarrier, "docomo" do
|
|
150
150
|
"QUERY_STRING" => "lat=%2B35.00.35.600&lon=%2B135.41.35.600&geo=wgs84&x-acc=3")
|
151
151
|
env = Jpmobile::Rack::MobileCarrier.new(UnitApplication.new).call(res)[1]
|
152
152
|
|
153
|
-
env['rack.jpmobile'].position.lat.should
|
154
|
-
env['rack.jpmobile'].position.lon.should
|
153
|
+
env['rack.jpmobile'].position.lat.should be_within(1e-7).of(35.00988889)
|
154
|
+
env['rack.jpmobile'].position.lon.should be_within(1e-7).of(135.6932222)
|
155
155
|
end
|
156
156
|
|
157
157
|
# DoCoMo, 903i, GPS
|
@@ -164,8 +164,8 @@ describe Jpmobile::Rack::MobileCarrier, "docomo" do
|
|
164
164
|
"QUERY_STRING" => "lat=%2B35.00.35.600&lon=%2B135.41.35.600&geo=WGS84&alt=%2B64.000&x-acc=1")
|
165
165
|
env = Jpmobile::Rack::MobileCarrier.new(UnitApplication.new).call(res)[1]
|
166
166
|
|
167
|
-
env['rack.jpmobile'].position.lat.should
|
168
|
-
env['rack.jpmobile'].position.lon.should
|
167
|
+
env['rack.jpmobile'].position.lat.should be_within(1e-7).of(35.00988889)
|
168
|
+
env['rack.jpmobile'].position.lon.should be_within(1e-7).of(135.6932222)
|
169
169
|
end
|
170
170
|
end
|
171
171
|
|
@@ -48,11 +48,29 @@ describe Jpmobile::Rack::Filter do
|
|
48
48
|
end
|
49
49
|
|
50
50
|
it "_snowman が出力されないこと" do
|
51
|
-
|
51
|
+
req = Rack::MockRequest.env_for(
|
52
52
|
"/",
|
53
53
|
"REQUEST_METHOD" => "GET",
|
54
54
|
'HTTP_USER_AGENT' => 'DoCoMo/2.0 SH906i(c100;TB;W24H16)')
|
55
|
-
res = Jpmobile::Rack::MobileCarrier.new(Jpmobile::Rack::Filter.new(UnitApplication.new('<input name="utf8" type="hidden" value="✓" />'))).call(
|
55
|
+
res = Jpmobile::Rack::MobileCarrier.new(Jpmobile::Rack::Filter.new(UnitApplication.new('<input name="utf8" type="hidden" value="✓" />'))).call(req)
|
56
|
+
res[1]['Content-Type'].should == "text/html; charset=Shift_JIS"
|
57
|
+
response_body(res).should == " "
|
58
|
+
|
59
|
+
res = Jpmobile::Rack::MobileCarrier.new(Jpmobile::Rack::Filter.new(UnitApplication.new('<input name="utf8" type="hidden" value="✓">'))).call(req)
|
60
|
+
res[1]['Content-Type'].should == "text/html; charset=Shift_JIS"
|
61
|
+
response_body(res).should == " "
|
62
|
+
end
|
63
|
+
|
64
|
+
it "Nokogiri 経由の _snowman が出力されないこと" do
|
65
|
+
req = Rack::MockRequest.env_for(
|
66
|
+
"/",
|
67
|
+
"REQUEST_METHOD" => "GET",
|
68
|
+
'HTTP_USER_AGENT' => 'DoCoMo/2.0 SH906i(c100;TB;W24H16)')
|
69
|
+
res = Jpmobile::Rack::MobileCarrier.new(Jpmobile::Rack::Filter.new(UnitApplication.new("<input name=\"utf8\" type=\"hidden\" value=\"#{[10003].pack("U")}\" />"))).call(req)
|
70
|
+
res[1]['Content-Type'].should == "text/html; charset=Shift_JIS"
|
71
|
+
response_body(res).should == " "
|
72
|
+
|
73
|
+
res = Jpmobile::Rack::MobileCarrier.new(Jpmobile::Rack::Filter.new(UnitApplication.new("<input name=\"utf8\" type=\"hidden\" value=\"#{[10003].pack("U")}\">"))).call(req)
|
56
74
|
res[1]['Content-Type'].should == "text/html; charset=Shift_JIS"
|
57
75
|
response_body(res).should == " "
|
58
76
|
end
|
@@ -57,8 +57,8 @@ describe Jpmobile::Rack::MobileCarrier, "softbank" do
|
|
57
57
|
"QUERY_STRING" => "pos=N43.3.18.42E141.21.1.88&geo=wgs84&x-acr=1")
|
58
58
|
env = Jpmobile::Rack::MobileCarrier.new(UnitApplication.new).call(res)[1]
|
59
59
|
|
60
|
-
env['rack.jpmobile'].position.lat.should
|
61
|
-
env['rack.jpmobile'].position.lon.should
|
60
|
+
env['rack.jpmobile'].position.lat.should be_within(1e-7).of(43.05511667)
|
61
|
+
env['rack.jpmobile'].position.lon.should be_within(1e-7).of(141.3505222)
|
62
62
|
env['rack.jpmobile'].position.options['pos'].should == "N43.3.18.42E141.21.1.88"
|
63
63
|
env['rack.jpmobile'].position.options['geo'].should == "wgs84"
|
64
64
|
env['rack.jpmobile'].position.options['x-acr'].should == "1"
|
@@ -38,8 +38,8 @@ describe Jpmobile::Rack::MobileCarrier, "willcom" do
|
|
38
38
|
"QUERY_STRING" => "pos=N43.04.34.049E141.21.03.279")
|
39
39
|
env = Jpmobile::Rack::MobileCarrier.new(UnitApplication.new).call(res)[1]
|
40
40
|
|
41
|
-
env['rack.jpmobile'].position.lat.should
|
42
|
-
env['rack.jpmobile'].position.lon.should
|
41
|
+
env['rack.jpmobile'].position.lat.should be_within(1e-4).of(43.078568)
|
42
|
+
env['rack.jpmobile'].position.lon.should be_within(1e-4).of(141.347223)
|
43
43
|
end
|
44
44
|
end
|
45
45
|
|
@@ -0,0 +1,33 @@
|
|
1
|
+
source 'http://rubygems.org'
|
2
|
+
|
3
|
+
gem 'rails', '>= 3.0.0'
|
4
|
+
|
5
|
+
# Bundle edge Rails instead:
|
6
|
+
# gem 'rails', :git => 'git://github.com/rails/rails.git'
|
7
|
+
|
8
|
+
gem 'sqlite3-ruby', :require => 'sqlite3'
|
9
|
+
|
10
|
+
gem 'geokit'
|
11
|
+
gem 'hpricot'
|
12
|
+
|
13
|
+
# Use unicorn as the web server
|
14
|
+
# gem 'unicorn'
|
15
|
+
|
16
|
+
# Deploy with Capistrano
|
17
|
+
# gem 'capistrano'
|
18
|
+
|
19
|
+
# To use debugger
|
20
|
+
# gem 'ruby-debug'
|
21
|
+
|
22
|
+
# Bundle the extra gems:
|
23
|
+
# gem 'bj'
|
24
|
+
# gem 'nokogiri', '1.4.1'
|
25
|
+
# gem 'sqlite3-ruby', :require => 'sqlite3'
|
26
|
+
# gem 'aws-s3', :require => 'aws/s3'
|
27
|
+
|
28
|
+
# Bundle gems for certain environments:
|
29
|
+
group :development, :test do
|
30
|
+
gem "rspec", ">= 2.0.0"
|
31
|
+
gem "rspec-rails", ">= 2.0.0"
|
32
|
+
gem 'webrat'
|
33
|
+
end
|
@@ -16,4 +16,10 @@ class FilterControllerBase < ApplicationController
|
|
16
16
|
def rawdata
|
17
17
|
send_data "アブラカダブラ", :type => 'application/octet-stream'
|
18
18
|
end
|
19
|
+
def textarea
|
20
|
+
render :text => '<textarea hoge="fuu">アブラカダブラ</textarea>'
|
21
|
+
end
|
22
|
+
def input_tag
|
23
|
+
render :text => '<input hoge="fuu" value="アブラカダブラ" />'
|
24
|
+
end
|
19
25
|
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
class TransSidMetalController < ActionController::Metal
|
3
|
+
include ActionController::RackDelegation
|
4
|
+
include ActionController::UrlFor
|
5
|
+
include ActionController::Redirecting
|
6
|
+
include Rails.application.routes.url_helpers
|
7
|
+
|
8
|
+
# 事前にセッションを作成しないと trans_sid が有効にならない
|
9
|
+
# before_filter :session_init
|
10
|
+
# trans_sid :always
|
11
|
+
|
12
|
+
def redirect
|
13
|
+
redirect_to('/')
|
14
|
+
end
|
15
|
+
end
|
File without changes
|
@@ -0,0 +1 @@
|
|
1
|
+
ぼでぃ
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//i-mode group (ja)//DTD XHTML i-XHTML(Locale/Ver.=ja/1.1) 1.0//EN" "i-xhtml_4ja_10.dtd">
|
2
|
+
<?xml version='1.0' encoding='Shift_JIS' ?>
|
3
|
+
<html xml:lang="ja" xmlns="http://www.w3.org/1999/xhtml">
|
4
|
+
<head>
|
5
|
+
<meta content="width=device-width; initial-scale=1.0" name="viewport">
|
6
|
+
<meta content="application/xhtml+xml; charset=Shift_JIS" http-equiv="Content-Type">
|
7
|
+
<title>じぇいぴぃもばいる</title>
|
8
|
+
</head>
|
9
|
+
<body>
|
10
|
+
<%= yield -%>
|
11
|
+
</body>
|
12
|
+
</html>
|
@@ -3,6 +3,29 @@ require File.dirname(__FILE__) + '/../spec_helper'
|
|
3
3
|
|
4
4
|
describe "jpmobile integration spec" do
|
5
5
|
include Jpmobile::Util
|
6
|
+
|
7
|
+
shared_examples_for "hankaku_filter :input => true のとき" do
|
8
|
+
it "はtextareaの中では半角に変換されないこと" do
|
9
|
+
get "/#{@controller}/textarea", {}, {"HTTP_USER_AGENT" => @user_agent}
|
10
|
+
body.should == send(@conversion_method, '<textarea hoge="fuu">アブラカダブラ</textarea>')
|
11
|
+
end
|
12
|
+
it "はinputのvalueの中では半角に変換されないこと" do
|
13
|
+
get "/#{@controller}/input_tag", {}, {"HTTP_USER_AGENT" => @user_agent}
|
14
|
+
body.should == send(@conversion_method, '<input hoge="fuu" value="アブラカダブラ">')
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
shared_examples_for "hankaku_filter :input => false のとき" do
|
19
|
+
it "はtextareaの中でも半角に変換されること" do
|
20
|
+
get "/#{@controller}/textarea", {}, {"HTTP_USER_AGENT" => @user_agent}
|
21
|
+
body.should == send(@conversion_method, '<textarea hoge="fuu">アブラカダブラ</textarea>')
|
22
|
+
end
|
23
|
+
it "はinputのvalueの中も半角に変換されること" do
|
24
|
+
get "/#{@controller}/input_tag", {}, {"HTTP_USER_AGENT" => @user_agent}
|
25
|
+
body.should == send(@conversion_method, '<input hoge="fuu" value="アブラカダブラ" />')
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
6
29
|
shared_examples_for "文字コードフィルタが動作しているとき" do
|
7
30
|
it "はhtml以外は変換しないこと" do
|
8
31
|
get "/#{@controller}/rawdata", {}, {"HTTP_USER_AGENT" => @user_agent}
|
@@ -157,15 +180,42 @@ describe "jpmobile integration spec" do
|
|
157
180
|
before do
|
158
181
|
@user_agent = "DoCoMo/2.0 SH902i(c100;TB;W24H12)"
|
159
182
|
@controller = "hankaku_filter"
|
183
|
+
@conversion_method = :utf8_to_sjis
|
160
184
|
end
|
161
185
|
it_should_behave_like "Shift_JISで通信する端末との通信(半角変換付き)"
|
186
|
+
it_should_behave_like "hankaku_filter :input => false のとき"
|
162
187
|
end
|
163
188
|
|
164
189
|
describe HankakuFilterController, "SoftBank 910T からのアクセス" do
|
165
190
|
before do
|
166
191
|
@user_agent = "SoftBank/1.0/910T/TJ001/SN000000000000000 Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1"
|
167
192
|
@controller = "hankaku_filter"
|
193
|
+
@conversion_method = :utf8
|
194
|
+
end
|
195
|
+
it_should_behave_like "UTF-8で通信する端末との通信(半角変換付き)"
|
196
|
+
it_should_behave_like "hankaku_filter :input => false のとき"
|
197
|
+
end
|
198
|
+
|
199
|
+
#
|
200
|
+
# 半角フィルタ(input付き)
|
201
|
+
#
|
202
|
+
describe HankakuInputFilterController, "DoCoMo SH902i からのアクセス" do
|
203
|
+
before do
|
204
|
+
@user_agent = "DoCoMo/2.0 SH902i(c100;TB;W24H12)"
|
205
|
+
@controller = "hankaku_input_filter"
|
206
|
+
@conversion_method = :utf8_to_sjis
|
207
|
+
end
|
208
|
+
it_should_behave_like "Shift_JISで通信する端末との通信(半角変換付き)"
|
209
|
+
it_should_behave_like "hankaku_filter :input => true のとき"
|
210
|
+
end
|
211
|
+
|
212
|
+
describe HankakuInputFilterController, "SoftBank 910T からのアクセス" do
|
213
|
+
before do
|
214
|
+
@user_agent = "SoftBank/1.0/910T/TJ001/SN000000000000000 Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1"
|
215
|
+
@controller = "hankaku_input_filter"
|
216
|
+
@conversion_method = :utf8
|
168
217
|
end
|
169
218
|
it_should_behave_like "UTF-8で通信する端末との通信(半角変換付き)"
|
219
|
+
it_should_behave_like "hankaku_filter :input => true のとき"
|
170
220
|
end
|
171
221
|
end
|
@@ -49,6 +49,10 @@ describe "trans_sid functional" do
|
|
49
49
|
|
50
50
|
res.response.body.should =~ /<a href=\"\/.+?\/link\?_session_id=[a-zA-Z0-9]{32}\">linkto<\/a>/
|
51
51
|
end
|
52
|
+
it "で form内にhiddenが差し込まれる" do
|
53
|
+
res = get_with_session(@controller, "form", @user_agent)
|
54
|
+
res.response.body.should =~ /<input type=\"hidden\" name=\".+\" value=\"[a-zA-Z0-9]{32}\"/
|
55
|
+
end
|
52
56
|
it "で form の自動書き換えが行われる" do
|
53
57
|
res = get_with_session(@controller, "form", @user_agent)
|
54
58
|
|
@@ -140,6 +144,20 @@ describe "trans_sid functional" do
|
|
140
144
|
it_should_behave_like "trans_sid が起動するとき"
|
141
145
|
end
|
142
146
|
|
147
|
+
describe TransSidMetalController, "という ActionController::Metal のコントローラ" do
|
148
|
+
before(:each) do
|
149
|
+
@controller = "trans_sid_metal"
|
150
|
+
@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)"
|
151
|
+
@charset = "UTF-8"
|
152
|
+
end
|
153
|
+
|
154
|
+
it "で redirect_to がエラーにならない" do
|
155
|
+
res = get_with_session(@controller, "redirect", @user_agent)
|
156
|
+
|
157
|
+
res.response.should be_redirect
|
158
|
+
end
|
159
|
+
end
|
160
|
+
|
143
161
|
describe TransSidMobileController, "という trans_sid :mobile が指定されているコントローラ" do
|
144
162
|
before(:each) do
|
145
163
|
@controller = "trans_sid_mobile"
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 1
|
8
|
-
-
|
9
|
-
version: 0.1.
|
8
|
+
- 3
|
9
|
+
version: 0.1.3
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Yoji Shidara
|
@@ -15,13 +15,122 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-
|
18
|
+
date: 2010-11-16 00:00:00 +09:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
22
|
+
name: jeweler
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
+
none: false
|
25
|
+
requirements:
|
26
|
+
- - ">="
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
segments:
|
29
|
+
- 0
|
30
|
+
version: "0"
|
31
|
+
type: :runtime
|
32
|
+
prerelease: false
|
33
|
+
version_requirements: *id001
|
34
|
+
- !ruby/object:Gem::Dependency
|
35
|
+
name: rails
|
36
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
37
|
+
none: false
|
38
|
+
requirements:
|
39
|
+
- - ">="
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
segments:
|
42
|
+
- 3
|
43
|
+
- 0
|
44
|
+
- 1
|
45
|
+
version: 3.0.1
|
46
|
+
type: :runtime
|
47
|
+
prerelease: false
|
48
|
+
version_requirements: *id002
|
21
49
|
- !ruby/object:Gem::Dependency
|
22
50
|
name: rspec
|
51
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
52
|
+
none: false
|
53
|
+
requirements:
|
54
|
+
- - ">="
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
segments:
|
57
|
+
- 2
|
58
|
+
- 0
|
59
|
+
- 0
|
60
|
+
version: 2.0.0
|
61
|
+
type: :runtime
|
23
62
|
prerelease: false
|
24
|
-
|
63
|
+
version_requirements: *id003
|
64
|
+
- !ruby/object:Gem::Dependency
|
65
|
+
name: rspec-rails
|
66
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
67
|
+
none: false
|
68
|
+
requirements:
|
69
|
+
- - ">="
|
70
|
+
- !ruby/object:Gem::Version
|
71
|
+
segments:
|
72
|
+
- 2
|
73
|
+
- 0
|
74
|
+
- 0
|
75
|
+
version: 2.0.0
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: *id004
|
79
|
+
- !ruby/object:Gem::Dependency
|
80
|
+
name: webrat
|
81
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
82
|
+
none: false
|
83
|
+
requirements:
|
84
|
+
- - ">="
|
85
|
+
- !ruby/object:Gem::Version
|
86
|
+
segments:
|
87
|
+
- 0
|
88
|
+
version: "0"
|
89
|
+
type: :runtime
|
90
|
+
prerelease: false
|
91
|
+
version_requirements: *id005
|
92
|
+
- !ruby/object:Gem::Dependency
|
93
|
+
name: geokit
|
94
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
95
|
+
none: false
|
96
|
+
requirements:
|
97
|
+
- - ">="
|
98
|
+
- !ruby/object:Gem::Version
|
99
|
+
segments:
|
100
|
+
- 0
|
101
|
+
version: "0"
|
102
|
+
type: :runtime
|
103
|
+
prerelease: false
|
104
|
+
version_requirements: *id006
|
105
|
+
- !ruby/object:Gem::Dependency
|
106
|
+
name: sqlite3-ruby
|
107
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
108
|
+
none: false
|
109
|
+
requirements:
|
110
|
+
- - ">="
|
111
|
+
- !ruby/object:Gem::Version
|
112
|
+
segments:
|
113
|
+
- 0
|
114
|
+
version: "0"
|
115
|
+
type: :runtime
|
116
|
+
prerelease: false
|
117
|
+
version_requirements: *id007
|
118
|
+
- !ruby/object:Gem::Dependency
|
119
|
+
name: hpricot
|
120
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
121
|
+
none: false
|
122
|
+
requirements:
|
123
|
+
- - ">="
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
segments:
|
126
|
+
- 0
|
127
|
+
version: "0"
|
128
|
+
type: :runtime
|
129
|
+
prerelease: false
|
130
|
+
version_requirements: *id008
|
131
|
+
- !ruby/object:Gem::Dependency
|
132
|
+
name: rspec
|
133
|
+
requirement: &id009 !ruby/object:Gem::Requirement
|
25
134
|
none: false
|
26
135
|
requirements:
|
27
136
|
- - "="
|
@@ -34,11 +143,11 @@ dependencies:
|
|
34
143
|
- 17
|
35
144
|
version: 2.0.0.beta.17
|
36
145
|
type: :development
|
37
|
-
|
146
|
+
prerelease: false
|
147
|
+
version_requirements: *id009
|
38
148
|
- !ruby/object:Gem::Dependency
|
39
149
|
name: rspec-rails
|
40
|
-
|
41
|
-
requirement: &id002 !ruby/object:Gem::Requirement
|
150
|
+
requirement: &id010 !ruby/object:Gem::Requirement
|
42
151
|
none: false
|
43
152
|
requirements:
|
44
153
|
- - "="
|
@@ -51,11 +160,11 @@ dependencies:
|
|
51
160
|
- 17
|
52
161
|
version: 2.0.0.beta.17
|
53
162
|
type: :development
|
54
|
-
|
163
|
+
prerelease: false
|
164
|
+
version_requirements: *id010
|
55
165
|
- !ruby/object:Gem::Dependency
|
56
166
|
name: jeweler
|
57
|
-
|
58
|
-
requirement: &id003 !ruby/object:Gem::Requirement
|
167
|
+
requirement: &id011 !ruby/object:Gem::Requirement
|
59
168
|
none: false
|
60
169
|
requirements:
|
61
170
|
- - ">="
|
@@ -66,7 +175,8 @@ dependencies:
|
|
66
175
|
- 0
|
67
176
|
version: 1.4.0
|
68
177
|
type: :development
|
69
|
-
|
178
|
+
prerelease: false
|
179
|
+
version_requirements: *id011
|
70
180
|
description: A Rails plugin for Japanese mobile-phones
|
71
181
|
email: dara@shidara.net
|
72
182
|
executables: []
|
@@ -76,7 +186,6 @@ extensions: []
|
|
76
186
|
extra_rdoc_files:
|
77
187
|
- README.rdoc
|
78
188
|
files:
|
79
|
-
- .gitignore
|
80
189
|
- .rspec
|
81
190
|
- CHANGELOG
|
82
191
|
- Gemfile
|
@@ -154,17 +263,22 @@ files:
|
|
154
263
|
- test/rails/overrides/app/controllers/filter_controller.rb
|
155
264
|
- test/rails/overrides/app/controllers/filter_controller_base.rb
|
156
265
|
- test/rails/overrides/app/controllers/hankaku_filter_controller.rb
|
266
|
+
- test/rails/overrides/app/controllers/hankaku_input_filter_controller.rb
|
157
267
|
- test/rails/overrides/app/controllers/links_controller.rb
|
158
268
|
- test/rails/overrides/app/controllers/mobile_spec_controller.rb
|
159
269
|
- test/rails/overrides/app/controllers/template_path_controller.rb
|
160
270
|
- test/rails/overrides/app/controllers/trans_sid_always_and_session_off_controller.rb
|
161
271
|
- test/rails/overrides/app/controllers/trans_sid_always_controller.rb
|
162
272
|
- test/rails/overrides/app/controllers/trans_sid_base_controller.rb
|
273
|
+
- test/rails/overrides/app/controllers/trans_sid_metal_controller.rb
|
163
274
|
- test/rails/overrides/app/controllers/trans_sid_mobile_controller.rb
|
164
275
|
- test/rails/overrides/app/controllers/trans_sid_none_controller.rb
|
165
276
|
- test/rails/overrides/app/models/user.rb
|
166
277
|
- test/rails/overrides/app/views/filter/index.html.erb
|
167
278
|
- test/rails/overrides/app/views/hankaku_filter/index.html.erb
|
279
|
+
- test/rails/overrides/app/views/hankaku_input_filter/index.html.erb
|
280
|
+
- test/rails/overrides/app/views/hankaku_input_filter/index_xhtml.html.erb
|
281
|
+
- test/rails/overrides/app/views/layouts/xhtml.html.erb
|
168
282
|
- test/rails/overrides/app/views/links/au_gps.html.erb
|
169
283
|
- test/rails/overrides/app/views/links/au_location.html.erb
|
170
284
|
- test/rails/overrides/app/views/links/docomo_foma_gps.html.erb
|
@@ -217,8 +331,8 @@ homepage: http://github.com/jpmobile/jpmobile
|
|
217
331
|
licenses: []
|
218
332
|
|
219
333
|
post_install_message:
|
220
|
-
rdoc_options:
|
221
|
-
|
334
|
+
rdoc_options: []
|
335
|
+
|
222
336
|
require_paths:
|
223
337
|
- lib
|
224
338
|
required_ruby_version: !ruby/object:Gem::Requirement
|
@@ -245,57 +359,59 @@ signing_key:
|
|
245
359
|
specification_version: 3
|
246
360
|
summary: A Rails plugin for Japanese mobile-phones
|
247
361
|
test_files:
|
248
|
-
- spec/rack/jpmobile/
|
362
|
+
- spec/rack/jpmobile/android_spec.rb
|
249
363
|
- spec/rack/jpmobile/au_spec.rb
|
250
|
-
- spec/rack/jpmobile/willcom_spec.rb
|
251
|
-
- spec/rack/jpmobile/params_filter_spec.rb
|
252
364
|
- spec/rack/jpmobile/docomo_spec.rb
|
365
|
+
- spec/rack/jpmobile/emoticon_spec.rb
|
253
366
|
- spec/rack/jpmobile/filter_spec.rb
|
254
|
-
- spec/rack/jpmobile/windows_phone.rb
|
255
|
-
- spec/rack/jpmobile/mobile_by_ua_spec.rb
|
256
367
|
- spec/rack/jpmobile/iphone_spec.rb
|
368
|
+
- spec/rack/jpmobile/mobile_by_ua_spec.rb
|
369
|
+
- spec/rack/jpmobile/params_filter_spec.rb
|
257
370
|
- spec/rack/jpmobile/softbank_spec.rb
|
258
|
-
- spec/rack/jpmobile/
|
371
|
+
- spec/rack/jpmobile/willcom_spec.rb
|
372
|
+
- spec/rack/jpmobile/windows_phone.rb
|
373
|
+
- spec/rack_helper.rb
|
374
|
+
- spec/spec_helper.rb
|
259
375
|
- spec/unit/detect_by_email_spec.rb
|
376
|
+
- spec/unit/is_carrier_spec.rb
|
260
377
|
- spec/unit/spec_helper.rb
|
261
|
-
- spec/unit/valid_ip_spec.rb
|
262
378
|
- spec/unit/util_spec.rb
|
263
|
-
- spec/unit/
|
264
|
-
- spec/spec_helper.rb
|
265
|
-
- spec/rack_helper.rb
|
379
|
+
- spec/unit/valid_ip_spec.rb
|
266
380
|
- test/legacy/emoticon_test.rb
|
267
381
|
- test/legacy/helper.rb
|
268
|
-
- test/
|
269
|
-
- test/
|
270
|
-
- test/rails/overrides/
|
271
|
-
- test/rails/overrides/spec/requests/softbank_emulator_spec.rb
|
272
|
-
- test/rails/overrides/spec/requests/docomo_spec.rb
|
273
|
-
- test/rails/overrides/spec/requests/helpers_spec.rb
|
274
|
-
- test/rails/overrides/spec/requests/docomo_guid_spec.rb
|
275
|
-
- test/rails/overrides/spec/requests/trans_sid_spec.rb
|
276
|
-
- test/rails/overrides/spec/requests/template_path_spec.rb
|
277
|
-
- test/rails/overrides/spec/requests/filter_spec.rb
|
278
|
-
- test/rails/overrides/spec/requests/pc_spec.rb
|
279
|
-
- test/rails/overrides/spec/requests/emobile_spec.rb
|
280
|
-
- test/rails/overrides/spec/spec_helper.rb
|
281
|
-
- test/rails/overrides/autotest/discover.rb
|
282
|
-
- test/rails/overrides/app/models/user.rb
|
283
|
-
- test/rails/overrides/app/controllers/trans_sid_always_controller.rb
|
284
|
-
- test/rails/overrides/app/controllers/hankaku_filter_controller.rb
|
285
|
-
- test/rails/overrides/app/controllers/filter_controller_base.rb
|
286
|
-
- test/rails/overrides/app/controllers/links_controller.rb
|
287
|
-
- test/rails/overrides/app/controllers/trans_sid_base_controller.rb
|
288
|
-
- test/rails/overrides/app/controllers/trans_sid_none_controller.rb
|
289
|
-
- test/rails/overrides/app/controllers/trans_sid_always_and_session_off_controller.rb
|
290
|
-
- test/rails/overrides/app/controllers/template_path_controller.rb
|
382
|
+
- test/rails/overrides/app/controllers/application_controller.rb
|
383
|
+
- test/rails/overrides/app/controllers/docomo_guid_always_controller.rb
|
384
|
+
- test/rails/overrides/app/controllers/docomo_guid_base_controller.rb
|
291
385
|
- test/rails/overrides/app/controllers/docomo_guid_docomo_controller.rb
|
292
386
|
- test/rails/overrides/app/controllers/filter_controller.rb
|
387
|
+
- test/rails/overrides/app/controllers/filter_controller_base.rb
|
388
|
+
- test/rails/overrides/app/controllers/hankaku_filter_controller.rb
|
389
|
+
- test/rails/overrides/app/controllers/hankaku_input_filter_controller.rb
|
390
|
+
- test/rails/overrides/app/controllers/links_controller.rb
|
293
391
|
- test/rails/overrides/app/controllers/mobile_spec_controller.rb
|
392
|
+
- test/rails/overrides/app/controllers/template_path_controller.rb
|
393
|
+
- test/rails/overrides/app/controllers/trans_sid_always_and_session_off_controller.rb
|
394
|
+
- test/rails/overrides/app/controllers/trans_sid_always_controller.rb
|
395
|
+
- test/rails/overrides/app/controllers/trans_sid_base_controller.rb
|
396
|
+
- test/rails/overrides/app/controllers/trans_sid_metal_controller.rb
|
294
397
|
- test/rails/overrides/app/controllers/trans_sid_mobile_controller.rb
|
295
|
-
- test/rails/overrides/app/controllers/
|
296
|
-
- test/rails/overrides/app/
|
297
|
-
- test/rails/overrides/
|
298
|
-
- test/rails/overrides/db/migrate/20100824062306_create_users.rb
|
299
|
-
- test/rails/overrides/db/migrate/001_add_sessions_table.rb
|
300
|
-
- test/rails/overrides/config/routes.rb
|
398
|
+
- test/rails/overrides/app/controllers/trans_sid_none_controller.rb
|
399
|
+
- test/rails/overrides/app/models/user.rb
|
400
|
+
- test/rails/overrides/autotest/discover.rb
|
301
401
|
- test/rails/overrides/config/initializers/jpmobile_generator.rb
|
402
|
+
- test/rails/overrides/config/routes.rb
|
403
|
+
- test/rails/overrides/db/migrate/001_add_sessions_table.rb
|
404
|
+
- test/rails/overrides/db/migrate/20100824062306_create_users.rb
|
405
|
+
- test/rails/overrides/spec/helpers/helpers_spec.rb
|
406
|
+
- test/rails/overrides/spec/requests/docomo_guid_spec.rb
|
407
|
+
- test/rails/overrides/spec/requests/docomo_spec.rb
|
408
|
+
- test/rails/overrides/spec/requests/emobile_spec.rb
|
409
|
+
- test/rails/overrides/spec/requests/filter_spec.rb
|
410
|
+
- test/rails/overrides/spec/requests/helpers_spec.rb
|
411
|
+
- test/rails/overrides/spec/requests/pc_spec.rb
|
412
|
+
- test/rails/overrides/spec/requests/softbank_emulator_spec.rb
|
413
|
+
- test/rails/overrides/spec/requests/template_path_spec.rb
|
414
|
+
- test/rails/overrides/spec/requests/trans_sid_spec.rb
|
415
|
+
- test/rails/overrides/spec/spec_helper.rb
|
416
|
+
- test/sinatra/guestbook.rb
|
417
|
+
- test/sinatra/test/filter_test.rb
|