ぎょーぼのぶろぐ

IT系の話を書いていくブログです。今はRubyの勉強中。

【MySQL】サーバーのSQLモードを設定する

前置き 前の記事で、MySQL のテーブルで、日付型の列に、日付Zero値が入ってしまう話を書きましたが、その理由の一つが、MySQL のサーバー設定(SQLモード)が、デフォルトで日付Zero値を許容する設定になっているためです。 他のデータベースのように、日付…

【Ruby】MySQLで日付型のデータを扱う際の注意点(でも実際はSQLモードの問題・・・)

前置き Ruby から mysql2 gem を使って、MySQL へアクセスをいろいろ試してみよう、、、と思ったのですが、Qiita の記事で、こんなのを見つけてしまったので、こちらについていろいろ調べてみました。 Ruby mysql2 で prepareする際の注意点 - Qiita この記…

【Ruby】MySQL に接続してみる その2

前置き 【Ruby】MySQL に接続してみる その1 - ぎょーぼのぶろぐ の記事の続きです。 前回、MySQL側のデータの準備を行いましたので、今回は、Ruby側から MySQL に接続して、データを参照してみます。 MySQL に接続するための gem をインストールする。 Rub…

【Ruby】MySQL に接続してみる その1

前置き Ruby から、MySQL データベースに接続してみます。 今回の環境は、Windows10、Ruby 2.6.6、MySQL 8.0.22 です。 C:\Users\gyobo>ruby --version ruby 2.6.6p146 (2020-03-31 revision 67876) [x64-mingw32] C:\Users\gyobo>mysql --version mysql Ver…

【Ruby】require と require_relative

前置き require と require_relative の違いと注意点についてです。 require require は、引数で与えられたファイルパスのファイルを一度だけ呼び出します。このとき、引数のパスは、絶対パスでも相対パスでもOKで、相対パスの場合は、requireが呼ばれた時点…

【Ruby】数値に3桁区切り文字をつける

