ローイングファンのプログラミング日記

ボート競技やプログラミングについて書きます

PostgreSQLを使ったSinatraアプリをつくる

PostgreSQLを使ったSinatraアプリをつくる。 目次 準備 ディレクトリ/ファイル構造 必要なGemをインストールする Sinatra PostgreSQLの準備 Active Record ERBライブラリ コードを書く コードの説明 myapp.rb index.erb CSSファイル コードを実行する 実行結…

SinatraでWebアプリをつくる

目次 Sinatraとは Sinatraをインストールする 手順 実際にインストールする コードを書く コードの説明 コードを実行する sinatra/reloaderをためす WEBrickを切断する 今回の環境 Sinatraとは SinatraはWebアプリをつくるためのGem。 Webアプリフレームワー…

Twitterライブラリ

Twitter APIが簡単に使えるようになるTwitterライブラリを試す。 目次 Twitterライブラリ Twitterライブラリを使う準備 Twitterアプリの作成 Permissionsタブの設定 Twitter APIと接続するために必要な値を取得する Twitterライブラリの使いかた Twitterライ…

クローリングで得たデータをデータベースに挿入する

今回はクローリングで得たデータをデータベースに挿入してみる。 目次 準備 PostgreSQLをインストールする PostreSQLにデータベースとテーブルをつくる Active Recordをインストールする クローリングで得た情報をPostgreSQLに挿入するコード コードの説明 …

外部ファイルを読み込む require_relative

require_relativeはカレントディレクトリから相対パスでファイルを読み込むメソッド。 require_relativeを使うと長いコードを別ファイルにすることができる。 目次 require_relativeについて リファレンスマニュアル 書式 テストコード コードの説明 コード…

インスタンス変数を参照する attr_reader

クラスを定義するときにインスタンス変数を初期化することは多い。 そのインスタンス変数を読み込みたいときがある。 そんなときはattr_readerメソッドを使う。 目次 attr_readerとは attr_readerを使ったコードを書く コードの説明 テストコードの実行結果 …

あいまい検索 Active Record where like

データベースからデータを選び出す際は、検索ワードと完全に一致するものだけでなく、部分的に一致するものも選び出したいことが多い。 幅をもたせた検索を「あいまい検索」という。 今回はあいまい検索を試す。 目次 where like Where likeを使ったコード …

文字列をTimeオブジェクトに変換する

ボート競技(レガッタ)はスピードを競う競技。 なので情報の中でもタイムは特に気にするところ。 タイム差をもとめるには独特の計算が必要になる。頭の中で無意識にこなしてしまうけれど、計算式であらわそうとすればけっこう大変だ。 RubyのTimeオブジェク…

クラスを定義する

Rubyはオブジェクト指向のプログラミング言語。 オブジェクト指向とはどういうことか。なかなか理解が深まらない。 理解を深めるためには実際にコードを書くことが大事だと思う。 そこで今回はクラスを定義してみる。 目次 オブジェクトとは クラスとメソッ…

Active RecordでPostgreSQLを操作する

今回はActive Recordを使ってデータを挿入する。 目次 Active RecordのWebページ テーブルにデータを挿入する Active RecordのWebページ Active Recordの基礎 https://railsguides.jp/active_record_basics.html テーブルやカラムを作成、変更する Active Re…

RubyからPostgreSQLを操作する

前回、Bundlerを使ってPg、Active Record、dotenvという3つのgemをインストールした。 今回はこれらのgemを使ってRubyからPostgreSQLを操作する。 目次 Pgとは Active Recordとは dotenvとは RubyからPoatgreSQLを操作する コードの実行 Pgとは PgはPostgreS…

Bundlerを使ってgemをインストールする

RubyからPostgreSQLを操作するためのライブラリをインストールする。 目次 RubyGemsとは RubyGemsについてのWebページ Bundlerとは Bundlerをインストールする Bundlerを使ってgemをインストールする Gemfileとは Gemfileをつくる Bundle install Gemfile.lo…

PostgreSQL where句

where句を使って条件つきの検索を試す。 データはこれまでにつくったtestデータベース、testsテーブルに入っているボートレース(レガッタ)の結果を使う。 目次 PostgreSQLドキュメント SQLファイルをつくる SQLファイルを実行する 実行結果 Windows10の文…

PostgreSQLにデータを挿入する

前回テーブルのつくりかたを試したので、今回はテーブルにデータを挿入する。 目次 外部ファイルの読み込み SQLファイルをつくる ファイルを読み込む テーブルにデータを挿入する Windows10とPostgreSQLの文字エンコーディング SQL言語 select文 表示の文字…

PostgreSQLにテーブルをつくる

前回データベースをつくったので今回はその中にテーブルをつくる。 目次 テーブル カラム定義 データ型 制約 テーブルをつくる データベースに接続する テーブルをつくる テーブルの確認 テーブル一覧を表示する テーブルの定義を確認する テーブルの削除 デ…

PostgreSQLのデータベースをつくる

