jpmobile 0.1.6 → 1.0.0.pre

Sign up to get free protection for your applications and to get access to all the features.
Files changed (73) hide show
  1. data/README +0 -0
  2. data/README.rdoc +58 -29
  3. data/Rakefile +1 -1
  4. data/VERSION.yml +4 -4
  5. data/lib/jpmobile.rb +3 -0
  6. data/lib/jpmobile/email.rb +17 -2
  7. data/lib/jpmobile/emoticon.rb +87 -23
  8. data/lib/jpmobile/emoticon/au.rb +644 -0
  9. data/lib/jpmobile/emoticon/softbank.rb +488 -0
  10. data/lib/jpmobile/emoticon/z_combine.rb +16 -13
  11. data/lib/jpmobile/hook_action_controller.rb +1 -13
  12. data/lib/jpmobile/hook_action_view.rb +3 -62
  13. data/lib/jpmobile/mail.rb +316 -0
  14. data/lib/jpmobile/mailer.rb +31 -0
  15. data/lib/jpmobile/mobile/abstract_mobile.rb +66 -0
  16. data/lib/jpmobile/mobile/au.rb +25 -2
  17. data/lib/jpmobile/mobile/docomo.rb +23 -1
  18. data/lib/jpmobile/mobile/emobile.rb +1 -1
  19. data/lib/jpmobile/mobile/softbank.rb +33 -1
  20. data/lib/jpmobile/mobile/vodafone.rb +1 -1
  21. data/lib/jpmobile/mobile/willcom.rb +1 -1
  22. data/lib/jpmobile/path_set.rb +40 -0
  23. data/lib/jpmobile/rails.rb +24 -0
  24. data/lib/jpmobile/resolver.rb +38 -0
  25. data/lib/jpmobile/util.rb +223 -14
  26. data/lib/tasks/jpmobile_tasks.rake +41 -48
  27. data/spec/rack/jpmobile/emoticon_spec.rb +3 -8
  28. data/spec/rack/jpmobile/filter_spec.rb +1 -1
  29. data/spec/rack/jpmobile/params_filter_spec.rb +4 -4
  30. data/spec/rack_helper.rb +5 -9
  31. data/spec/unit/detect_by_email_spec.rb +29 -0
  32. data/spec/unit/emoticon_spec.rb +90 -0
  33. data/spec/unit/encoding_spec.rb +102 -0
  34. data/spec/unit/mail_spec.rb +117 -0
  35. data/spec/unit/receive_mail_spec.rb +289 -0
  36. data/spec/unit/spec_helper.rb +8 -0
  37. data/spec/unit/util_spec.rb +5 -0
  38. data/test/rails/overrides/app/controllers/application_controller.rb +3 -2
  39. data/test/rails/overrides/app/controllers/template_path_controller.rb +8 -0
  40. data/test/rails/overrides/app/models/mobile_mailer.rb +19 -0
  41. data/test/rails/overrides/app/models/normal_mailer.rb +9 -0
  42. data/test/rails/overrides/spec/models/mobile_mailer_spec.rb +737 -0
  43. data/test/rails/overrides/spec/models/normal_mailer_spec.rb +34 -0
  44. data/test/rails/overrides/spec/requests/template_path_spec.rb +13 -7
  45. data/test/rails/overrides/spec/spec_helper.rb +6 -0
  46. data/test/rails/rails_root/app/controllers/application_controller.rb +3 -2
  47. data/test/rails/rails_root/app/controllers/template_path_controller.rb +8 -0
  48. data/test/rails/rails_root/app/models/mobile_mailer.rb +2 -1
  49. data/test/rails/rails_root/app/models/normal_mailer.rb +9 -0
  50. data/test/rails/rails_root/config/initializers/secret_token.rb +1 -1
  51. data/test/rails/rails_root/spec/models/mobile_mailer_spec.rb +73 -80
  52. data/test/rails/rails_root/spec/models/normal_mailer_spec.rb +34 -0
  53. data/test/rails/rails_root/spec/requests/template_path_spec.rb +13 -7
  54. data/test/rails/rails_root/spec/spec_helper.rb +1 -1
  55. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile.rb +2 -1
  56. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/emoticon.rb +7 -5
  57. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/hook_action_controller.rb +1 -13
  58. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/hook_action_view.rb +3 -62
  59. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mail.rb +162 -111
  60. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mailer.rb +31 -0
  61. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mobile/abstract_mobile.rb +34 -3
  62. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mobile/au.rb +2 -5
  63. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mobile/docomo.rb +4 -5
  64. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mobile/softbank.rb +7 -8
  65. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/path_set.rb +40 -0
  66. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/rack/params_filter.rb +1 -1
  67. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/rails.rb +24 -0
  68. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/resolver.rb +38 -0
  69. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/util.rb +33 -23
  70. metadata +43 -14
  71. data/test/legacy/emoticon_test.rb +0 -63
  72. data/test/legacy/helper.rb +0 -8
  73. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/hook_action_mailer.rb +0 -22
