マイファースト

4449 ワード

私が最終的に私のCLIプロジェクトを始める時間が来たとき、それは少し不器用でした.Flatironのための研究室での作業は困難でしたが、ゼロから独自のプロジェクトを作成すること、それはあなたのスキルが最終的にテストに置かれているときです.

マイファーストタスク
どのAPIを使いますか.
私は壮大な考えから始めた.私は、トランスジェンダー個人のために医学情報を提供したCLIをつくりたかったです.
私は、私が私が探していた情報を与えるAPIを見つけることができないまで、アイディアにとても興奮しました
私の最初の考えに失敗した後、私は最初に私が利用可能だったAPIのいくつかの研究を行うことを決めた.それで、私はStockMarket APIを調べることに決めました.私は被験者が好きで、私が研究をしたとき、APIの良い数が現れました.私が実行し続けた問題は、私が使用したかったすべてのAPIのキーは何らかのキーを持っていた.APIキーが必要であっても、それらのうちの1つを使うという考えで遊びました.
APIの検索を続けていたので、私は必要な正確な情報を与えた無料の在庫APIを見つけることができませんでした.そこにAPIがたくさんありますが、私が使用したい情報のほとんどは、API使用のために毎月支払うことを強制しました.それで、それが計画Cのための時間であると決めた時です.
私は、多くのパブリックAPIのhttps://github.com/public-apis/public-apis#food--drinkを記載したgithubにつまずいた.それは私が私のCLIプログラムであるAPIを見つけたところです.このAPIは醸造所のリストを返します.
[
  ...
  {
    id: 299,
    name: "Almanac Beer Company",
    brewery_type: "micro",
    street: "651B W Tower Ave",
    address_2: null,
    address_3: null,
    city: "Alameda",
    state: "California",
    county_province: null,
    postal_code: "94501-5047",
    country: "United States",
    longitude: "-122.306283180899",
    latitude: "37.7834497667258",
    phone: "4159326531",
    website_url: "http://almanacbeer.com",
    updated_at: "2018-08-23T23:24:11.758Z",
    created_at: "2018-08-23T23:24:11.758Z"
  },
]

これは完全なAPIでした、私のCLIがそれを呼んだとき、私はユーザーのために引っ張ることができた多くの良い情報がありました.私は別の醸造所、それについてのさまざまな事実を見ることができた.このCLIを面白いと有益なユーザーを作る.

トップ機能
私は私のCLIの機能を愛し、間違いなくいくつかの偉大な醸造所を見つけるために自分自身を使用します.このCLIの2つの機能を構築しながら、このプログラムの私の好きな部分となった.以下は、ちょっと基本的なコマンドラインインターフェースプログラムから、CLIをどのように昇格させるかについて少し話します.
プロンプト
TTYプロンプトは、ユーザーが矢印キーを使用して選択を上下に移動し、Enterキーを押して選択を選択することができますを選択することができます素晴らしい機能です.
Welcome User.

Do you want to see all Breweries? (Press ↑/↓ arrow to move and Enter to select)
‣ Yes
  BrewPub
  No

私はTTプロンプト宝石を使用してこの機能を作成し、その宝石を反映するように私のメニューメソッドを更新することができました.
私のメニューメソッドは2つの部分に分割されます.
第1部:あなたのキーを使用して、選択を選択して入力することができる機能を作成します.これは、新しいプロンプトを作成し、作成した別の選択肢を繰り返して動作します.
def menu

            prompt = TTY::Prompt.new
            choices = prompt.select("Do you want to see all Breweries?") do |menu|
                menu.choice 'Yes'
                menu.choice 'BrewPub'
                menu.choice 'No'
            end 
Part 2 :作成された選択肢のパスを指定します.ユーザーは3つの選択肢の間で選択することができます.はい、NOとBrewpub.
ユーザーがYesを選択すると、プログラムは“良い選択”を印刷し、それが利用可能なすべての醸造所の名前を表示し、ユーザーが機会を彼らが詳細情報を参照したい醸造所を選択することができます.
ユーザーがBrerepubsを選択すると、プログラムはレストランであるビール工場が表示されます.他の種類の醸造所は表示されない.
ユーザーがNOを選択すると、プログラムは“ありがとうございます.すぐにお会いしたい!”プログラムを終了する.
            if choices == "Yes" 
                puts "Good Choice!"
                display_breweries
                user_choice
                menu

            elsif choices == "BrewPub" 
                display_brewpub_breweries
                user_input_type
                menu

            elsif choices == "No" 
                puts "Thank You. Hope to see you soon!"  
            end            
        end
ttyプロンプトの宝石は、ユーザーが誤って選択を入力した場合、問題を修正しました.私は、彼らが完全にスクリーンに関してあったものをコピーするまで、入力を維持しなければならないようにユーザーに強要したくありませんでした、それで、この宝石は、ユーザーにもはや彼らの選択を入力するのをもはや必要として、その代わりにちょうど彼らのキーで選択肢を通って動くことを必要とすることによってその問題を軽減するのを助けました.
システム"clear "
私が信じている他の特徴は、私のプログラムを使いやすくすることです.この機能はCLIプログラムを実行するとすぐに端末をクリアします.
#!/usr/bin/env ruby

require_relative '../config/environment'

system "clear"
CLI.new.start
私は自分のファイルが実行されるとすぐに、ユーザの端末をクリアするように、私の実行ファイルにシステムの“clear”行を追加しました.CLIプログラムを表示するだけです.
このプロジェクトを一緒に置く素晴らしい経験でした.私は本当に私のプログラムに多くの機能と才能を追加できるようにコードをいじることを楽しんだ.私はこのポストは、同様にあなたのプログラムにいくつかのクールな機能を追加することができます願っています.
あなたが私のプロジェクトのためにcodeをチェックアウトしたいならば、あなたはそうするために歓迎されます.私はあなたがそれを試してみて、それをお楽しみください.