PostgreSQLの大まかな使い方は次のとおり。 サーバーを起動する データベースをつくる データベースに接続する テーブルをつくる テーブルにデータを挿入する データを扱う データベースから切断する サーバーを停止して終了 今回はPostgreSQLのデータベース…

macOS10にPostgreSQLをインストールする

今回はHomebrewを使ってPostgreSQL 10.3をインストールしたときの記録。 HomebrewについてはRubyをインストールする記事で説明済。 目次 Homebrewを使ってPostgreSQLをインストールする PostgreSQLサーバーが起動しない不具合 Homebrewを使ってPostgreSQLを…

Windows10にPostgreSQLをインストールする

今回はPostgreSQL10.3をインストールしたときの記録。 目次 リレーショナルデータベースとSQL PostgreSQL PostgreSQLのインストール方法 サービスの設定 環境変数の設定 PATHの設定 PGDATAの設定 バージョン確認 PostgreSQLサーバーの起動確認 リレーショナ…

ローイングファン version1

今まで試してきたコードを使ってボートレース(レガッタ)の情報を検索するアプリをつくる。 前につくったお試し版に改良をくわえ、一通りの機能は備わったのでversion1とする。 目次 ローイングファンver1のコード 更新履歴 今回の動作確認環境 ローイングフ…

後置if

今回は後置ifを使ってコードの行数を減らしてみる。 目次 一般的なif文 後置if 後置ifを使ったコード 今回の動作確認環境 一般的なif文 一般的なif文の書式。 if 条件 処理 end 後置if 後置ifの書式。 処理 if 条件 後置ifを使ったコード コードを書く。 tes…

例外処理 rescue

目次 例外処理 rescue節 今回の動作確認環境 例外処理 例外とはコード内のエラー。 例外処理がないコードで例外が発生するとそこから先には進めない。 例外が発生したときの対処をほどこすのが例外処理。 リファレンスマニュアルは次のとおり。 Rubyリファレ…

open-uriライブラリ

今回はWebページからHTMLコードを取得する方法を考える。 目次 open-uriライブラリ open-uriライブラリのopenメソッド 今回の動作確認環境 open-uriライブラリ open-uriライブラリを使うと簡単にWebページを開くことができる。 リファレンスマニュアルは次の…

自己代入でカウンターをつくる

今回はカウンターと剰余を使って配列を組み直してみる。 目次 カウンターで繰り返しの回数を数える 剰余をもとめる演算子 % 配列の要素を指定の数ずつ配列に格納し直す 今回の動作確認環境 カウンターで繰り返しの回数を数える eachメソッドは配列から要素を…

行と列を入れかえる zip

今回は行と列を入れかえるメソッドzipを試す。 目次 配列オブジェクトのzipメソッド zipを使ったコード 今回の動作確認環境 配列オブジェクトのzipメソッド zipメソッドは配列オブジェクトのインスタンスメソッド。 基準とする配列に引数の配列を取り込んで…

正規表現 キャプチャ

今回は正規表現のキャプチャを試す。 目次 正規表現でマッチした文字列を後から参照する 特殊変数とキャプチャ HTMLソースコードの概略 キャプチャを使ったコード キャプチャにタグをつける scanメソッド ヒアドキュメント 今回の動作確認環境 正規表現でマ…

ブラウザの機能を使ってHTMLソースコードを表示する方法

今回はブラウザの機能を使ってHTMLソースコードを入手する。 注意 HTMLソースコードは著作物です。HTMLソースコードを利用する際は著作権法に則る必要があります。 目次 HTMLとは WebページのHTMLソースコードを見る方法 Google Chromeの機能を使って見る方…

getsメソッドを利用して案内表示をだす

今回はgetsメソッドを試す。 目次 getsメソッド getsを使ってコードを書く getsを案内に利用する 今回の動作確認環境 getsメソッド getsはIOクラスのインスタンスメソッド。 定数ARGVはコマンドと同時に入力した値を受け取る。 それに対してgetsメソッドはコ…

ローイングファン お試し版

このブログではWebアプリ「ローイングファン」の仕組みを紹介している。 今回は今までの記事に書いてきたコードを使ってローイングファンお試し版をつくる。 Webアプリ ローイングファンのURL https://rowingfan.herokuapp.com/ ボートレース(レガッタ)情報…

定数 ARGV、 配列の配列から要素を取りだす

今回はターミナル/PowerShellからデータを入力する方法と配列の配列からオブジェクトを取りだす方法を試す。 目次 定数ARGV 配列の配列から要素を取りだす 定数ARGV RubyにはARGVという定数がある。 Rubyリファレンスマニュアルは次のとおり。 Rubyリファレ…

eachメソッドを入れ子で使う

今回は3層構造の配列を扱う。 目次 3層構造の配列からif文を使って目当ての情報を検索する コードの解説 コード概略 正規表現 [ ] 今回の動作確認環境 3層構造の配列からif文を使って目当ての情報を検索する 3層構造の配列からif文を使って目当ての情報を検…