CLIプロジェクト(または、「サンタがどのような木の下に残っていたか」

2168 ワード

ホロウ!それはとてもクールでした.
ちょうどFlatironのための私の最初のCLIプロジェクトを終えました.だから私たちは、過去の数週間で1つのアプリで学んだすべてを使用できるように満足!
私は、若干のハイライトを通してあなたを歩かなければなりません?
我々は、スクレーピングとAPIとの間の選択をした.私は将来的にはAPIを含む仕事がもっと多くなるだろうということを知っています.しかし、私は本当にノコギリビジネス全体を理解したかったのです.だから私は実際に使用できるプロジェクトを選んだ.私の妻の家族はNJで生活して、Bellatrixという名の非常にエネルギッシュなドーベルマンを持っています.ハイキングはあの犬に金です.そして、その妻に、それを考えに来てください.
私は偉大なウェブサイトを見つけたと呼ばれる.カップルのハイキング、多くの情報.私はロールする準備ができていた.
私がしたかった最初のことは、これらのハイキングのどれが私の法律家からどれくらいであったかについて知ることでした.少しの研究は、Geocoderと呼ばれている素晴らしい宝石に私を導きました.しかし、私が掻いていたウェブサイトで、問題がありました.多くの、多くの問題.
問題1 - 1 -何もラベルされませんでした!実質的にクラスがなく、IDもありません.ちょうどH 3のもの、HREFのものとPの束.座標の最初のセットはhrefに隠しました.
N40.88787° W74.81405°
当然、他のhrefはページにありました、しかし、2番目のChar .テキストは数字でした.したがって、検索コードの最初のビットは次のようになります.
results1.each do |r|
  if r.text[1] != nil && r.text[1].match(/\d/)
    @new_hike.coordinates = r.text
  end
end
最初の問題解決!ソート.
問題は2 - geocoderこのフォーマットのようになりません:N 40.88787°W 7481405°このフォーマットが好きです.どちらが面倒ですか.私はNを取り除くために必要で、wを取り除かなければなりません.私はそうしました.
one = location[0].scan(/\d{2}[.]\d{5}/)
two = location[1].scan(/\d{2}[.]\d{5}/)
two_minus = (two.join.to_f * -1).to_s.split
final_location = [one, two_minus].join(" ").split
それから.
問題1は3 -これは最悪だった.残念ながら、これらのハイキングのすべての座標は、各ハイキング個人ページにありました.これは、最初のページ(すべてのハイキングが記載されている)を見ることはハイキングが何であるかを知っている以外は何の役に立たないことを意味しました.最初に、私はハイクの名前とそれらの座標のすべてを得て、ハッシュの配列にそれらを置く“ダブル”スクレイプの並べ替えを試みた.それから、私はそれらのハッシュ値(座標)のどれが私の法律の50マイルの範囲内にあったかを見るためにgeocoderを使いました.全く働いたが、...それは永久にかかった.nokogiriは最初のウェブサイトのためにオリジナルページを削って、それからそのウェブサイトに行って、そのページを削って、それから再び戻って、もう一度それをしなければなりませんでした.200回.最初に走ったのは、私のコードのどこかにオープンループがあったからだ.
結局、私はちょうどハイキングを選ぶ前に距離を考え出すという考えを廃棄しました.
その後はかなり滑らかな帆走!表示の欠如は、スーパー迷惑で、ハイキングの属性の私の選択肢をいくつかのかなり単純なものにもたらした:ハイクの長さ、それはウェブサイト、そしてそれがトイレを持っていたかどうか.しかし、結局は、私はかなりの楽しみに満足でした.
しかし、穀物の箱の本当の賞は、それがすべて一緒に合う方法でした.クラスの分離を見る別のクラスの中の1つのクラスのインスタンスメソッドを呼び出す.それは正午の試合を見ているようでした.私はあなたのために何年もそれをしてきたコーダを知っているそれはかなり退屈なように見える必要がありますが、私?
私は地獄としてギザギザになった.