おもこん

おもこんは「思いつくままにコンピュターの話し」の省略形です

CSVファイルを編集するプログラム「tcsv」

GitHubのtcsvレポジトリをアップデートしました。 少々大きいプログラムで全体を見直したので、時間がかかり、その間ブログの更新ができませんでした。 CSVとは CSVとは、コンマと改行で区切られた2次元データ形式のことです。 2次元データとは、エクセルデ…

「GTK 4 チュートリアル」のアップデート(完了)

ようやく「GTK 4 チュートリアル」のマイナー・アップデートが終わりました。 セクション28のGtkExpressionの全面書き直しに時間がかかりました。 「おもこん」の記録を見ると、37日もかかっていました。 アップデートされたチュートリアルはバージョン0.85…

「GTK 4 チュートリアル」のアップデート(続き)

GTK 4 チュートリアルのセクション22,24,25をアップデートしました。 セクション25のTiny Turtle Interpreter も若干のアップデートがあります。 tl (tern left) 左への方向変更の命令が加わった rp (repeat) 回数を指定したループ命令が加わった リサイズ…

「GTK 4 チュートリアル」の一部アップデート(続き)

新年あけましておめでとうございます。 今年もよろしくお願いいたします。 さて、GTK 4 チュートリアルのセクション17から21までをアップデートしました。 時間がかかってしまいましたが、それはエディタのプログラム(tfe6とtfe7)を見直すのに時間がかかっ…

「GTK 4 チュートリアル」を一部アップデート

「GTK 4チュートリアル」のセクション1から16をアップデートしました。 なお、このチュートリアルは英語で書かれています。 このチュートリアルは? このチュートリアルはLinux上でC言語でGTK 4ライブラリを使うためのチュートリアルです。 おかしな英語…

GObject tutorial をアップデート

長らく放置していた「GObject tutorial」の全体を見直し、アップデートしました。 バージョンを0.5から0.6にしました。 レポジトリはこちらです。 また、GitHub Pagesを使ったウェブサイトはこちらです。 GObject tutorial とは GObject tutorialは、その名…

徒然Ruby(37)Ruby/GTK4

【追記 2022/12/9】プログラムのバグ修正と「gtk4」gemのバージョン4.0.4(最初にこの記事を書いたときには4.0.3)について、「徒然なるままにRuby」のGitHubレポジトリに書き加えました。 追加、修正については申し訳ありませんがこちらをご覧になってくだ…

「はじめてのJekyll + GitHub Pages」マイナーアップデート

「はじめてのJekyll + GitHub Pages」をマイナーアップデートしました。 アップデートの内容は 誤りの訂正 site.baseurlについての記述の追加 その他 です。 このサイトのGitHubレポジトリはこちらです。 あらためて全部読み返しました。 結構時間がかかりま…

徒然Ruby(36)Ruby/GTK -- RubyとGUI

今回もRubyとGUIについて書きます。 内容はGTK 3とGTK 4をRubyで使うライブラリRuby/GTKです。 GTKと「Rubyで動くGTK」とは インストール ドキュメント Hello world 電卓 ビルダーの使用 GTKでできること GTKと「Rubyで動くGTK」とは GTKはオープンソースのG…

徒然Ruby(35)Glimmer -- RubyとGUI

今回もRubyとGUIのトピックです。 Glimmerを取り上げます。 Glimmerとは インストール Hello world Glimmerの使い方 ウィンドウとメニュー ボックス コントロール 表 図形の描画 データ結合 glimmer-dsl-libuiに付属の例 まとめ Glimmerとは GlimmerはRubyに…

徒然Ruby(34)Shoes -- RubyとGUI

Rubyはグラフィックについて弱い印象があります。 しかし、グラフィックはデバイスに関することなので、言語そのものには直接の関係はないはずで、あるとすればライブラリです。 今後グラフィック関係のgemが開発されることに期待しましょう。 そのような状…

徒然Ruby(33)Rails7 システムテスト

Rails7におけるシステムテストについて書きます。 テンプレートの作成 アサーション 良く使われるメソッド システムテストの例 テストの実行 ヘッドレスブラウザ まとめ テンプレートの作成 コマンドラインからシステムテストのテンプレートを作成します。 $…

徒然Ruby(32)Rails7 テスト

前回作ったWordbook(リソースフル)のテストを書いてみます。 RailsのテストはminitestをRails用に拡張したものです。 テストの種類 モデルのテスト フィクスチャ モデルのテスト テストの実行 機能テスト HTTPメソッドをシミュレートするメソッド ビューの…

徒然Ruby(31)Rails7 慣例にそったプログラミング

今回はRailsの慣例に沿った形でWordbookを作り直します。 Convention Over Configuration モデル ルーティング レイアウト、ナビゲーションバー、フラッシュ レイアウト ナビゲーションバー フラッシュ indexアクション searchアクション showアクション new…

徒然Rubyのウェブサイト(GitHub pages)を作りました

「徒然なるままにRuby」のウェブサイトを作りました。 おもこんに連載した「徒然なるままにRuby(1)〜(30)」を収録しました 収録にあたり、見直しをして、一部記載を修正しました おもこんに残っている「徒然Ruby」も一部修正しましたが、依然として古…

