ruby-oembed 0.8.14 → 0.9.0

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.
@@ -113,4 +113,25 @@ describe OEmbed::ProviderDiscovery do
113
113
 
114
114
  end # each service
115
115
 
116
- end
116
+ context "when returning 404" do
117
+ let(:url) { 'https://www.youtube.com/watch?v=123123123' }
118
+
119
+ it "raises OEmbed::NotFound" do
120
+ expect{ OEmbed::ProviderDiscovery.discover_provider(url) }.to raise_error(OEmbed::NotFound)
121
+ end
122
+ end
123
+
124
+ context "when returning 301" do
125
+ let(:url) { 'http://www.youtube.com/watch?v=dFs9WO2B8uI' }
126
+
127
+ it "does redirect http to https" do
128
+ expect{ OEmbed::ProviderDiscovery.discover_provider(url) }.not_to raise_error
129
+ end
130
+ end
131
+
132
+ it "does passes the timeout option to Net::Http" do
133
+ expect_any_instance_of(Net::HTTP).to receive(:open_timeout=).with(5)
134
+ expect_any_instance_of(Net::HTTP).to receive(:read_timeout=).with(5)
135
+ OEmbed::ProviderDiscovery.discover_provider('https://www.youtube.com/watch?v=dFs9WO2B8uI', :timeout => 5)
136
+ end
137
+ end
@@ -18,82 +18,82 @@ describe OEmbed::Providers do
18
18
 
19
19
  describe ".register" do
20
20
  it "should register providers" do
21
- OEmbed::Providers.urls.should be_empty
22
-
21
+ expect(OEmbed::Providers.urls).to be_empty
22
+
23
23
  OEmbed::Providers.register(@flickr, @qik)
24
-
25
- OEmbed::Providers.urls.keys.should == @flickr.urls + @qik.urls
24
+
25
+ expect(OEmbed::Providers.urls.keys).to eq(@flickr.urls + @qik.urls)
26
26
 
27
27
  @flickr.urls.each do |regexp|
28
- OEmbed::Providers.urls.should have_key(regexp)
29
- OEmbed::Providers.urls[regexp].should include(@flickr)
28
+ expect(OEmbed::Providers.urls).to have_key(regexp)
29
+ expect(OEmbed::Providers.urls[regexp]).to include(@flickr)
30
30
  end
31
31
 
32
32
  @qik.urls.each do |regexp|
33
- OEmbed::Providers.urls.should have_key(regexp)
34
- OEmbed::Providers.urls[regexp].should include(@qik)
33
+ expect(OEmbed::Providers.urls).to have_key(regexp)
34
+ expect(OEmbed::Providers.urls[regexp]).to include(@qik)
35
35
  end
36
36
  end
37
37
 
38
38
  it "should find by URLs" do
39
39
  OEmbed::Providers.register(@flickr, @qik) # tested in "should register providers"
40
-
41
- OEmbed::Providers.find(example_url(:flickr)).should == @flickr
42
- OEmbed::Providers.find(example_url(:qik)).should == @qik
40
+
41
+ expect(OEmbed::Providers.find(example_url(:flickr))).to eq(@flickr)
42
+ expect(OEmbed::Providers.find(example_url(:qik))).to eq(@qik)
43
43
  end
44
44
  end
45
45
 
46
46
  describe ".unregister" do
47
47
  it "should unregister providers" do
48
48
  OEmbed::Providers.register(@flickr, @qik) # tested in "should register providers"
49
-
49
+
50
50
  OEmbed::Providers.unregister(@flickr)
51
-
51
+
52
52
  @flickr.urls.each do |regexp|
53
- OEmbed::Providers.urls.should_not have_key(regexp)
53
+ expect(OEmbed::Providers.urls).to_not have_key(regexp)
54
54
  end
55
-
56
- OEmbed::Providers.urls.keys.should == @qik.urls
55
+
56
+ expect(OEmbed::Providers.urls.keys).to eq(@qik.urls)
57
57
 
58
58
  @qik.urls.each do |regexp|
59
- OEmbed::Providers.urls.should have_key(regexp)
60
- OEmbed::Providers.urls[regexp].should include(@qik)
59
+ expect(OEmbed::Providers.urls).to have_key(regexp)
60
+ expect(OEmbed::Providers.urls[regexp]).to include(@qik)
61
61
  end
