Управление многократными командами в irb

Я использую, Механизируют, чтобы сползать место, которое требует логина. Следующий код регистрирует меня в.

require 'mechanize'

agent = Mechanize.new
agent.get 'http://www.specialsite.com'

agent.page.form.txtEmail = '[email protected]'
agent.page.form.txtPassword = 'myPassword'
agent.page.form.add_field! "__EVENTTARGET","btnLogin"
agent.page.form.add_field! "__EVENTARGUMENT",""
agent.page.form.submit


agent.page.link_with(:text => "Special Link").click

agent.page.form.txtSearch = "Search Text"
agent.page.form.add_field! "__EVENTTARGET","lbtnSearch"
agent.page.form.add_field! "__EVENTARGUMENT","" 
agent.page.form.submit

Мой вопрос, как я управляю этим кодом в рубиновом IRB так, чтобы у меня мог быть доступ к объектам, которые это определяет как 'агент', чтобы экспериментировать с и произвести остальную часть кода, в котором я нуждаюсь?

Я попробовал 'груз'. Это управляет командами, но это не делает объекты как 'агент' доступными.

2
nl ja de

4 ответы

напишите этот материал в текстовом файле, как это, открытый IRB и тип:

File.open("your_file","r").readlines.each{|line| eval(line)}

Это помогает?

Править: Текстовый файл должен существовать в том же самом справочнике, где вы разжигаете IRB. Общее преимущество: это - путь, легче изменить что-то в текстовом файле, чем играть в огромной остроте IRB.

3
добавлено
почему не только оценка File.read("your_file")
добавлено автор horseyguy, источник
также возможный. Короче, конечно.
добавлено автор Hisako, источник

Использование любопытствует:

require 'pry'
... your code
binding.pry

Когда вы будете управлять сценарием, он остановится в binding.pry , и у вас есть подобный irb repl (но лучше), где можно оценить объекты. Используйте выход , чтобы продолжить или выходную программу , чтобы уйти.

2
добавлено
Это было точно, что я искал... Спасибо!
добавлено автор user1077851, источник

I agree with @pguardiaro to use Pry

Но вот то, как вы делаете это в IRB:

binding.eval (File.read("your_file.rb"), "your_file.rb"

0
добавлено

Так как это - весь повторяемый код, и необходимо попытаться осуществить СУХОЙ (не Повторяйте Себя), когда когда-либо вы можете. Я был бы через все это в классе, и имейте метод, который возвращает агента. Тогда в irb вы потребовали бы класса и установили бы вашу irb переменную в класс getmethod. И этот способ, которым у вас уже есть начало класса, который вы будете использовать для своего проекта позже

0
добавлено
pro.ruby
pro.ruby
1 181 участник(ов)

Язык программирования Ruby Additional docs: https://rubyreferences.github.io/rubyref/ Invite: https://telegram.me/joinchat/Be4rsT2NuB3CyJaF26j1kA Кто хочет компилировать: @crystal_ru (его синтаксис основан на Ruby) Участник @proDOT

Ruby, Rails, Hanami | dry-rb
Ruby, Rails, Hanami | dry-rb
1 180 участник(ов)

https://telegram.me/rubyjob - Ruby Job По вопросам - @eugene_shved

Ruby School .us
Ruby School .us
1 045 участник(ов)

Чат-болталка для учеников руби-школы и не только. Правила: https://telegra.ph/Pravila-chata-Rubi-shkoly-03-13

Random Ruby Chat
Random Ruby Chat
589 участник(ов)

Правила публикации вакансий: https://t.me/codenamecrud/60865

Rubyata
Rubyata
333 участник(ов)

Коммюнити Ruby и Ruby On Rails Флуд не приветствуются. Вакансии можно публиковать только и ТОЛЬКО по пятницам с хештегом #вакансия.

Ruby Talks
Ruby Talks
236 участник(ов)

Национальная Флеймотека

RubyRush
RubyRush
189 участник(ов)

rubyrush.ru программирование для самых новичков