徒然Ruby(30)Rails7 検索と削除

今回はWordBookの検索と削除についてです。 検索 Search アクション List アクション 削除 Delete アクション Exec_delete アクション まとめ 検索 検索ではクライアントがサーバに正規表現を送り、マッチするデータをHTMLで送ってもらいます。 送信方法がGE…

徒然Ruby(29)Rails7 モデルとデータベース

今回はRailsにおけるデータの作成と保存、そして変更について説明します。 そのベースになるモデルとデータベースの話から始め、appendとchangeの動作について詳しく説明します。 MVC モデルとデータベース コンソール 単語の新規作成 appendとchange共用の…

徒然Ruby(28)Rails7とBootstrap5

一般に、HTMLは文書の構造を表し、CSSはその体裁(見栄え)を表します。 Railsは最終的にCSSを含むHTML文書を出力するので、この2つについての理解が必須です。 この記事ではとくにCSSの人気ライブラリであるBootstrapを紹介します。 BootstrapはJavascript…

徒然Ruby(27)「Ruby on Rails」インストール

Rubyの最も人気のあるアプリケーションであるRuby on Railsを取り上げようと思い、書き始めました。 予想してはいましたが、相当な分量になってしまいました。 そのため、何回かに分けて記事にすることにします。 また、対象となる読者のレベルをどうしよう…

徒然Ruby(26)gemとbundler

[:comtemts] Rubygems Rubyではライブラリのことをgem(英語の発音はジェムで意味は「宝石」)といいます。 そして、Rubyのライブラリ管理システムをRubygemsといいます。 gemはhttps://rubyges.orgに保管されています。 このウェブサイトをブラウザで開くと…

徒然Ruby(25)minitestのmockの詳細

minitestについて連続して2回書いてきました。 「minitestはドキュメントが少ない」という人がいますが、私も同感です。 例えば、モックとスタブの説明も少ないです。 そこで、今回はmock.rbのソースコードを参考に、モックの私的ドキュメントを書いてみまし…

徒然Ruby(24)minitest、mock、stub

今回もminitestの話です。 mockとstubに焦点をあて説明します。 単語帳プログラム コマンドラインとのインターフェース wordbook.rb のテスト スタブ(stub)とモック(mock) lib_wordbook.rbとそのテスト input.rb CSVクラス db.rbとそのテスト wordtest.r…

徒然Ruby(23)minitest、ripper

アプリ作成の記事でminitestを使いました。 今回はminitestについて、また一般にテストについて、私の考えを書こうと思います。 テストとは 一般にテストはプログラムのバグを除くために広範に使われている手法です。 開発に従事している方は既に良くご存知…

徒然Ruby(22)public、private、protected

今回はメソッドの呼び出し制限ついて説明します。 呼び出し制限にはpublic、private、protectedの3つがあります。 メソッドの公開と非公開 メソッドとレシーバ 呼び出し制限 publicメソッド self privateメソッド protectedメソッド まとめ メソッドの公開と…

徒然Ruby(21)特異メソッド、名前空間、モジュール関数

今回は特異メソッド、特異クラス定義、名前空間、モジュール関数について説明します。 特異メソッド クラスメソッド selfを使った定義 クラスメソッドの継承 モジュールの特異メソッド 名前空間 特異クラス定義 モジュール関数 定数の名前空間 特異メソッド …

徒然Ruby(20)アプリ制作、インストール、テスト

だいぶRubyの説明は進みましたから、このあたりでアプリを作る上でのポイントを述べたいと思います。 そのために、簡単な電卓プログラムを作り、GitHubにアップロードしたので、参考にしてください。 ファイル名で起動する方法 コマンドへの引数の処理 イン…

徒然Ruby(19)Case文

if〜elsif〜・・・〜else〜endは皆さん良く使うでしょうか? これは場合分けで良く使われる方法です。 これと同様の制御構造にcase文があります。 Cのswitch文に似ていますが、より強力な機能を持っています。 if-else-endよりも高い能力があるといえます。 …

徒然Ruby(18)Lambda

Procオブジェクトを生成するメソッドlambdaについて説明します。 lambdaの使い方 lambdaはKernelモジュールのメソッドで、使い方は前の記事のprocと同じです。 lamdaの後にブロックを書き、そのブロックがProcオブジェクトになります。 a = lambda{|x| print…

徒然Ruby(17)Procオブジェクト

今回はブロックを一般化したオブジェクトProcを説明します Procオブジェクトとは Procオブジェクトの作り方 Procオブジェクトの使用例 Procオブジェクトをブロックとして使う メソッドとブロックの違い ローカル変数の違い return、next、break Procオブジェ…

徒然Ruby(16)yield、Enumerable、リフレクション

ブロック付きメソッドの作り方を説明します。 eachメソッド eachとyieldの実例 EnumerableモジュールとEnumeratorクラス 引数の展開、block_given?メソッド リフレクション eachメソッド ブロック付きメソッドの代表格であるeachが何をしているかを考えてみ…