62
62
  end
63
63
 
64
64
  it "should not unregister duplicate provider urls at first" do
65
65
  @qik_mirror = OEmbed::Provider.new("http://mirror.qik.com/api/oembed.{format}")
66
66
  @qik_mirror << "http://qik.com/*"
67
-
67
+
68
68
  @qik_mirror.urls.each do |regexp|
69
- @qik.urls.should include(regexp)
69
+ expect(@qik.urls).to include(regexp)
70
70
  end
71
-
71
+
72
72
  OEmbed::Providers.register(@qik, @qik_mirror)
73
-
74
- OEmbed::Providers.urls.keys.should == @qik.urls
73
+
74
+ expect(OEmbed::Providers.urls.keys).to eq(@qik.urls)
75
75
 
76
76
  @qik_mirror.urls.each do |regexp|
77
- OEmbed::Providers.urls[regexp].should include(@qik_mirror)
78
- OEmbed::Providers.urls[regexp].should include(@qik)
77
+ expect(OEmbed::Providers.urls[regexp]).to include(@qik_mirror)
78
+ expect(OEmbed::Providers.urls[regexp]).to include(@qik)
79
79
  end
80
-
81
- OEmbed::Providers.find(example_url(:qik)).should == @qik
82
-
80
+
81
+ expect(OEmbed::Providers.find(example_url(:qik))).to eq(@qik)
82
+
83
83
  OEmbed::Providers.unregister(@qik)
84
-
84
+
85
85
  urls = OEmbed::Providers.urls.dup
86
86
 
87
87
  @qik_mirror.urls.each do |regexp|
88
- OEmbed::Providers.urls[regexp].should include(@qik_mirror)
88
+ expect(OEmbed::Providers.urls[regexp]).to include(@qik_mirror)
89
89
  end
90
-
91
- OEmbed::Providers.find(example_url(:qik)).should == @qik_mirror
92
-
90
+
91
+ expect(OEmbed::Providers.find(example_url(:qik))).to eq(@qik_mirror)
92
+
93
93
  OEmbed::Providers.unregister(@qik_mirror)
94
-
94
+
95
95
  @qik_mirror.urls.each do |regexp|
96
- OEmbed::Providers.urls.should_not have_key(regexp)
96
+ expect(OEmbed::Providers.urls).to_not have_key(regexp)
97
97
  end
98
98
  end
99
99
  end
@@ -114,10 +114,10 @@ describe OEmbed::Providers do
114
114
  # OEmbed::Providers.register_fallback(OEmbed::ProviderDiscovery)
115
115
  #
116
116
  # provider = OEmbed::ProviderDiscovery
117
- # provider.should_receive(:raw).
117
+ # expect(provider).to receive(:raw).
118
118
  # with(url, {}).
119
119
  # and_return(valid_response(:raw))
120
- # provider.should_receive(:get).
120
+ # expect(provider).to receive(:get).
121
121
  # with(url, {}).
122
122
  # and_return(valid_response(:object))
123
123
  #end
@@ -127,9 +127,9 @@ describe OEmbed::Providers do
127
127
  OEmbed::Providers.register_all
128
128
  all_example_urls.each do |url|
129
129
  provider = OEmbed::Providers.find(url)
130
- expect(provider).should_receive(:raw).
130
+ expect(provider).to receive(:raw).
131
131
  with(url, {})
132
- expect(provider).should_receive(:get).
132
+ expect(provider).to receive(:get).
133
133
  with(url, {})
134
134
  OEmbed::Providers.raw(url)
135
135
  OEmbed::Providers.get(url)
@@ -139,8 +139,8 @@ describe OEmbed::Providers do
139
139
  it "should raise an error if no embeddable content is found" do
140
140
  OEmbed::Providers.register_all
141
141
  ["http://fake.com/", example_url(:google_video)].each do |url|
142
- proc { OEmbed::Providers.get(url) }.should raise_error(OEmbed::NotFound)
143
- proc { OEmbed::Providers.raw(url) }.should raise_error(OEmbed::NotFound)
142
+ expect { OEmbed::Providers.get(url) }.to raise_error(OEmbed::NotFound)
143
+ expect { OEmbed::Providers.raw(url) }.to raise_error(OEmbed::NotFound)
144
144
  end
