jpmobile 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (96) hide show
  1. data/README +41 -4
  2. data/Rakefile +11 -9
  3. data/lib/jpmobile.rb +0 -6
  4. data/lib/jpmobile/emoticon.rb +105 -0
  5. data/lib/jpmobile/emoticon/au.rb +644 -0
  6. data/lib/jpmobile/emoticon/conversion_table.rb +3908 -0
  7. data/lib/jpmobile/emoticon/docomo.rb +255 -0
  8. data/lib/jpmobile/emoticon/softbank.rb +477 -0
  9. data/lib/jpmobile/emoticon/z_combine.rb +20 -0
  10. data/lib/jpmobile/filter.rb +73 -51
  11. data/lib/jpmobile/helpers.rb +4 -4
  12. data/lib/jpmobile/hook_abstract_request.rb +6 -2
  13. data/lib/jpmobile/hook_action_controller.rb +10 -0
  14. data/lib/jpmobile/hook_action_view.rb +7 -0
  15. data/lib/jpmobile/mobile/abstract_mobile.rb +5 -1
  16. data/lib/jpmobile/mobile/au.rb +1 -1
  17. data/lib/jpmobile/mobile/docomo.rb +2 -5
  18. data/lib/jpmobile/mobile/softbank.rb +9 -1
  19. data/lib/jpmobile/mobile/z_display_info_docomo.rb +32 -10
  20. data/lib/jpmobile/mobile/z_ip_addresses.rb +6 -6
  21. data/lib/jpmobile/mobile/z_ip_addresses_au.rb +2 -1
  22. data/lib/jpmobile/mobile/z_ip_addresses_willcom.rb +6 -1
  23. data/lib/jpmobile/trans_sid.rb +5 -2
  24. data/lib/jpmobile/version.rb +1 -1
  25. data/test/au_test.rb +1 -0
  26. data/test/docomo_test.rb +8 -0
  27. data/test/emoticon_functional_test.rb +166 -0
  28. data/test/emoticon_test.rb +58 -0
  29. data/test/filter_functional_test.rb +146 -0
  30. data/test/filter_test.rb +8 -8
  31. data/test/softbank_test.rb +18 -0
  32. data/tools/generate_au_emoticon_table.rb +25 -0
  33. data/tools/{update_emoji_docomo.rb → generate_docomo_emoticon_table.rb} +4 -8
  34. data/tools/generate_emoticon_conversion_table.rb +107 -0
  35. data/tools/generate_softbank_emoticon_table.rb +32 -0
  36. data/tools/update_display_info_docomo.rb +3 -5
  37. metadata +18 -75
  38. data/NOTES +0 -21
  39. data/TODO +0 -16
  40. data/doc/classes/ActionController.html +0 -107
  41. data/doc/classes/ActionController/AbstractRequest.html +0 -216
  42. data/doc/classes/ActionView.html +0 -101
  43. data/doc/classes/DatumConv.html +0 -324
  44. data/doc/classes/Jpmobile/Display.html +0 -333
  45. data/doc/classes/Jpmobile/Filter.html +0 -119
  46. data/doc/classes/Jpmobile/Filter/Base.html +0 -269
  47. data/doc/classes/Jpmobile/Filter/Emoji.html +0 -130
  48. data/doc/classes/Jpmobile/Filter/Emoji/Inner.html +0 -183
  49. data/doc/classes/Jpmobile/Filter/Emoji/Outer.html +0 -187
  50. data/doc/classes/Jpmobile/Filter/FilterTable.html +0 -178
  51. data/doc/classes/Jpmobile/Filter/HankakuKana.html +0 -170
  52. data/doc/classes/Jpmobile/Filter/Sjis.html +0 -244
  53. data/doc/classes/Jpmobile/Helpers.html +0 -558
  54. data/doc/classes/Jpmobile/Mobile.html +0 -141
  55. data/doc/classes/Jpmobile/Mobile/AbstractMobile.html +0 -324
  56. data/doc/classes/Jpmobile/Mobile/Au.html +0 -415
  57. data/doc/classes/Jpmobile/Mobile/Ddipocket.html +0 -138
  58. data/doc/classes/Jpmobile/Mobile/Docomo.html +0 -366
  59. data/doc/classes/Jpmobile/Mobile/Jphone.html +0 -212
  60. data/doc/classes/Jpmobile/Mobile/Softbank.html +0 -300
  61. data/doc/classes/Jpmobile/Mobile/Vodafone.html +0 -176
  62. data/doc/classes/Jpmobile/Mobile/Willcom.html +0 -210
  63. data/doc/classes/Jpmobile/Position.html +0 -384
  64. data/doc/created.rid +0 -1
  65. data/doc/files/CHANGELOG.html +0 -110
  66. data/doc/files/NOTES.html +0 -163
  67. data/doc/files/README.html +0 -345
  68. data/doc/files/TODO.html +0 -138
  69. data/doc/files/lib/jpmobile/datum_conv_rb.html +0 -110
  70. data/doc/files/lib/jpmobile/filter_rb.html +0 -115
  71. data/doc/files/lib/jpmobile/helpers_rb.html +0 -105
  72. data/doc/files/lib/jpmobile/hook_abstract_request_rb.html +0 -109
  73. data/doc/files/lib/jpmobile/hook_action_view_rb.html +0 -119
  74. data/doc/files/lib/jpmobile/mobile/abstract_mobile_rb.html +0 -108
  75. data/doc/files/lib/jpmobile/mobile/au_rb.html +0 -112
  76. data/doc/files/lib/jpmobile/mobile/display_rb.html +0 -111
  77. data/doc/files/lib/jpmobile/mobile/docomo_rb.html +0 -105
  78. data/doc/files/lib/jpmobile/mobile/softbank_rb.html +0 -115
  79. data/doc/files/lib/jpmobile/mobile/willcom_rb.html +0 -108
  80. data/doc/files/lib/jpmobile/mobile/z_display_info_docomo_rb.html +0 -114
  81. data/doc/files/lib/jpmobile/mobile/z_emoji_docomo_rb.html +0 -119
  82. data/doc/files/lib/jpmobile/mobile/z_ip_addresses_au_rb.html +0 -114
  83. data/doc/files/lib/jpmobile/mobile/z_ip_addresses_rb.html +0 -117
  84. data/doc/files/lib/jpmobile/mobile/z_ip_addresses_willcom_rb.html +0 -114
  85. data/doc/files/lib/jpmobile/position_rb.html +0 -105
  86. data/doc/files/lib/jpmobile/trans_sid_rb.html +0 -114
  87. data/doc/files/lib/jpmobile/version_rb.html +0 -101
  88. data/doc/files/lib/jpmobile_rb.html +0 -101
  89. data/doc/fr_class_index.html +0 -50
  90. data/doc/fr_file_index.html +0 -50
  91. data/doc/fr_method_index.html +0 -113
  92. data/doc/index.html +0 -24
  93. data/doc/rdoc-style.css +0 -208
  94. data/lib/jpmobile/mobile/z_emoji_docomo.rb +0 -508
  95. data/test/firefox_test.rb +0 -8
  96. data/test/transitsid_test.rb +0 -86