@@ -0,0 +1,117 @@
1
+ # -*- coding: utf-8 -*-
2
+ require File.join(File.expand_path(File.dirname(__FILE__)), 'spec_helper')
3
+ require 'mail'
4
+ require 'jpmobile/mail'
5
+
6
+ describe "Jpmobile::Mail" do
7
+ include Jpmobile::Util
8
+
9
+ before(:each) do
10
+ @mail = Mail.new
11
+ @mail.subject = "万葉"
12
+ @mail.body = "ほげ"
13
+ @mail.from = "info@jpmobile-rails.org"
14
+ end
15
+
16
+ context "Mail#to" do
17
+ it "sets multi-tos" do
18
+ expect{@mail.to = ["a@hoge.com", "b@hoge.com"]}.to_not raise_error
19
+ end
20
+ end
21
+
22
+ describe "AbstractMobile" do
23
+ before(:each) do
24
+ @mobile = Jpmobile::Mobile::AbstractMobile.new(nil, nil)
25
+ @mail.mobile = @mobile
26
+ @mail.to = "info+to@jpmobile-rails.org"
27
+ end
28
+
29
+ context "to_s" do
30
+ it "should contain encoded subject" do
31
+ ascii_8bit(@mail.to_s).should match(Regexp.compile(Regexp.escape("=?ISO-2022-JP?B?GyRCS3xNVRsoQg==?=")))
32
+ end
33
+
34
+ it "should contain encoded body" do
35
+ ascii_8bit(@mail.to_s).should match(Regexp.compile(Regexp.escape(ascii_8bit("\x1b\x24\x42\x24\x5B\x24\x32\e\x28\x42"))))
36
+ end
37
+ end
38
+ end
39
+
40
+ describe "Docomo" do
41
+ before(:each) do
42
+ @mobile = Jpmobile::Mobile::Docomo.new(nil, nil)
43
+ @mail.mobile = @mobile
44
+ @mail.to = "info+to@jpmobile-rails.org"
45
+ end
46
+
47
+ context "to_s" do
48
+ it "should contain encoded subject" do
49
+ @mail.to_s.should match(sjis_regexp("=?Shift_JIS?B?lpyXdA==?="))
50
+ end
51
+
52
+ it "should contain encoded body" do
53
+ @mail.to_s.should match(Regexp.escape(utf8_to_sjis("ほげ")))
54
+ end
55
+
56
+ it "should contains encoded emoticon" do
57
+ @mail.subject += ""
58
+ @mail.body = "#{@mail.body}"
59
+
60
+ @mail.to_s.should match(Regexp.escape("=?Shift_JIS?B?lpyXdPif?="))
61
+ @mail.to_s.should match(sjis_regexp("\xF8\x9F"))
62
+ end
63
+ end
64
+ end
65
+
66
+ describe "Au" do
67
+ before(:each) do
68
+ @mobile = Jpmobile::Mobile::Au.new(nil, nil)
69
+ @mail.mobile = @mobile
70
+ @mail.to = "info+to@jpmobile-rails.org"
71
+ end
72
+
73
+ context "to_s" do
74
+ it "should contain encoded subject" do
75
+ ascii_8bit(@mail.to_s).should match(Regexp.compile(Regexp.escape("=?ISO-2022-JP?B?GyRCS3xNVRsoQg==?=")))
76
+ end
77
+
78
+ it "should contain encoded body" do
79
+ ascii_8bit(@mail.to_s).should match(Regexp.compile(Regexp.escape(ascii_8bit("\x1b\x24\x42\x24\x5B\x24\x32\e\x28\x42"))))
80
+ end
81
+
82
+ it "should contain encoded emoticon" do
83
+ @mail.subject += ""
84
+ @mail.body = "#{@mail.body}"
85
+
86
+ ascii_8bit(@mail.to_s).should match(Regexp.compile(Regexp.escape("=?ISO-2022-JP?B?GyRCS3xNVRsoQhskQnVBGyhC?=")))
87
+ ascii_8bit(@mail.to_s).should match(Regexp.compile(Regexp.escape(ascii_8bit("\x1b\x24\x42\x75\x41\x1b\x28\x42"))))
88
+ end
89
+ end
90
+ end
91
+
92
+ describe "Softbank" do
93
+ before(:each) do
94
+ @mobile = Jpmobile::Mobile::Softbank.new(nil, nil)
95
+ @mail.mobile = @mobile
96
+ @mail.to = "info+to@jpmobile-rails.org"
97
+ end
98
+
99
+ context "to_s" do
100
+ it "should contain encoded subject" do
101
+ @mail.to_s.should match(Regexp.escape(sjis("=?Shift_JIS?B?lpyXdA==?=")))
102
+ end
103
+
104
+ it "should contain encoded body" do
105
+ @mail.to_s.should match(Regexp.escape(utf8_to_sjis("ほげ")))
106
+ end
107
+
108
+ it "should contains encoded emoticon" do
109
+ @mail.subject += ""
110
+ @mail.body = "#{@mail.body}"
111
+
112
+ @mail.to_s.should match(Regexp.escape("=?Shift_JIS?B?lpyXdPmL?="))
113
+ @mail.to_s.should match(sjis_regexp("\xf9\x8b"))
114
+ end
115
+ end
116
+ end
117
+ end
@@ -0,0 +1,289 @@
1
+ # -*- coding: utf-8 -*-
2
+ require File.join(File.expand_path(File.dirname(__FILE__)), 'spec_helper')
3
+ require 'mail'
4
+ require 'jpmobile/mail'
5
+
6
+ describe "Jpmobile::Mail#receive" do
7
+ include Jpmobile::Util
8
+
9
+ before(:each) do
10
+ @to = "info@jpmobile-rails.org"
11
+ end
12
+
13
+ describe "PC mail" do
14
+ before(:each) do
15
+ @mail = Mail.new(open(File.join(File.expand_path(File.dirname(__FILE__)), "email-fixtures/pc-mail-single.eml")).read)
16
+ end
17
+
18
+ it "subject should be parsed correctly" do
19
+ @mail.subject.should == "タイトルの長いメールの場合の対処を実装するためのテストケースとしてのメールに含まれている件名であるサブジェクト部分"
20
+ end
21
+
22
+ it "body should be parsed correctly" do
23
+ @mail.body.to_s.should == "本文です"
24
+ end
25
+
26
+ context "to_s" do
27
+ it "should have subject which is same as original" do
28
+ ascii_8bit(@mail.to_s).should match("GyRCJT8lJCVIJWskTkQ5JCQlYSE8JWskTj5s")
29
+ end
30
+
31
+ it "should have body which is same as original" do
32
+ ascii_8bit(@mail.to_s).should match(Regexp.compile(Regexp.escape(ascii_8bit(utf8_to_jis("本文です")))))
33
+ end
34
+ end
35
+
36
+ context "modify and to_s" do
37
+ it "should encode subject correctly" do
38
+ @mail.subject = "大江戸"
39
+ ascii_8bit(@mail.to_s).should match("GyRCQmc5PjhNGyhC")
40
+ end
41
+
42
+ it "should encode body correctly" do
43
+ @mail.body = "会議が開催"
44
+ ascii_8bit(@mail.to_s).should match(Regexp.compile(Regexp.escape(ascii_8bit(utf8_to_jis("会議が開催")))))
45
+ end
46
+ end
47
+ end
48
+
49
+ describe "multipart" do
50
+ describe "PC mail" do
51
+ before(:each) do
52
+ @mail = Mail.new(open(File.join(File.expand_path(File.dirname(__FILE__)), "email-fixtures/pc-mail-multi.eml")).read)
53
+ end
54
+
55
+ it "subject should be parsed correctly" do
56
+ @mail.subject.should == "タイトルの長いメールの場合の対処を実装するためのテストケースとしてのメールに含まれている件名であるサブジェクト部分"
57
+ end
58
+
59
+ it "body should be parsed correctly" do
60
+ @mail.body.parts.size.should == 2
61
+ @mail.body.parts.first.body.to_s.should == "本文です"
62
+ end
63
+
64
+ it "should encode correctly" do
65
+ ascii_8bit(@mail.to_s).should match(/GyRCJT8lJCVIJWskTkQ5JCQlYSE8JWskTj5s/)
66
+ end
67
+ end
68
+
69
+ describe "Docomo" do
70
+ before(:each) do
71
+ @mail = Mail.new(open(File.join(File.expand_path(File.dirname(__FILE__)), "../../test/rails/overrides/spec/fixtures/mobile_mailer/docomo-gmail-sjis.eml")).read)
72
+ end
73
+
74
+ it "subject should be parsed correctly" do
75
+ @mail.subject.should == "テスト"
76
+ end
77
+
78
+ it "body should be parsed correctly" do
79
+ @mail.body.parts.size.should == 1
80
+ @mail.body.parts.first.parts.size == 2
81
+ @mail.body.parts.first.parts.first.body.should match("テストです")
82
+ @mail.body.parts.first.parts.last.body.raw_source.should match("テストです")
83
+ end
84
+
85
+ it "should encode correctly" do
86
+ @mail.to_s.should match(Regexp.escape("g2WDWINn+ZE"))
87
+ end
88
+ end
89
+
90
+ describe "Au" do
91
+ before(:each) do
92
+ @mail = Mail.new(open(File.join(File.expand_path(File.dirname(__FILE__)), "../../test/rails/overrides/spec/fixtures/mobile_mailer/au-decomail.eml")).read)
93
+ end
94
+
95
+ it "subject should be parsed correctly" do
96
+ @mail.subject.should == "テスト"
97
+ end
98
+
99
+ it "body should be parsed correctly" do
100
+ @mail.body.parts.size.should == 1
101
+ @mail.body.parts.first.parts.size == 1
102
+ @mail.body.parts.first.parts.first.body.to_s.should match("テストです")
103
+ @mail.body.parts.first.parts.last.body.raw_source.should match("テストです")
104
+ end
105
+
106
+ it "should encode correctly" do
107
+ ascii_8bit(@mail.to_s).should match(Regexp.escape("GyRCJUYlOSVIGyhCGyRCdk8bKEI="))
108
+ end
109
+ end
110
+
111
+ describe "Softbank" do
112
+ context "Shift_JIS" do
113
+ before(:each) do
114
+ @mail = Mail.new(open(File.join(File.expand_path(File.dirname(__FILE__)), "../../test/rails/overrides/spec/fixtures/mobile_mailer/softbank-gmail-sjis.eml")).read)
115
+ end
116
+
117
+ it "subject should be parsed correctly" do
118
+ @mail.subject.should == "テスト"
119
+ end
120
+
121
+ it "body should be parsed correctly" do
122
+ @mail.body.parts.size.should == 2
123
+ @mail.body.parts.first.body.to_s.should == "テストです"
124
+ end
125
+
126
+ it "should encode correctly" do
127
+ @mail.to_s.should match(Regexp.escape("g2WDWINn98H3w/fB"))
128
+ end
129
+ end
130
+
131
+ context "UTF-8" do
132
+ before(:each) do
133
+ @mail = Mail.new(open(File.join(File.expand_path(File.dirname(__FILE__)), "../../test/rails/overrides/spec/fixtures/mobile_mailer/softbank-gmail-utf8.eml")).read)
134
+ end
135
+
136
+ it "subject should be parsed correctly" do
137
+ @mail.subject.should == "テストです"
138
+ end
139
+
140
+ it "body should be parsed correctly" do
141
+ @mail.body.parts.size.should == 2
142
+ @mail.body.parts.first.body.raw_source.should == "テストです"
143
+ end
144
+
145
+ it "should encode correctly to Shift_JIS" do
146
+ @mail.to_s.should match(Regexp.escape("g2WDWINngsWCt/fB"))
147
+ end
148
+ end
149
+ end
150
+ end
151
+
152
+ describe "Docomo" do
153
+ before(:each) do
154
+ @mail = Mail.new(open(File.join(File.expand_path(File.dirname(__FILE__)), "email-fixtures/docomo-emoji.eml")).read)
155
+ end
156
+
157
+ it "subject should be parsed correctly" do
158
+ @mail.subject.should == "題名"
159
+ end
160
+
161
+ it "body should be parsed correctly" do
162
+ @mail.body.to_s.should == "本文\nFor docomo"
163
+ end
164
+
165
+ context "to_s" do
166
+ it "should have subject which is same as original" do
167
+ @mail.to_s.should match(Regexp.escape("keiWvPjX"))
168
+ end
169
+
170
+ it "should have body which is same as original" do
171
+ @mail.to_s.should match(sjis_regexp(utf8_to_sjis("本文")))
172
+ end
173
+ end
174
+
175
+ context "modify and to_s" do
176
+ it "should encode subject correctly" do
177
+ @mail.subject = "大江戸"
178
+ @mail.to_s.should match(Regexp.escape("keWNXYzL+J8="))
179
+ end
180
+
181
+ it "should encode body correctly" do
182
+ @mail.body = "会議が開催"
183
+ @mail.to_s.should match(sjis_regexp(sjis("\x89\xEF\x8Bc\x82\xAA\x8AJ\x8D\xC3\xF8\xA7")))
184
+ end
185
+ end
186
+ end
187
+
188
+ describe "Au" do
189
+ before(:each) do
190
+ @mail = Mail.new(open(File.join(File.expand_path(File.dirname(__FILE__)), "email-fixtures/au-emoji.eml")).read)
191
+ end
192
+
193
+ it "subject should be parsed correctly" do
194
+ @mail.subject.should == "題名"
195
+ end
196
+
197
+ it "body should be parsed correctly" do
198
+ @mail.body.to_s.should == "本文\nFor au"
199
+ end
200
+
201
+ context "to_s" do
202
+ it "should have subject which is same as original" do
203
+ ascii_8bit(@mail.to_s).should match(Regexp.escape("GyRCQmpMPhsoQhskQnZeGyhC"))
204
+ end
205
+
206
+ it "should have body which is same as original" do
207
+ ascii_8bit(@mail.to_s).should match(Regexp.compile(Regexp.escape(ascii_8bit(utf8_to_jis("本文")))))
208
+ end
209
+ end
210
+
211
+ context "modify and to_s" do
212
+ it "should encode subject correctly" do
213
+ @mail.subject = "大江戸"
214
+ ascii_8bit(@mail.to_s).should match("GyRCQmc5PjhNGyhCGyRCdUEbKEI=")
215
+ end
216
+
217
+ it "should encode body correctly" do
218
+ @mail.body = "会議が開催"
219
+ ascii_8bit(@mail.to_s).should match(Regexp.compile(Regexp.escape(ascii_8bit("\x1b\x24\x42\x32\x71\x35\x44\x24\x2C\x33\x2B\x3A\x45\x1b\x28\x42\x1b\x24\x42\x75\x48\x1b\x28\x42"))))
220
+ end
221
+ end
222
+ end
223
+
224
+ describe "Softbank" do
225
+ before(:each) do
226
+ @mail = Mail.new(open(File.join(File.expand_path(File.dirname(__FILE__)), "email-fixtures/softbank-emoji.eml")).read)
227
+ end
228
+
229
+ it "subject should be parsed correctly" do
230
+ @mail.subject.should == "題名"
231
+ end
232
+
233
+ it "body should be parsed correctly" do
234
+ @mail.body.to_s.should == "本文\nFor softbank"
235
+ end
236
+
237
+ context "to_s" do
238
+ it "should have subject which is same as original" do
239
+ @mail.to_s.should match(sjis_regexp("keiWvPl8"))
240
+ end
241
+
242
+ it "should have body which is same as original" do
243
+ @mail.to_s.should match(sjis_regexp(utf8_to_sjis("本文")))
244
+ end
245
+ end
246
+
247
+ context "modify and to_s" do
248
+ it "should encode subject correctly" do
249
+ @mail.subject = "大江戸"
250
+ @mail.to_s.should match(Regexp.escape("keWNXYzL+Ys="))
251
+ end
252
+
253
+ it "should encode body correctly" do
254
+ @mail.body = "会議が開催"
255
+ @mail.to_s.should match(sjis_regexp(utf8_to_sjis("会議が開催") + sjis("\xf7\xdf")))
256
+ end
257
+ end
258
+ end
259
+
260
+ describe "Softbank blank-mail" do
261
+ before(:each) do
262
+ @mail = Mail.new(open(File.join(File.expand_path(File.dirname(__FILE__)), "email-fixtures/softbank-blank.eml")).read)
263
+ end
264
+
265
+ it "subject should be parsed correctly" do
266
+ @mail.subject.should be_blank
267
+ end
268
+
269
+ it "body should be parsed correctly" do
270
+ @mail.body.to_s.should be_blank
271
+ end
272
+ end
273
+
274
+ describe "JIS mail" do
275
+ context "Docomo" do
276
+ before(:each) do
277
+ @mail = Mail.new(open(File.join(File.expand_path(File.dirname(__FILE__)), "email-fixtures/docomo-jis.eml")).read)
278
+ end
279
+
280
+ it "subject should be parsed correctly" do
281
+ @mail.subject.should == "テスト"
282
+ end
283
+
284
+ it "body should be parsed correctly" do
285
+ @mail.body.to_s.should == "テスト本文"
286
+ end
287
+ end
288
+ end
289
+ end
@@ -12,3 +12,11 @@ begin
12
12
  rescue LoadError