145
145
  end
146
146
  end
@@ -150,28 +150,28 @@ describe OEmbed::Providers do
150
150
  OEmbed::Providers.register_fallback(OEmbed::Providers::Hulu)
151
151
  OEmbed::Providers.register_fallback(OEmbed::Providers::OohEmbed)
152
152
 
153
- OEmbed::Providers.fallback.should == [ OEmbed::Providers::Hulu, OEmbed::Providers::OohEmbed]
153
+ expect(OEmbed::Providers.fallback).to eq([ OEmbed::Providers::Hulu, OEmbed::Providers::OohEmbed])
154
154
  end
155
155
 
156
156
  it "should fallback to the appropriate provider when URL isn't found" do
157
157
  OEmbed::Providers.register_all
158
158
  OEmbed::Providers.register_fallback(OEmbed::Providers::Hulu)
159
159
  OEmbed::Providers.register_fallback(OEmbed::Providers::OohEmbed)
160
-
160
+
161
161
  url = example_url(:google_video)
162
162
 
163
163
  provider = OEmbed::Providers.fallback.last
164
- provider.should_receive(:raw).
164
+ expect(provider).to receive(:raw).
165
165
  with(url, {}).
166
166
  and_return(valid_response(:raw))
167
- provider.should_receive(:get).
167
+ expect(provider).to receive(:get).
168
168
  with(url, {}).
169
169
  and_return(valid_response(:object))
170
170
 
171
171
  OEmbed::Providers.fallback.each do |p|
172
172
  next if p == provider
173
- p.should_receive(:raw).and_raise(OEmbed::NotFound)
174
- p.should_receive(:get).and_raise(OEmbed::NotFound)
173
+ expect(p).to receive(:raw).and_raise(OEmbed::NotFound)
174
+ expect(p).to receive(:get).and_raise(OEmbed::NotFound)
175
175
  end
176
176
 
177
177
  OEmbed::Providers.raw(url)
@@ -182,10 +182,10 @@ describe OEmbed::Providers do
182
182
  OEmbed::Providers.register_all
183
183
  OEmbed::Providers.register_fallback(OEmbed::Providers::Hulu)
184
184
  OEmbed::Providers.register_fallback(OEmbed::Providers::OohEmbed)
185
-
185
+
186
186
  ["http://fa.ke/"].each do |url|
187
- proc { OEmbed::Providers.get(url) }.should raise_error(OEmbed::NotFound)
188
- proc { OEmbed::Providers.raw(url) }.should raise_error(OEmbed::NotFound)
187
+ expect { OEmbed::Providers.get(url) }.to raise_error(OEmbed::NotFound)
188
+ expect { OEmbed::Providers.raw(url) }.to raise_error(OEmbed::NotFound)
189
189
  end
190
190
  end
191
191
  end
@@ -194,26 +194,26 @@ describe OEmbed::Providers do
194
194
  after(:each) do
195
195
  OEmbed::Providers.send(:remove_const, :Fake) if defined?(OEmbed::Providers::Fake)
196
196
  end
197
-
197
+
198
198
  it "should not register a provider that is not marked as official" do
199
- defined?(OEmbed::Providers::Fake).should_not be
200
-
199
+ expect(defined?(OEmbed::Providers::Fake)).to_not be
200
+
201
201
  class OEmbed::Providers
202
202
  Fake = OEmbed::Provider.new("http://new.fa.ke/oembed/")
203
203
  Fake << "http://new.fa.ke/*"
204
204
  end
205
-
205
+
206
206
  OEmbed::Providers.register_all
207
207
  ["http://new.fa.ke/20C285E0"].each do |url|
208
208
  provider = OEmbed::Providers.find(url)
209
- provider.should be_nil
209
+ expect(provider).to be_nil
210
210
  end
211
211
  end
212
-
212
+
213
213
  describe 'add_official_provider' do
214
214
  it "should register a new official provider" do
215
- defined?(OEmbed::Providers::Fake).should_not be
216
-
215
+ expect(defined?(OEmbed::Providers::Fake)).to_not be
216
+
217
217
  class OEmbed::Providers
218
218
  Fake = OEmbed::Provider.new("http://official.fa.ke/oembed/")
219
219
  Fake << "http://official.fa.ke/*"
