хранить и выводить форматированное содержимое массива с помощью sinatra - PullRequest
0 голосов
/ 03 февраля 2012

Среда: Ruby 1.9.2

Я новичок в Ruby / Sinatra и создаю веб-приложение для проверки концепции.Цель довольно проста: пользователь вводит список доменов, и сценарий сначала проверяет их записи mx, и, если они удовлетворяют условию, извлекает контактную информацию домена.Я совершенно уверен, что не собираюсь хранить данные надлежащим образом и ищу более элегантное решение, которое позволило бы мне стилизовать результаты так, чтобы домен, электронная почта и имя были сгруппированы вместе.

#!/usr/bin/env ruby
require "sinatra/base"
require 'rubygems'
require 'haml'
require 'sinatra'
require 'whois'

get '/' do
  haml :index
end

post '/' do
  @host = params[:host]
  @host.split('\n')
  @email = Array.new
  @name = Array.new
  @domain = Array.new
  @host.each_line {|i|
      if %x[dig -t mx #{i.chomp.gsub('www.', '')} | grep -i mx | grep -i google].empty?
        puts "empty"
      else
        @domain << i.chomp.gsub('www.','')
        @email << (Whois.whois(i.chomp.gsub('www.',''))).technical_contact.email
        @name << (Whois.whois(i.chomp.gsub('www.',''))).technical_contact.name
      end
}

  haml :index
end

__END__
@@ layout
%html
  %head
    %title Gcrawl
  %body
    #header
      %h1 Gcrawl
    #content
      =yield
  %footer

@@ index
%p
  Welcome to Gcrawl

%form(action='/' method='POST')
  %textarea{:rows => '12', :cols => '40', :name => 'host'}
  %input(type='submit')
- if defined?(@email)
  %h3= @domain
  %h3= @email
  %h3= @name

1 Ответ

0 голосов
/ 03 февраля 2012

Создайте класс Record, который будет содержать @name, @domain и @email для конкретной записи.
Таким образом, каждый экземпляр Record будет иметь свое имя, домен и адрес электронной почты.

Заменить реализацию массива классом.Если вам нужно сохранить записи в базе данных, используйте ActiveRecord.

Хорошо, что вы начали с Sinatra, но если вы спешите, вы можете запустить приложение на Rails через час.

РЕДАКТИРОВАТЬ Руководства / руководства по началу работы с Rails:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...