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

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

Ruby

Ubuntu20.04にRuby3.0.0とPostgreSQL13をインストール - Windows10 VirtualBox Vagrant環境編

目次 環境 参考サイト rbenvを使ってRubyをインストールする Rubyのバージョンアップ PostgreSQL13をインストールする 不具合 PostgreSQL13と一緒にpgadmin4をインストールしようとしたらエラーになった pgのインストール時にエラー 環境 Windows10 Home 190…

Heroku 複数のアプリ間でHerokuPostgresデータベースを共有する

やったこと 前提 環境変数の取得 Herokuアプリで接続する 今回の環境 やったこと Herokuの同一アカウント上で運営している2つのアプリ間でデータベースを共有した。 前提 origin_appとnew_appを運営 アプリフレームワークはSinatra ORMフレームワークはActiv…

Sinatraのルーティングと日本語URL

Sinatraのルーティングはシンプルでわかりやすい そのうえ複雑なことも可能 今回はデータベースのデータをもとにして複数のページをつくってみた その際、日本語URLも試した 目次 今回の環境 ディレクトリ作成 テスト用ディレクトリ作成 Gemのインストール …

WSL(Windows Subsystem for Linux)のUbuntuからWindows上のファイルを参照する

目次 前提 Windows内のファイルをUbuntuから参照する Windows上でRubyのコードを書いてUbuntu上で実行する 今回の環境 前提 WSLが有効化されていてUbuntuがインストールされている Ubuntu内にRubyがインストールされている Windows内のファイルをUbuntuから…

Time差0.1秒未満のレースを選び出す

今回はデータベースに収録してあるボートレース(レガッタ)の記録から僅差のレースを選び出す。 データベースの操作にはActive Recordをつかう。 目次 条件 プログラムの内容 必要なGemのインストール .envファイルをつくる Rubyのコードを書く 実行する 結果…

Ruby 日時をつくるときの桁あわせ

Date.new 2018年11月9日を作りたい場合。 エラーになる例 require 'date' p Date.new(2018,11,09) エラー表示 Invalid octal digit p Date.new(2018,11,09) ^~ 日にち09の0が余計なので0をとる 一桁月の場合も同様 修正後 require 'date' p Date.new(2018,11…

仮想環境でSinatraアプリを起動する手順

目次 今回の環境 Sinatraアプリを起動する手順 ターミナル/PowerShellで仮想環境ディレクトリに移動する Vagrantを起動する 仮想環境にログインする(ssh接続する) Cyberduckを起動する Sinatraアプリが配置されているディレクトリに移動する PostgreSQLサー…

Sinatraでよく使うツール その3

今回はスクリプトをエスケープするメソッドについて。 目次 escape_htmlメソッド メソッド名を変更する alias_methodを使って変更する defで再定義 使い方 実行する hがない場合 ドキュメント escape_htmlメソッド スクリプトをエスケープするにはRack::Util…

Sinatraでよく使うツール その2

Sinatraのデフォルト設定では、publicという名のディレクトリ内にCSSなどの静的ファイルを配置するきまりになっている。 今回はこのディレクトリ名を変更する方法について試す。 目次 静的ファイル用のディレクトリ名を変更するコード ディレクトリ名を変更…

Sinatraでよく使うツール

今回はローカル開発環境で使うと便利なコードについて。 目次 起動時に -o [ipアドレス]オプション が不要になるコード つかい方 起動方法 ブラウザーに表示 Sinatraドキュメント 起動時に -o [ipアドレス]オプション が不要になるコード set :environment, …

Heroku PostgresにSQLファイルを読み込ます

Heroku PostgresにはCSVファイルを挿入できないようなのでCSVファイルからinsert文のSQLファイルをつくる。 つくったSQLファイルをHeroku Postgresに読み込ませればレコードを挿入できる。 目次 前提条件 CSVファイル Heroku Postgresのテーブル CSVファイル…

条件分岐を1行にまとめる

目次 if文のみ if文 else節が1つのみの場合 case文のwhen節を1行にまとめる 今回の動作確認環境 if文のみ 後置ifをつかう。 式 if 条件 event_name = 'エイト' # if 条件 式 end if event_name == 'エイト' puts "スイープ種目です。" end # 後置ifをつか…

Ubuntu18.04にRuby2.5.1をインストール``

前回つくったUbuntu環境にRuby2.5.1をインストールした。 参考にしたのは@nyanyamoさんの記事。 centOS7にrbenvとruby2.5.1いれたよ https://qiita.com/nyanyamo/items/952823ca044859232d82 目次 Gitの確認 rbenvのインストール パスを通す ruby-buildのイ…

WindowsPCに仮想環境をつくった

WindowsPCにCentOS環境をつくった。 ホストOSはWindows10 ゲストOSはCentOS6.8とCentOS7.5 目次 参考にした情報 CentOS7のインストール CentOS7にRubyをインストール 参考にした情報 仮想環境を構築するためにドットインストールのレッスンを参考にした。 ド…

手続き型のコードをオブジェクト指向型のコードに書きかえる

ボートレース(レガッタ)の結果をボートクラブ別に検索できるコードを前に書いた。 ローイングファン version1 - ローイングファンの日記 このコードが手続き型だったのでオブジェクト指向型に書きかえてみた。 (2018-07-20修正 コードの実行部分にwhile文を…

疑似乱数を発生させるrand

randは疑似乱数を発生させるメソッド。 今回はrandメソッドを使ってツイートの定型文に変化をつける。 目次 randを使う理由 レース(レガッタ)情報をツイートする 似たような内容のツイートはTwitterのアカウント停止処分をうける? randの使い方 randのリファ…

Ruby(Sinatra)アプリをHerokuで運営する

今回はRuby(Sinatra)のコードをHerokuでWebアプリにする。 コードは前に書いたものを使う。 ちなみにローイングファンもHerokuで運営している。 ローイングファン https://rowingfan.herokuapp.com 目次 Herokuとは SinatraアプリをHerokuで運営するために必…

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…

ローイングファン version1

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