@@ -222,19 +222,19 @@ describe OEmbed::Providers do
222
222
 
223
223
  ["http://official.fa.ke/20C285E0"].each do |url|
224
224
  provider = OEmbed::Providers.find(url)
225
- provider.should_not be_a(OEmbed::Provider)
225
+ expect(provider).to_not be_a(OEmbed::Provider)
226
226
  end
227
-
227
+
228
228
  OEmbed::Providers.register_all
229
229
  ["http://official.fa.ke/20C285E0"].each do |url|
230
230
  provider = OEmbed::Providers.find(url)
231
- provider.should be_a(OEmbed::Provider)
231
+ expect(provider).to be_a(OEmbed::Provider)
232
232
  end
233
233
  end
234
234
 
235
235
  it "should register an official sub_type provider separately" do
236
- defined?(OEmbed::Providers::Fake).should_not be
237
-
236
+ expect(defined?(OEmbed::Providers::Fake)).to_not be
237
+
238
238
  class OEmbed::Providers
239
239
  Fake = OEmbed::Provider.new("http://sub.fa.ke/oembed/")
240
240
  Fake << "http://sub.fa.ke/*"
@@ -244,13 +244,13 @@ describe OEmbed::Providers do
244
244
  OEmbed::Providers.register_all
245
245
  ["http://sub.fa.ke/20C285E0"].each do |url|
246
246
  provider = OEmbed::Providers.find(url)
247
- provider.should_not be_a(OEmbed::Provider)
247
+ expect(provider).to_not be_a(OEmbed::Provider)
248
248
  end
249
-
249
+
250
250
  OEmbed::Providers.register_all(:fakes)
251
251
  ["http://sub.fa.ke/20C285E0"].each do |url|
252
252
  provider = OEmbed::Providers.find(url)
253
- provider.should be_a(OEmbed::Provider)
253
+ expect(provider).to be_a(OEmbed::Provider)
254
254
  end
255
255
  end
256
256
  end
@@ -1,5 +1,27 @@
1
1
  require File.dirname(__FILE__) + '/spec_helper'
2
2
 
3
+ def expected_helpers
4
+ {
5
+ "type" => "random",
6
+ "version" => "1.0",
7
+ "html" => "&lt;em&gt;Hello world!&lt;/em&gt;",
8
+ "url" => "http://foo.com/bar",
9
+ }.freeze
10
+ end
11
+
12
+ def expected_skipped
13
+ {
14
+ "fields" => "hello",
15
+ "__id__" => 1234,
16
+ "provider" => "oohEmbed",
17
+ "to_s" => "random string",
18
+ }.freeze
19
+ end
20
+
21
+ def all_expected
22
+ expected_helpers.merge(expected_skipped).freeze
23
+ end
24
+
3
25
  describe OEmbed::Response do
4
26
  include OEmbedSpecHelper
5
27
 
@@ -42,65 +64,43 @@ describe OEmbed::Response do
42
64
  OEmbed::Response.create_for(valid_response(:json), @viddler, example_url(:viddler), :json)
43
65
  }
44
66
 
45
- let(:expected_helpers) {
46
- {
47
- "type" => "random",
48
- "version" => "1.0",
49
- "html" => "&lt;em&gt;Hello world!&lt;/em&gt;",
50
- "url" => "http://foo.com/bar",
51
- }
52
- }
53
-
54
- let(:expected_skipped) {
55
- {
56
- "fields" => "hello",
57
- "__id__" => 1234,
58
- "provider" => "oohEmbed",
59
- "to_s" => "random string",
60
- }
61
- }
62
-
63
- let(:all_expected) {
64
- expected_helpers.merge(expected_skipped)
65
- }
66
-
67
67
  describe "#initialize" do
68
68
  it "should parse the data into fields" do
69
69
  # We need to compare keys & values separately because we don't expect all
70
70
  # non-string values to be recognized correctly.
71
71
 
72
- new_res.fields.keys.should == valid_response(:object).keys
73
- new_res.fields.values.map{|v|v.to_s}.should == valid_response(:object).values.map{|v|v.to_s}
72
+ expect(new_res.fields.keys).to eq(valid_response(:object).keys)
73
+ expect(new_res.fields.values.map{|v|v.to_s}).to eq(valid_response(:object).values.map{|v|v.to_s})
74
74
 