data/doc/created.rid DELETED
@@ -1 +0,0 @@
1
- Sat, 16 Jun 2007 11:02:22 +0900
@@ -1,110 +0,0 @@
1
- <?xml version="1.0" encoding=" UTF-8"?>
2
- <!DOCTYPE html
3
- PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
-
6
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
- <head>
8
- <title>File: CHANGELOG</title>
9
- <meta http-equiv="Content-Type" content="text/html; charset= UTF-8" />
10
- <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
- <link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
12
- <script type="text/javascript">
13
- // <![CDATA[
14
-
15
- function popupCode( url ) {
16
- window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
- }
18
-
19
- function toggleCode( id ) {
20
- if ( document.getElementById )
21
- elem = document.getElementById( id );
22
- else if ( document.all )
23
- elem = eval( "document.all." + id );
24
- else
25
- return false;
26
-
27
- elemStyle = elem.style;
28
-
29
- if ( elemStyle.display != "block" ) {
30
- elemStyle.display = "block"
31
- } else {
32
- elemStyle.display = "none"
33
- }
34
-
35
- return true;
36
- }
37
-
38
- // Make codeblocks hidden by default
39
- document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
-
41
- // ]]>
42
- </script>
43
-
44
- </head>
45
- <body>
46
-
47
-
48
-
49
- <div id="fileHeader">
50
- <h1>CHANGELOG</h1>
51
- <table class="header-table">
52
- <tr class="top-aligned-row">
53
- <td><strong>Path:</strong></td>
54
- <td>CHANGELOG
55
- </td>
56
- </tr>
57
- <tr class="top-aligned-row">
58
- <td><strong>Last Update:</strong></td>
59
- <td>Sat Jun 16 10:38:44 +0900 2007</td>
60
- </tr>
61
- </table>
62
- </div>
63
- <!-- banner header -->
64
-
65
- <div id="bodyContent">
66
-
67
-
68
-
69
- <div id="contextContent">
70
-
71
- <div id="description">
72
- <h2>0.0.1 2007-06-16</h2>
73
- <ul>
74
- <li>Initial release
75
-
76
- </li>
77
- </ul>
78
-
79
- </div>
80
-
81
-
82
- </div>
83
-
84
-
85
- </div>
86
-
87
-
88
- <!-- if includes -->
89
-
90
- <div id="section">
91
-
92
-
93
-
94
-
95
-
96
-
97
-
98
-
99
- <!-- if method_list -->
100
-
101
-
102
- </div>
103
-
104
-
105
- <div id="validator-badges">
106
- <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
107
- </div>
108
-
109
- </body>
110
- </html>
data/doc/files/NOTES.html DELETED
@@ -1,163 +0,0 @@
1
- <?xml version="1.0" encoding=" UTF-8"?>
2
- <!DOCTYPE html
3
- PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
-
6
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
- <head>
8
- <title>File: NOTES</title>
9
- <meta http-equiv="Content-Type" content="text/html; charset= UTF-8" />
10
- <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
- <link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
12
- <script type="text/javascript">
13
- // <![CDATA[
14
-
15
- function popupCode( url ) {
16
- window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
- }
18
-
19
- function toggleCode( id ) {
20
- if ( document.getElementById )
21
- elem = document.getElementById( id );
22
- else if ( document.all )
23
- elem = eval( "document.all." + id );
24
- else
25
- return false;
26
-
27
- elemStyle = elem.style;
28
-
29
- if ( elemStyle.display != "block" ) {
30
- elemStyle.display = "block"
31
- } else {
32
- elemStyle.display = "none"
33
- }
34
-
35
- return true;
36
- }
37
-
38
- // Make codeblocks hidden by default
39
- document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
-
41
- // ]]>
42
- </script>
43
-
44
- </head>
45
- <body>
46
-
47
-
48
-
49
- <div id="fileHeader">
50
- <h1>NOTES</h1>
51
- <table class="header-table">
52
- <tr class="top-aligned-row">
53
- <td><strong>Path:</strong></td>
54
- <td>NOTES
55
- </td>
56
- </tr>
57
- <tr class="top-aligned-row">
58
- <td><strong>Last Update:</strong></td>
59
- <td>Sat Jun 16 00:30:42 +0900 2007</td>
60
- </tr>
61
- </table>
62
- </div>
63
- <!-- banner header -->
64
-
65
- <div id="bodyContent">
66
-
67
-
68
-
69
- <div id="contextContent">
70
-
71
- <div id="description">
72
- <h1>参考になる情報など</h1>
73
- <h2>DoCoMo</h2>
74
- <ul>
75
- <li>FOMA位置情報: <a
76
- href="http://www.nttdocomo.co.jp/service/imode/make/content/html/outline/gps.html">www.nttdocomo.co.jp/service/imode/make/content/html/outline/gps.html</a>
77
-
78
- </li>
79
- <li>オープンiエリア: <a
80
- href="http://www.nttdocomo.co.jp/service/imode/make/content/iarea/index.html">www.nttdocomo.co.jp/service/imode/make/content/iarea/index.html</a>
81
-
82
- </li>
83
- <li>IPアドレス帯域: <a
84
- href="http://www.nttdocomo.co.jp/service/imode/make/content/ip/about">www.nttdocomo.co.jp/service/imode/make/content/ip/about</a>/
85
-
86
- </li>
87
- </ul>
88
- <h2>au</h2>
89
- <ul>
90
- <li>簡易位置情報: <a
91
- href="http://www.au.kddi.com/ezfactory/tec/spec/eznavi.html">www.au.kddi.com/ezfactory/tec/spec/eznavi.html</a>
92
-
93
- </li>
94
- <li>IPアドレス帯域: <a
95
- href="http://www.au.kddi.com/ezfactory/tec/spec/ezsava_ip.html">www.au.kddi.com/ezfactory/tec/spec/ezsava_ip.html</a>
96
-
97
- </li>
98
- </ul>
99
- <h2>SoftBank</h2>
100
- <p>
101
- <a
102
- href="http://developers.softbankmobile.co.jp/dp/tool_dl/download.php?docid=120">developers.softbankmobile.co.jp/dp/tool_dl/download.php?docid=120</a>
103
- </p>
104
- <ul>
105
- <li>J-PHONEの位置情報-&gt;70ページ
106
-
107
- </li>
108
- <li>Vodafone 3G/Softbank携帯の位置情報-&gt;71ページ
109
-
110
- </li>
111
- <li>ユーザエージェントについて: <a
112
- href="http://developers.softbankmobile.co.jp/dp/tool_dl/web/useragent.php">developers.softbankmobile.co.jp/dp/tool_dl/web/useragent.php</a>
113
-
114
- </li>
115
- <li>IPアドレス帯域: <a
116
- href="http://developers.softbankmobile.co.jp/dp/tech_svc/web/ip.php">developers.softbankmobile.co.jp/dp/tech_svc/web/ip.php</a>
117
-
118
- </li>
119
- </ul>
120
- <h2>Willcom</h2>
121
- <ul>
122
- <li>位置情報: <a
123
- href="http://www.willcom-inc.com/ja/biz/service/location/index.html">www.willcom-inc.com/ja/biz/service/location/index.html</a>
124
-
125
- </li>
126
- <li>IPアドレス帯域: <a
127
- href="http://www.willcom-inc.com/ja/service/contents_service/club_air_edge/for_phone/ip/index.html">www.willcom-inc.com/ja/service/contents_service/club_air_edge/for_phone/ip/index.html</a>
128
-
129
- </li>
130
- </ul>
131
-
132
- </div>
133
-
134
-
135
- </div>
136
-
137
-
138
- </div>
139
-
140
-
141
- <!-- if includes -->
142
-
143
- <div id="section">
144
-
145
-
146
-
147
-
148
-
149
-
150
-
151
-
152
- <!-- if method_list -->
153
-
154
-
155
- </div>
156
-
157
-
158
- <div id="validator-badges">
159
- <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
160
- </div>
161
-
162
- </body>
163
- </html>
@@ -1,345 +0,0 @@
1
- <?xml version="1.0" encoding=" UTF-8"?>
2
- <!DOCTYPE html
3
- PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
-
6
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
- <head>
8
- <title>File: README</title>
9
- <meta http-equiv="Content-Type" content="text/html; charset= UTF-8" />
10
- <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
- <link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
12
- <script type="text/javascript">
13
- // <![CDATA[
14
-
15
- function popupCode( url ) {
16
- window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
- }
18
-
19
- function toggleCode( id ) {
20
- if ( document.getElementById )
21
- elem = document.getElementById( id );
22
- else if ( document.all )
23
- elem = eval( "document.all." + id );
24
- else
25
- return false;
26
-
27
- elemStyle = elem.style;
28
-
29
- if ( elemStyle.display != "block" ) {
30
- elemStyle.display = "block"
31
- } else {
32
- elemStyle.display = "none"
33
- }
34
-
35
- return true;
36
- }
37
-
38
- // Make codeblocks hidden by default
39
- document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
-
41
- // ]]>
42
- </script>
43
-
44
- </head>
45
- <body>
46
-
47
-
48
-
49
- <div id="fileHeader">
50
- <h1>README</h1>
51
- <table class="header-table">
52
- <tr class="top-aligned-row">
53
- <td><strong>Path:</strong></td>
54
- <td>README
55
- </td>
56
- </tr>
57
- <tr class="top-aligned-row">
58
- <td><strong>Last Update:</strong></td>
59
- <td>Sat Jun 16 00:30:42 +0900 2007</td>
60
- </tr>
61
- </table>
62
- </div>
63
- <!-- banner header -->
64
-
65
- <div id="bodyContent">
66
-
67
-
68
-
69
- <div id="contextContent">
70
-
71
- <div id="description">
72
- <h1>jpmobile: A Rails plugin for Japanese mobile-phones</h1>
73
- <h2>jpmobileとは</h2>
74
- <p>
75
- 携帯電話特有の機能を Rails
76
- で利用するためのプラグイン。 以下の機能を備える。
77
- </p>
78
- <ul>
79
- <li>携帯電話のキャリア判別
80
-
81
- </li>
82
- <li>端末位置情報の取得
83
-
84
- </li>
85
- <li>端末製造番号、契約者番号等の取得
86
-
87
- </li>
88
- <li>IPアドレスの検証(キャリアが公開しているIPアドレス帯域からのアクセスか判定)
89
-
90
- </li>
91
- <li>セッションIDをフォーム/リンクに付与(Transit SID)
92
-
93
- </li>
94
- <li>携帯電話ビューへの自動振分け
95
-
96
- </li>
97
- <li>ディスプレイ情報(画面サイズ、ブラウザ画面サイズ、カラー・白黒、色数)の取得
98
-
99
- </li>
100
- <li>GeoKit(<a
101
- href="http://geokit.rubyforge.org">geokit.rubyforge.org</a>)との連携
102
-
103
- </li>
104
- </ul>
105
- <h2>インストール</h2>
106
- <p>
107
- svnレポジトリからインストールする場合
108
- </p>
109
- <pre>
110
- % ./script/plugin install svn://rubyforge.org/var/svn/jpmobile/trunk/jpmobile
111
- </pre>
112
- <h2>使用例</h2>
113
- <h3>携帯電話の識別</h3>
114
- <h4>Viewの中で一部を切替える例</h4>
115
- <pre>
116
- &lt;% if request.mobile? %&gt;
117
- 携帯電話からのアクセスです。
118
- &lt;% else %&gt;
119
- 携帯電話からのアクセスではありません。
120
- &lt;% end %&gt;
121
- </pre>
122
- <h4>別に用意した携帯電話用コントローラへリダイレクトする例</h4>
123
- <pre>
124
- class PcController &lt; ApplicationController
125
- before_filter :redirect_if_mobile
126
-
127
- def index
128
- end
129
-
130
- private
131
- def redirect_if_mobile
132
- if request.mobile?
133
- pa = params.dup
134
- pa[:controller] = &quot;/mobile&quot;
135
- redirect_to pa
136
- end
137
- end
138
- end
139
-
140
- class MobileController &lt; ApplicationController
141
- after_filter :to_sjis
142
-
143
- def index
144
- end
145
-
146
- private
147
- def to_sjis
148
- @headers[&quot;Content-Type&quot;] = &quot;text/html; charset=Shift_JIS&quot;
149
- response.body = response.body.tosjis
150
- end
151
- end
152
- </pre>
153
- <h3>携帯電話viewの自動振分け</h3>
154
- <p>
155
- DoCoMo携帯電話からアクセスすると、
156
- </p>
157
- <ul>
158
- <li>index_mobile_docomo.rhtml
159
-
160
- </li>
161
- <li>index_mobile.rhtml
162
-
163
- </li>
164
- <li>index.rhtml
165
-
166
- </li>
167
- </ul>
168
- <p>
169
- の順でテンプレートを検索し、最初に見付かったテンプレートが利用される。
170
- Auの場合は、index_mobile_au.rhtml、Softbankの場合はindex_mobile_softbank.rhtmlが最初に検索される。
171
- </p>
172
- <h4>キャリアの識別</h4>
173
- <pre>
174
- case request.mobile
175
- when Jpmobile::Mobile::Docomo
176
- # for DoCoMo
177
- when Jpmobile::Mobile::Au
178
- # for au
179
- when Jpmobile::Mobile::Softbank
180
- # for SoftBank
181
- when Jpmobile::Mobile::Willcom
182
- # for Willcom
183
- else
184
- # for PC
185
- end
186
- </pre>
187
- <p>
188
- あるいは
189
- </p>
190
- <pre>
191
- if request.mobile.is_a?(Jpmobile::Mobile::Docomo)
192
- # for DoCoMo
193
- end
194
- </pre>
195
- <h3>位置情報の取得</h3>
196
- <h4>取得用リンクの生成</h4>
197
- <p>
198
- 以下のようなコードで、端末に位置情報を要求するリンクを出力する。
199
- </p>
200
- <pre>
201
- &lt;%= link_to_get_position(:action=&gt;:gps) %&gt;
202
- </pre>
203
- <h4>位置情報の取得</h4>
204
- <pre>
205
- class MobileController &lt; ApplicationController
206
- def gps
207
- if request.mobile &amp;&amp; pos = request.mobile.position
208
- @latitude = pos.lat
209
- @longuitude = pos.lon
210
- end
211
- end
212
- end
213
- </pre>
214
- <h3>端末情報の取得</h3>
215
- <p>
216
- 端末側から通知されている場合、
217
- 契約に固有の識別子もしくは端末の製造番号を取得できる。
218
- 両方存在する場合は契約に固有のIDが優先される。
219
- </p>
220
- <ul>
221
- <li>契約に固有のID
222
-
223
- <ul>
224
- <li>au: EZ番号(サブスクライバ番号)
225
-
226
- </li>
227
- <li>DoCoMo: FOMAカード製造番号
228
-
229
- </li>
230
- </ul>
231
- </li>
232
- <li>端末製造番号
233
-
234
- <ul>
235
- <li>DoCoMo: 端末製造番号(FOMA, MOVA)
236
-
237
- </li>
238
- <li>SoftBank: 製造番号
239
-
240
- </li>
241
- </ul>
242
- </li>
243
- </ul>
244
- <h3>IPの検証</h3>
245
- <p>
246
- キャリアが公開しているIPアドレス帯域からのアクセスか判定する。
247
- </p>
248
- <pre>
249
- request.mobile.valid_ip?
250
- </pre>
251
- <h3>セッションIDの付与(Transit SID)</h3>
252
- <h4>Cookie非対応携帯だけに付与する</h4>
253
- <pre>
254
- class MyController
255
- transit_sid
256
- end
257
- </pre>
258
- <h4>PCにも付与する</h4>
259
- <pre>
260
- class MyController
261
- transit_sid :always
262
- end
263
- </pre>
264
- <h3>端末の画面サイズ</h3>
265
- <p>
266
- request.mobile.display で <a
267
- href="../classes/Jpmobile/Display.html">Jpmobile::Display</a>
268
- クラスのインスタンスが返る。
269
- </p>
270
- <pre>
271
- 画面幅 &lt;%= request.mobile.display.width %&gt;
272
- 画面高さ &lt;%= request.mobile.display.height %&gt;
273
- </pre>
274
- <h3>GeoKit(<a href="http://geokit.rubyforge.org">geokit.rubyforge.org</a>)との連携</h3>
275
- <p>
276
- vandor/plugins/geokit以下にGeoKitがインストールされていると、<a
277
- href="../classes/Jpmobile/Position.html">Jpmobile::Position</a>にGeoKit::Mappableがincludeされる。したがって、
278
- </p>
279
- <pre>
280
- request.mobile.position.distance_to('札幌駅')
281
- </pre>
282
- <p>
283
- とすることで、端末と「札幌駅」との距離を求めることができる。詳細は
284
- <a
285
- href="http://geokit.rubyforge.org/api/index.html">geokit.rubyforge.org/api/index.html</a>
286
- 参照。
287
- </p>
288
- <h2>リンク</h2>
289
- <ul>
290
- <li>Project Website: <a
291
- href="http://jpmobile.rubyforge.org">jpmobile.rubyforge.org</a>
292
-
293
- </li>
294
- <li>RubyForge Project Page: <a
295
- href="http://rubyforge.org/projects/jpmobile">rubyforge.org/projects/jpmobile</a>
296
-
297
- </li>
298
- <li>SVN Repository Browser: <a
299
- href="http://rubyforge.org/cgi-bin/viewvc.cgi/?root=jpmobile">rubyforge.org/cgi-bin/viewvc.cgi/?root=jpmobile</a>
300
-
301
- </li>
302
- </ul>
303
- <h2>作者</h2>
304
- <p>
305
- Copyright 2006 (c) Yohji Shidara, under MIT License.
306
- </p>
307
- <p>
308
- Yohji Shidara &lt;dara@shidara.net&gt;
309
- </p>
310
- <p>
311
- <a href="http://d.hatena.ne.jp/darashi">d.hatena.ne.jp/darashi</a>
312
- </p>
313
-
314
- </div>
315
-
316
-
317
- </div>
318
-
319
-
320
- </div>
321
-
322
-
323
- <!-- if includes -->
324
-
325
- <div id="section">
326
-
327
-
328
-
329
-
330
-
331
-
332
-
333
-
334
- <!-- if method_list -->
335
-
336
-
337
- </div>
338
-
339
-
340
- <div id="validator-badges">
341
- <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
342
- </div>
343
-
344
- </body>
345
- </html>