前置き Ruby で数値に3桁区切りを付加した文字列を取得する Tips です。 やり方 普通に考えると、 下桁から3桁ずつに区切って、 区切り文字を入れる。 それを、桁がなくなるまで繰り返す。 という手順になりますが、Ruby だと一行でできます。(他の言語でも…

【Ruby2.6】__FILE__ を使ってできること

前置き 前回の続きです。 __FILE__ を使って色々な情報を取得してみます。 実行している「ファイル名のみ」を取得する 最後のパス区切り文字以降がファイル名になるので、それを取り出すメソッドを使う、正規表現で抽出したり、文字列加工したりすることで取…

【Ruby2.6】__FILE__ について考える。

前置き Ruby の擬似変数__FILE__について、色々考えます。 そもそも、__FILE__ って何? __FILE__は、「擬似変数」と呼ばれるものの一種です。Webで公開されているリファレンスマニュアルによると・・・ __FILE__ 現在のソースファイル名 フルパスとは限らな…

【ツール作成】メインの流れ

前置き 最初に実行するメインフローの部分です。他の部分はできているので、順にメソッドを呼び出すだけになっています。 実装コード 最初に、必要なモジュール、クラスをrequireで読み込みます。 唯一、system.iniファイルだけは、固定でパスを与えています…

【ツール作成】ファイルコピーを実際に行うモジュール

前置き ファイルのコピーや、ディレクトリの作成を行うモジュール群です。 実装コード 全体のモジュール名は、BackupUtils としています。また、ファイルをコピーする際に、FileUtils.copyを使用するので、fileutils をrequireしています。 module BackupUti…

【ツール作成】Messageモジュールを作る

前置き 今回は、コンソールへのメッセージ出力、ログへの出力を制御する Messageモジュールについてです。 なんでモジュール化? コンソールへの出力なら、puts でいいし、ログ出力も loggerモジュールがあるので、その都度出力すればいいわけですが、今回、…

【ツール作成】Settingクラス関係

前置き ファイルバックアップツールの設定関係を管理するクラスを生成します。 設定の構成 今回は、iniファイルを2つ作っています。 システム自体の設定に関する項目を入れる system.ini 内容は以下のような感じです。 ;system.ini ;ログ出力設定 log_path=…

【ツール作成】プログレスバークラスを作る

前置き プログレスバーのクラスを作ります。 どうやって作る? 作りはとっても単純です。 全体、実行済みの値から、進捗度を計算 進捗度からバーの状態を生成 キャリッジリターン \r を使って、コンソール行を上書きする。 行全体を上書きしますが、一部だけ…

【ツール作成】Inifileモジュールを作る

前置き 設定をiniファイル形式のテキストファイルに書いておき、読み込むためのモジュールを作ります。 Inifile gem を使わなかった理由 最初は、gem にInifileというそのまんま、iniファイルの設定を読み込むための gem があったので、それを使おうと思って…

【ツール作成】最終構成

前置き 読者が誰もいないので、マイペースで書いてます。ついでに【その?】もなくしました。何番まで行くか分からないので。。。 ファイルバックアップツールですが、一応、ちゃんと動作するところまではできました。 ただ、プログラムの構成に自分で納得が…

【Ruby】Ruby でファイルバックアップツールを作ってみる その3

処理の流れを書いてみる そんなに大きなツールではないので、処理の流れを書いて整理してみます。 1 設定ファイルの読み込み # iniファイルから読み込み:コピー元ディレクトリ(複数)、コピー先ディレクトリなど # 設定が取れなかったらエラー 2 読み込ん…

【Ruby】Ruby でファイルバックアップツールを作ってみる その2

動作環境の要件 その1で、動作環境の要件について触れていなかったので、ここで書きます。 自分のPCで動作すること(Windows 10 環境) Ruby で作ること gem 等、必要があればインストールするが、あまり多くならないようにする。 これくらいでしょうか。…

【Ruby】Ruby でファイルバックアップツールを作ってみる その1

前置き 表題の通りです。 Ruby を勉強していますが、何か作ってみないとやっぱり感覚が分からないので、とりあえず作ってみることにしました。 何を作るか? じゃあ、何を作る?ということですが、どうせ作るなら自分で使えるものを作りたい、ということで、…

【Ruby v2.6】クラス変数 その2(メソッドで生成した場合)

前置き クラス変数についてまとめます。 その2は、クラス変数をメソッド内で生成した場合の挙動について。 クラス変数のメソッド内生成 その1でも書きましたが、クラス変数はメソッド外だけでなく、クラスメソッドやインスタンスメソッド内でも生成するこ…

【Ruby v2.6】クラス変数 その1(基本的なこと)

前置き クラス変数について、まとめてみます。個人的には、インスタンス変数、クラスインスタンス変数より注意が必要な感じがしています。 その1は、基本的なこと。 クラス変数 クラス変数は、そのクラス、およびそのクラスから継承されたクラスで共有され…

【Ruby v2.6】protected とクラスメソッド、インスタンスメソッドの関係 ※2020.8.25 追記

前置き C# や JAVA でのメソッドの protected 指定は、「そのクラスと継承したクラスからアクセス可能」という意味ですが、Ruby の場合はちょっと挙動が異なるみたいなので、まとめてみました。 protected なクラスメソッド、protected なインスタンスメソッ…

【Ruby v2.6】クラスメソッド その3(public, protected, private)

前置き Ruby のクラスメソッドについてまとめます。 その3は、クラスメソッドの public, protected, private について 書き方 クラス定義内で、デフォルトでクラスメソッドを定義すると、public のクラスメソッドとなります。 ただ、インスタンスメソッドと…

「JavaScript Primer 迷わないための入門書」

Ruby 関連を調べていて知った、伊藤淳一さん(Ruby のチェリー本の著者の方です)のはてなブログを読んでいたら、JavaScript の本についての紹介記事がありました。 blog.jnito.com その中で、「JavaScript Primer 迷わないための入門書」という本が、Web上…

【Ruby v2.6】クラスメソッド その2(クラスメソッドと特異クラス)

前置き Ruby のクラスメソッドについてです。その2は、クラスメソッドと特異クラスについて。 クラスメソッド その1で、クラスメソッドの定義方法は、self.[メソッド名] で定義する、と書きましたが、これは、インスタンスオブジェクトに特異メソッドを定…

【Ruby v2.6】クラスメソッド その1(基本的なこと)

前置き Ruby のクラスメソッドについてまとめます。 インスタンスメソッドと同じく、その1は、基本的なことを整理します。 書き方 インスタンスメソッドの定義と同じように、クラス定義内で、def の後にメソッド名を書きますが、メソッド名の前にself.をつ…

【Ruby v2.6】クラスインスタンス変数

前置き Ruby の「クラスインスタンス変数」についてまとめます。 クラスインスタンス変数とは 書き方 クラス定義内で、文字列の頭に「@」をつけて表します。インスタンスメソッド内で生成する「インスタンス変数」と同じ書き方なので注意が必要です。 生成 …

【Ruby v2.6】インスタンスメソッド その3(特異メソッド)

前置き Ruby のインスタンスメソッドについてまとめます。 その3は、特異メソッドについて。 特異メソッドとは インスタンスは、クラスで定義された内容で生成されますが、「特異メソッド」は生成されたインスタンス自身に、新たに定義するインスタンスメソ…

【Ruby v2.6】インスタンスメソッド その2(public, protected, private)

前置き Ruby のインスタンスメソッドについてまとめます。 その2は、public, protected, private について 書き方 クラス定義内で、デフォルトでインスタンスメソッドを定義すると、public のインスタンスメソッドとなります。 インスタンスメソッドの定義…

【Ruby v2.6】インスタンスメソッド その1(基本的なこと)

前置き Ruby のインスタンスメソッドについてまとめます。 その1は、基本的なこと。 書き方 クラス定義内で、def の後にメソッド名を書き、機能の記述をendではさむことで定義できます。 インスタンスメソッドのサンプル 以下、サンプルのクラスです。 clas…

【Ruby v2.6】インスタンス変数

前置き Ruby の「インスタンス変数」についてまとめます。 インスタンス変数とは 書き方 クラス定義内で、文字列の頭に「@」をつけて表します。「クラスインスタンス変数」と同じ書き方なので注意が必要です。 生成 インスタンス変数は、インスタンスメソッ…