75
- default_res.fields.keys.should == valid_response(:object).keys
76
- default_res.fields.values.map{|v|v.to_s}.should == valid_response(:object).values.map{|v|v.to_s}
75
+ expect(default_res.fields.keys).to eq(valid_response(:object).keys)
76
+ expect(default_res.fields.values.map{|v|v.to_s}).to eq(valid_response(:object).values.map{|v|v.to_s})
77
77
 
78
- xml_res.fields.keys.should == valid_response(:object).keys
79
- xml_res.fields.values.map{|v|v.to_s}.should == valid_response(:object).values.map{|v|v.to_s}
78
+ expect(xml_res.fields.keys).to eq(valid_response(:object).keys)
79
+ expect(xml_res.fields.values.map{|v|v.to_s}).to eq(valid_response(:object).values.map{|v|v.to_s})
80
80
 
81
- json_res.fields.keys.should == valid_response(:object).keys
82
- json_res.fields.values.map{|v|v.to_s}.should == valid_response(:object).values.map{|v|v.to_s}
81
+ expect(json_res.fields.keys).to eq(valid_response(:object).keys)
82
+ expect(json_res.fields.values.map{|v|v.to_s}).to eq(valid_response(:object).values.map{|v|v.to_s})
83
83
  end
84
84
 
85
85
  it "should set the provider" do
86
- new_res.provider.should == OEmbed::Providers::OohEmbed
87
- default_res.provider.should == @flickr
88
- xml_res.provider.should == @qik
89
- json_res.provider.should == @viddler
86
+ expect(new_res.provider).to eq(OEmbed::Providers::OohEmbed)
87
+ expect(default_res.provider).to eq(@flickr)
88
+ expect(xml_res.provider).to eq(@qik)
89
+ expect(json_res.provider).to eq(@viddler)
90
90
  end
91
91
 
92
92
  it "should set the format" do
93
- new_res.format.should be_nil
94
- default_res.format.to_s.should == 'json'
95
- xml_res.format.to_s.should == 'xml'
96
- json_res.format.to_s.should == 'json'
93
+ expect(new_res.format).to be_nil
94
+ expect(default_res.format.to_s).to eq('json')
95
+ expect(xml_res.format.to_s).to eq('xml')
96
+ expect(json_res.format.to_s).to eq('json')
97
97
  end
98
98
 
99
99
  it "should set the request_url" do
100
- new_res.request_url.should be_nil
101
- default_res.request_url.to_s.should == example_url(:flickr)
102
- xml_res.request_url.to_s.should == example_url(:qik)
103
- json_res.request_url.to_s.should == example_url(:viddler)
100
+ expect(new_res.request_url).to be_nil
101
+ expect(default_res.request_url.to_s).to eq(example_url(:flickr))
102
+ expect(xml_res.request_url.to_s).to eq(example_url(:qik))
103
+ expect(json_res.request_url.to_s).to eq(example_url(:viddler))
104
104
  end
105
105
  end
106
106
 
@@ -135,45 +135,55 @@ describe OEmbed::Response do
135
135
  end
136
136
 
137
137
  it "should access the XML data through #field" do
138
- xml_res.field(:type).should == "photo"
139
- xml_res.field(:version).should == "1.0"
140
- xml_res.field(:fields).should == "hello"
141
- xml_res.field(:__id__).should == "1234"
138
+ expect(xml_res.field(:type)).to eq("photo")
139
+ expect(xml_res.field(:version)).to eq("1.0")
140
+ expect(xml_res.field(:fields)).to eq("hello")
141
+ expect(xml_res.field(:__id__)).to eq("1234")
142
142
  end
143
143
 
144
144
  it "should access the JSON data through #field" do
145
- json_res.field(:type).should == "photo"
146
- json_res.field(:version).should == "1.0"
147
- json_res.field(:fields).should == "hello"
148
- json_res.field(:__id__).should == "1234"
145
+ expect(json_res.field(:type)).to eq("photo")
146
+ expect(json_res.field(:version)).to eq("1.0")
147
+ expect(json_res.field(:fields)).to eq("hello")
148
+ expect(json_res.field(:__id__)).to eq("1234")
149
149
  end
150
150
 
151
151
  describe "#define_methods!" do
