summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRaine Virta <rane@kapsi.fi>2009-02-17 16:18:38 +0200
committerGiuseppe Bilotta <giuseppe.bilotta@gmail.com>2009-02-17 23:53:18 +0100
commitd3c18608f75bb5b3b206a7e34fb349cc56acbbaf (patch)
treec16f0216e82a192e1bb658cddc755be697b19119
parent6a4e8eead53901d53895bac8ea9468253571a6ae (diff)
translator: use *_with(:attribute => value) syntax to find elements
The way objects are currently searched inside Mechanize objects is deprecated in WWW::Mechanize version 0.9.0, so we switch to the preferred syntax.
-rw-r--r--data/rbot/plugins/translator.rb38
1 files changed, 19 insertions, 19 deletions
diff --git a/data/rbot/plugins/translator.rb b/data/rbot/plugins/translator.rb
index 011eb34c..51394097 100644
--- a/data/rbot/plugins/translator.rb
+++ b/data/rbot/plugins/translator.rb
@@ -112,15 +112,15 @@ class NiftyTranslator < Translator
super(Translator::Direction.all_from_to(%w[ja en zh_CN ko], %w[ja]), cache)
@form = WWW::Mechanize.new.
get('http://nifty.amikai.com/amitext/indexUTF8.jsp').
- forms.name('translateForm').first
+ forms_with(:name => 'translateForm').last
end
def do_translate(text, from, to)
- @form.radiobuttons.name('langpair').value = "#{from},#{to}".upcase
- @form.fields.name('sourceText').value = text
+ @form.radiobuttons_with(:name => 'langpair').first.value = "#{from},#{to}".upcase
+ @form.fields_with(:name => 'sourceText').last.value = text
- @form.submit(@form.buttons.name('translate')).
- forms.name('translateForm').fields.name('translatedText').value
+ @form.submit(@form.buttons_with(:name => 'translate').last).
+ forms_with(:name => 'translateForm').last.fields_with(:name => 'translatedText').last.value
end
end
@@ -149,7 +149,7 @@ class ExciteTranslator < Translator
def open_form(name)
WWW::Mechanize.new.get("http://www.excite.co.jp/world/#{name}").
- forms.name('world').first
+ forms_with(:name => 'world').first
end
def do_translate(text, from, to)
@@ -157,15 +157,15 @@ class ExciteTranslator < Translator
form = @forms[non_ja_language]
if non_ja_language =~ /zh_(CN|TW)/
- form.fields.name('wb_lp').value = "#{from}#{to}".sub(/_(?:CN|TW)/, '').upcase
- form.fields.name('big5').value = ($1 == 'TW' ? 'yes' : 'no')
+ form_with_fields(:name => 'wb_lp').first.value = "#{from}#{to}".sub(/_(?:CN|TW)/, '').upcase
+ form_with_fields(:name => 'big5').first.value = ($1 == 'TW' ? 'yes' : 'no')
else
# the en<->ja page is in Shift_JIS while other pages are UTF-8
text = Iconv.iconv('Shift_JIS', 'UTF-8', text) if non_ja_language == 'en'
- form.fields.name('wb_lp').value = "#{from}#{to}".upcase
+ form.fields_with(:name => 'wb_lp').first.value = "#{from}#{to}".upcase
end
- form.fields.name('before').value = text
- result = form.submit.forms.name('world').fields.name('after').value
+ form.fields_with(:name => 'before').first.value = text
+ result = form.submit.forms_with(:name => 'world').first.fields_with(:name => 'after').first.value
# the en<->ja page is in Shift_JIS while other pages are UTF-8
if non_ja_language == 'en'
Iconv.iconv('UTF-8', 'Shift_JIS', result)
@@ -197,9 +197,9 @@ class GoogleTranslator < Translator
# without faking the user agent, Google Translate will serve non-UTF-8 text
agent.user_agent_alias = 'Linux Konqueror'
@form = agent.get('http://www.google.com/translate_t').
- forms.action('/translate_t').first
- @source_list = @form.fields.name('sl')
- @target_list = @form.fields.name('tl')
+ forms_with(:action => '/translate_t').first
+ @source_list = @form.fields_with(:name => 'sl').last
+ @target_list = @form.fields_with(:name => 'tl').last
end
def do_translate(text, from, to)
@@ -207,7 +207,7 @@ class GoogleTranslator < Translator
@source_list.value = from.sub('_', '-')
@target_list.value = to.sub('_', '-')
- @form.fields.name('text').value = text
+ @form.fields_with(:name => 'text').last.value = text
@form.submit.parser.search('div#result_box').inner_html
end
end
@@ -220,18 +220,18 @@ class BabelfishTranslator < Translator
require 'mechanize'
@form = WWW::Mechanize.new.get('http://babelfish.altavista.com/babelfish/').
- forms.name('frmTrText').first
- @lang_list = @form.fields.name('lp')
+ forms_with(:name => 'frmTrText').first
+ @lang_list = @form.fields_with(:name => 'lp').first
language_pairs = @lang_list.options.map {|o| o.value.split('_')}.
reject {|p| p.empty?}
super(Translator::Direction.pairs(language_pairs), cache)
end
def do_translate(text, from, to)
- if @form.fields.name('trtext').empty?
+ if @form.fields_with(:name => 'trtext').first.empty?
@form.add_field!('trtext', text)
else
- @form.fields.name('trtext').value = text
+ @form.fields_with(:name => 'trtext').first.value = text
end
@lang_list.value = "#{from}_#{to}"
@form.submit.parser.search("td.s/div[@style]").inner_html