13
13
  puts "Terminal display information test requires jpmobile-terminfo module"
14
14
  end
15
+
16
+ RSpec.configure do |c|
17
+ c.filter_run :focus => true
18
+ c.run_all_when_everything_filtered = true
19
+ c.color_enabled = true
20
+ c.filter_run_excluding :broken => true
21
+ # c.full_backtrace = true
22
+ end
@@ -41,4 +41,9 @@ describe Jpmobile::Util, ".deep_apply" do
41
41
  it "U+FFE3が0x8150に変換されること" do
42
42
  utf8_to_sjis([0xffe3].pack("U")).should == sjis("\x81\x50")
43
43
  end
44
+
45
+ it "jis_string_regexpでISO-2022-JPの文字列がマッチすること" do
46
+ jis_string_regexp.match(ascii_8bit(utf8_to_jis("abcしからずんばこじをえずdef"))).should_not be_nil
47
+ jis_to_utf8(jis("\x1b\x24\x42#{$1}\x1b\x28\x42")).should == "しからずんばこじをえず"
48
+ end
44
49
  end
@@ -1,5 +1,6 @@
1
- require 'rubygems'
2
- require 'action_controller'
1
+ # require 'rubygems'
2
+ # require 'action_controller'
3
3
 
4
4
  class ApplicationController < ActionController::Base
5
+ include Jpmobile::ViewSelector
5
6
  end
@@ -1,9 +1,17 @@
1
1
  class TemplatePathController < ApplicationController
2
2
  def index
3
3
  @q = params[:q]
4
+
5
+ if params[:pc]
6
+ disable_mobile_view!
7
+ end
4
8
  end
5
9
 
6
10
  def show
7
11
  end
12
+
13
+ def optioned_index
14
+ render :action => "index"
15
+ end
8
16
  end
9
17