152
- it "should automagically define helpers" do
153
- local_res = OEmbed::Response.new(all_expected, OEmbed::Providers::OohEmbed)
154
-
152
+ context "with automagic" do
155
153
  all_expected.each do |method, value|
156
- local_res.should respond_to(method)
154
+ before do
155
+ @local_res = OEmbed::Response.new(all_expected, OEmbed::Providers::OohEmbed)
156
+ end
157
+
158
+ it "should define the #{method} method" do
159
+ expect(@local_res).to respond_to(method)
160
+ end
157
161
  end
162
+
158
163
  expected_helpers.each do |method, value|
159
- local_res.send(method).should == value
164
+ it "should define #{method} to return #{value.inspect}" do
165
+ expect(@local_res.send(method)).to eq(value)
166
+ end
160
167
  end
168
+
161
169
  expected_skipped.each do |method, value|
162
- local_res.send(method).should_not == value
170
+ it "should NOT override #{method} to not return #{value.inspect}" do
171
+ expect(@local_res.send(method)).to_not eq(value)
172
+ end
163
173
  end
164
174
  end
165
175
 
166
176
  it "should protect most already defined methods" do
167
- Object.new.should respond_to('__id__')
168
- Object.new.should respond_to('to_s')
177
+ expect(Object.new).to respond_to('__id__')
178
+ expect(Object.new).to respond_to('to_s')
169
179
 
170
- all_expected.keys.should include('__id__')
171
- all_expected.keys.should include('to_s')
180
+ expect(all_expected.keys).to include('__id__')
181
+ expect(all_expected.keys).to include('to_s')
172
182
 
173
183
  local_res = OEmbed::Response.new(all_expected, OEmbed::Providers::OohEmbed)
174
184
 
175
- local_res.__id__.should_not == local_res.field('__id__')
176
- local_res.to_s.should_not == local_res.field('to_s')
185
+ expect(local_res.__id__).to_not eq(local_res.field('__id__'))
186
+ expect(local_res.to_s).to_not eq(local_res.field('to_s'))
177
187
  end
178
188
 
179
189
  it "should not protect already defined methods that are specifically overridable" do
@@ -183,16 +193,16 @@ describe OEmbed::Response do
183
193
  end
184
194
  end
185
195
 
186
- Object.new.should respond_to('version')
187
- String.new.should respond_to('version')
196
+ expect(Object.new).to respond_to('version')
197
+ expect(String.new).to respond_to('version')
188
198
 
189
- all_expected.keys.should include('version')
190
- all_expected['version'].should_not == String.new.version
199
+ expect(all_expected.keys).to include('version')
200
+ expect(all_expected['version']).to_not eq(String.new.version)
191
201
 
192
202
  local_res = OEmbed::Response.new(all_expected, OEmbed::Providers::OohEmbed)
193
203
 
194
- local_res.version.should == local_res.field('version')
195
- local_res.version.should_not == String.new.version
204
+ expect(local_res.version).to eq(local_res.field('version'))
205
+ expect(local_res.version).to_not eq(String.new.version)
196
206
  end
197
207
  end
198
208
 
@@ -200,19 +210,19 @@ describe OEmbed::Response do
200
210
  describe "#html" do
201
211
  it "should include the title, if given" do
202
212
  response = OEmbed::Response.create_for(example_body(:flickr), example_url(:flickr), flickr, :json)
203
- response.should respond_to(:title)
204
- response.title.should_not be_empty
213
+ expect(response).to respond_to(:title)
214
+ expect(response.title).to_not be_empty
205
215
 
206
- response.html.should_not be_nil
207
- response.html.should match(/alt='#{response.title}'/)
216
+ expect(response.html).to_not be_nil
217
+ expect(response.html).to match(/alt='#{response.title}'/)
208
218
  end
209
219
 
210
220
  it "should work just fine, without a title" do
211
221
  response = OEmbed::Response.create_for(example_body(:skitch), example_url(:skitch), skitch, :json)
212
- response.should_not respond_to(:title)
222
+ expect(response).to_not respond_to(:title)
213
223
 
214
- response.html.should_not be_nil
215
- response.html.should match(/alt=''/)
224
+ expect(response.html).to_not be_nil
225
+ expect(response.html).to match(/alt=''/)
216
226
  end
217
227
  end
218
228
  end