2016 meta-ruby
Table of Contents
- 1. おしらせ
- 2. 講義予定 (15) 2017-02-06
- 3. 講義へのメモ
- 4. サイトの木構造
ホーム / 講義 / ruby / OO / poker開発 / emacs / meta-ruby / note / github-repos / svn-repos 2015 /
1 おしらせ
1.1 2017-02-06
レポート課題です。
〆切は,成績報告に間に合わせるため,一応 2/16 にします。
提出が終了したら,その旨メールを下さい。
宛先は,msyk054@gmail.com です。
遅れる人も,その旨メールを下さい。
遅れる人も,3月の第3週末までには提出してください。
Object指向に関するまとめ oo.org
下記ドキュメントおよび講義中にふれたObject指向に関することを, 適切にまとめてください。
meta-ruby.org
Ruby における,次の事柄について,まとめてください:
- オブジェクトとは
- クラスとは
- クラス階層とは
- メタクラス階層とは
- スコープとは
- クロージャとは
- Rubyらしさとは https://docs.ruby-lang.org/ja/latest/doc/spec=2fintro.html
ruby programming examples/*.rb
[X]file_print.rb[X]home_directory.rb[X]shuzo-meigen.rb home work[X]dir_traverse.rb home work[X]sinatra による org-mode 文書閲覧サービス
デザインパターン pattern/*.org
Ruby2.0.0で学ぶ、14個のデザインパターンを作りました について,講義 ではやらなかったデザイン・パターンについて,一つのパターンを動かし てください。
- org ファイルにまとめる
- 適切なディレクトリに分ける
感想と意見 myopinion.org
講義への感想・意見を書いてください。
1.2 2017-01-30
レポート
- oo.org
- meta-ruby.org
- examples/
- pattern/なにか一つのパターンを動かす
1.4 2016-12-12 オブジェクト指向の本懐 - Strategic Choice 始めましょう。
1.5 2016-12-12 例題プログラムを github に置きました
work に置きました。
1.6 2016-12-05
サブバージョン リポジトリ https://wiki.cis.iwate-u.ac.jp/svn/meta-ruby/ に
2016 を 用意しました。
1.7 2016-10-17 休講します。
((s-:)) ネンリンピック長崎 サッカー出場のため
1.8 2016-10-12
初回の講義に参加できなかった人のために, もう一度軽くガイダンスを行ないす。
1.9 2016-10-03 開講します。
2 講義予定 (15) 2017-02-06
self => ~suzuki/meta-ruby.git/org/lects/15/plan.org
2.1 講義内容
Done Ruby programming
課題の提出
- 自分のレポート提出フォルダに,Examples フォルダを作成し,
- 課題ごとに,作成したプログラムと,その説明,実行とその結果をまと めた org 文書を作成し,
- 上記 Examples/ フォルダに提出してください。
Todo オブジェクト指向について
オブジェクト指向の本懐 - Strategic Choice を始めましょう。[5/6]
~suzuki/meta-ruby.git/org/oo/strategic-choice.org ((@github/@cis/@s))
読む予定のページです。~/rubys/oo.org にまとめてください。
Todo Rubyのオブジェクト原理主義
https://docs.ruby-lang.org/ja/latest/doc/spec=2fintro.html
を読んで Ruby らしさについて考えましょう。
Todo メタプログラミング Ruby
file://~suzuki/COMM/Lects/meta-ruby/book を使います。
~/rubys/meta-programming-ruby.org にまとめながらやっていきましょう。
今日は,meta-ruby と meta-programming-ruby.org ((org@github/org@cis/@)) を使って,
[ ]instance_eval と 呼び出し可能オブジェクトに ついて説明します。[X]ブロックとクロージャ,スコープゲートについて説明します。[X]ブロックとクロージャについて説明します。
Ruby オブジェクト指向プログラミング
デザイン・パターン (@github @cis @s)
Ruby2.0.0で学ぶ、14個のデザインパターンを作りました は,ruby で書 いたデザイン・パターンの実装例です。これを読んで,デザイン・パター ンの心を理解しましょう。
- デザインパターン | TECHSCORE(テックスコア) デザインパターンのリファレンスに使いましょう。
- uml.org ((@github/@cis/@s)) UMLについてのメモを作成しています。
- ((s-:)) の design-pattern.org
((org@github/org@cis/@))
[ ]AbstractFactory・パターン 2/6 もう一度やります
## nil
abstract-factory-pattern.org ((@github/@cis/@s))
[X]シングルトン・パターン
## nil
singleton.org ((@github/@cis/@s))
[X]ビルダ・パターン
## nil
builder-pattern.org ((@github/@cis/@s))
[X]オブザーバ・・パターン
## nil
単体テストを体験しましょう。
- テストとかテストによる開発については,簡単に,ソフトウェア・テスト, テスト駆動開発とは で紹介します。
- Ruby の単体テスト・フレームワーク Test::Unit をやってみましょう.
- note ((.org.github .org.emacs)) のtest-unit を読んでください。
2.2 終わったこと
Doing Ruby programming
Done Ruby入門 [1/2]
- file://~suzuki/rubys/ruby-begin.html emacsで見てください
- ruby-begin.org@repos github 適宜raw mode で見てください
Done とほほのRuby入門 (./ruby.html 2.ruby入門-2.1 2016)
~/rubys/ruby-begin.org にまとめながらやっていきましょう。
- begin~end, 例外処理
- 正規表現
- メソッド
- クラス
Todo オブジェクト指向について
Done 人類がオブジェクト指向を手に入れるまでの軌跡 - Qiita
読みまとめ始めましょう。Strategic Choice も参考にします。
[X]ソフトウェア危機[X]構造化プログラミング[X]モジュラープログラミング[X]抽象データ型[X]オブジェクト指向 メッセージングと動的ディスパッチ[X]オブジェクト指向 仮想機械とメッセージング
~/rubys/oo.org にまとめてください。
org-mode で書いてみましょう
Todo メタプログラミング Ruby
Ruby オブジェクト指向プログラミング
講義のための環境つくり
Doing 文芸的プログラミング環境
- emacs org-mode
- emacs org-mode + babel
Done ruby実行環境
./ruby.html [2/2]
[X]ruby情報[X]ruby環境作り[4/4][X]rbenv とは[X]自前で rbenv+ruby-build をインストール[X]ruby のインストール 先週,
rbenv install 2.3.0-dev
ができない人がいましたが,どうも,
~/.rbenv/plugins/ruby-build/bin
にある,ruby-install が認識されていないためのようです。 取り敢えず,~/.rbenv/plugins/ruby-build/bin を PATH に入れてく ださい。
[X]gem (rubyのパッケージ管理)
Done ruby プログラミング環境
[X]emacs-24.5[X]emacsのパッケージと設定
2.3 やらなかったこと
3 講義へのメモ
ここには,((:-s)) の,講義前や講義後に思ったことを,書き留めてあります。
3.1 2016-12-12 へのメモ
- oo.org, oo-note.org を見せる
- strategic choice
- meta-ruby つづき
- ~suzuki/meta-ruby.git/book@, ~suzuki/meta-ruby.git/codes@,
- test-unit 始める
3.2 2016-12-05 へのメモ
- oo.org, oo-note.org を見せる
- strategic choice
- meta-ruby 始める
- ~suzuki/meta-ruby.git/book@, ~suzuki/meta-ruby.git/codes@,
- test-unit 始める
3.3 2016-11-28 へのメモ
file://~suzuki/COMM/Lects/meta-ruby/2016/
- oo-note を見せる
- strategic choice
- meta-ruby 始める
- ~suzuki/meta-ruby.git/book@, ~suzuki/meta-ruby.git/codes@,
3.4 2016-11-21 へのメモ
oo.org modular programming
module としての「まとまり」の評価
- call graph
- lexical
ruby begin tohoho
文法とクラスライブラリ
- ruby practical programming
- FileとIOと継承
- Fileと特異メソッド
- org-mode + babel
- :tangle
- execute
- Directory
- open-uri, nokogiri
emacs org-babel の例
lects/ruby-begin.org
3.5 tohoho
- 構文
[/][ ]Rubyの書き方[ ]文・式[ ]コメント(#)
- 数値・文字列・型
[/][ ]整数(Integer)[ ]浮動少数点数(Float)[ ]論理型(Boolean)[ ]文字列(String)[ ]エスケープシーケンス(\x)[ ]式展開(#{…})[ ]コマンド出力(`…`)[ ]ヒアドキュメント(<<)
- 変数・定数
[/][ ]識別子[ ]ローカル変数(var)[ ]インスタンス変数(@var)[ ]クラス変数(@@var)[ ]グローバル変数($var)[ ]定数(CONST)[ ]擬似変数(true, false, nil, self)
- 配列・ハッシュ・範囲
[/][ ]配列(Array)[ ]ハッシュ(Hash)[ ]範囲(Range)
[ ]制御構文[/][ ]もし~ならば(if, then, else, elsif)[ ]もし~でなければ(unless, then)[ ]~のあいだ(while, do)[ ]~になるまでのあいだ(until, do)[ ]~のあいだ(for, in, do)[ ]~の場合(case, when)[ ]ループを抜ける(break)[ ]ループを繰り返す(next)[ ]ループを繰り返す(redo)[ ]例外処理(raise, begin, rescue, else, ensure)
3.6 ruby program
- fileの読み書き
- fileの中身の変換
- grep
- 行の配列
- Directory 操作
- directory構造のコピー
- 各ファイルになんらかの変更を加える
- directory の木構造を印刷する
- directory構造のコピー
Dir, File, Io, Array, String
3.7 2016.11.14へのメモ
- wiki https://github.com/masayuki054/meta-ruby/wiki
- とほほのRuby入門 は,toorg しながらノートを
- toorg
- ~suzuki/COMM/Prog/elisp/toorg.el
- ~suzuki/COMM/bin/toorg
- オブジェクト指向入門のまとめ にも言及
- よいソフトウェアとは
- 評価基準と原則
- モジュール性
- OOへ至る道
3.8 2016.10.31~11.07 へのメモ
ruby tutorial
- irb の使い方
- run-ruby の使い方
oo.begin
- ~/xxxx/oo.org
emacs
- org-mode
- org-mode babel
3.9 2016.10.24 のメモ
self => ~suzuki/meta-ruby.git/org/lects/note.org
emacsの設定
- ruby-mode
- org-mode
Emacs24.5日本語マニュアル登場!!info作成方法
https://emacs.rubikitch.com/emacs245-manual-ja/
suzuki@cis.iwate-u.ac.jp:local/info
#11 Emacs に革命を起こすパッケージ「helm」 (Software Design 2015年3月号掲載記事) Emacs helm インストール 設定 使い方
org-mode の紹介
#10 巨大なオーガナイズシステム「org-mode」の世界 (Software Design 2015年2月号掲載記事) Emacs org-mode インストール 設定 使い方
org-mode babel の紹介
p 1.class p "abc".class
Fixnum String
4 サイトの木構造
lstree ~/COMM/Lects/meta-ruby/git
/users/home/masayuki/COMM/Lects/meta-ruby/git@2017年 1月23日 月曜日 09時42分23秒 JST
+-README.md
+-docs-+-Figs-+-class-diagram-+-singleton.png
| | +-class_hier.png
| | +-object_and_class.png
| +-emacs.html
| +-index.html
| +-lects.html
| +-links.html
| +-meta-ruby.html
| +-note.html
| +-oo.html
| +-poker.html
| +-ruby.html
| +-styles-+-bigblow-+-css-+-bigblow.css
| | | +-hideshow.css
| | | +-htmlize.css
| | +-images-+-checked.png
| | | +-fixme.png
| | | +-halfchecked.png
| | | +-info.png
| | | +-note.png
| | | +-tip.png
| | | +-unchecked.png
| | | +-warning.png
| | +-js-+-ZeroClipboard.swf
| | +-bigblow.js
| | +-hideshow.js
| | +-jquery-1.11.0.min.js
| | +-jquery-1.9.1.min.js
| | +-jquery-ui-1.10.2.min.js
| | +-jquery.localscroll-min.js
| | +-jquery.scrollTo-1.4.3.1-min.js
| | +-jquery.zclip.min.js
| +-lib-+-js-+-jquery.stickytableheaders.min.js
| | +-stickytableheaders-license.txt
| +-readtheorg-+-css-+-htmlize.css
| | | +-readtheorg.css
| | | +-rtd-full.css
| | +-js-+-readtheorg.js
| | +-readtheorg.org
| +-sos-+-css-+-bigblow.css
| | +-hideshow.css
| | +-htmlize.css
| | +-sos.css
| +-images-+-checked.png
| | +-fixme.png
| | +-halfchecked.png
| | +-info.png
| | +-note.png
| | +-tip.png
| | +-unchecked.png
| | +-warning.png
| +-js-+-ZeroClipboard.swf
| +-bigblow.js
| +-hideshow.js
| +-readtheorg.js
| +-sos.js
| +-sos.js~
| +-sos.org
| +-tags
+-org-+-#index.org#
+-Makefile
+-Makefile.org
+-Rakefile
+-Rakefile.org
+-Rakefile.setup.rb
+-docs.org
+-emacs-+-contents.org
| +-emacs-note.org
| +-emacs-setup.org
| +-org-note.org
+-emacs.html
+-emacs.org
+-index.html
+-index.html~
+-index.org
+-info-+-common-header.html
| +-common-header.org
| +-index-bigblow-header.setup
| +-index-readtheorg-header.setup
| +-index-sos-header.setup
| +-links.org
| +-org-link-make.org
| +-site-tree.org
+-lects-+-01-+-01-GTD.org
| | +-01-todo.org
| | +-1.html
| | +-1.org
| | +-contents.org
| | +-plan.org
| +-02-+-contents.org
| | +-index.html
| | +-index.org
| | +-plan.org
| +-03-+-03-note.org
| | +-Makefile
| | +-contents.org
| | +-index.html
| | +-index.org
| | +-plan.org
| | +-response.org
| | +-resume.org
| +-04-+-Makefile
| | +-contents.org
| | +-index.html
| | +-index.org
| | +-plan.org
| +-05-+-Makefile
| | +-contents.org
| | +-index.html
| | +-index.org
| | +-note.org
| | +-plan.html
| | +-plan.org
| | +-resume.org
| | +-working.org
| +-06-+-Makefile
| | +-contents.org
| | +-index.html
| | +-index.org
| | +-plan.html
| | +-plan.org
| +-07-+-Makefile
| | +-contents.org
| | +-index.html
| | +-index.org
| | +-plan.html
| | +-plan.org
| +-08-+-Makefile
| | +-contents.org
| | +-index.html
| | +-index.org
| | +-plan.html
| | +-plan.org
| +-09-+-Makefile
| | +-contents.org
| | +-index.html
| | +-index.org
| | +-plan.html
| | +-plan.org
| +-10-+-Makefile
| | +-contents.org
| | +-index.html
| | +-index.org
| | +-plan.html
| | +-plan.org
| +-11-+-Makefile
| | +-contents.org
| | +-index.html
| | +-index.org
| | +-plan.html
| | +-plan.org
| +-12-+-Makefile
| | +-contents.org
| | +-index.html
| | +-index.org
| | +-plan.html
| | +-plan.org
| +-13-+-Makefile
| | +-contents.org
| | +-index.html
| | +-index.org
| | +-plan.html
| | +-plan.org
| +-14-+-Makefile
| | +-contents.org
| | +-index.html
| | +-index.org
| | +-plan.html
| | +-plan.org
| +-15-+-Makefile
| | +-contents.org
| | +-index.html
| | +-index.org
| | +-plan.html
| | +-plan.org
| +-Makefile
| +-a.org
| +-announce.org
| +-contents.org
| +-index.html
| +-index.org
| +-meta-programming-ruby.org
| +-note.org
| +-openning.org
| +-org-links.org
| +-preface.org
| +-ri20min.rb
| +-ruby-begin.org
| +-ruby-note.org
| +-tohoho-ruby-1.org
+-lects.html
+-lects.org
+-links.org
+-log.org
+-matz-+-Makefile
| +-index.html
| +-index.org
| +-matz-1-1.org
| +-matz-1-2.org
| +-matz-1-3.org
| +-matz-2.org
| +-matz-3.org
| +-matz-4.org
| +-matz-4.org.txt
| +-matz-6.org
+-meta-ruby-+-Makefile
| +-babel-+-mymethod.rb
| +-block.org
| +-class.org
| +-contents.org
| +-index.html
| +-index.org
| +-intro.org
| +-methods.org
| +-object_model.org
| +-resume.org
| +-resume_meta_ruby.org
| +-resume_object_model.org
+-meta-ruby.html
+-meta-ruby.org
+-note-+-Makefile
| +-babel-+-sqlite3-master-test.rb
| | +-sqlite3-master.rb
| | +-test-+-test_sample.rb
| +-class_hier.graffle
| +-class_hier.png
| +-contents.org
| +-index.html
| +-index.org
| +-memo.org
| +-org-doc-+-notes-+-readme.html
| | | +-readme.org
| | +-org-+-run.org
| | +-readme.org
| | +-run-+-0
| | | +-1
| | +-src-+-Gemfile
| | +-app.rb
| | +-config.ru
| +-poker.org
| +-ruby-begin-note.org
| +-ruby-life.org
| +-ruby-note-begin.org
| +-ruby-note-meta-block.org
| +-ruby-note-refe.org
| +-ruby-note-sinatra-org.org
| +-ruby-note-sqlite.org
| +-ruby-note-string.org
| +-ruby-note-test.org
| +-ruby-note.html
| +-ruby-note.org
| +-sinatra-org-+-org-+-original-run.org
| | +-run.org
| +-readme.org
| +-run-+-0
| | +-1
| +-src-+-Gemfile
| +-Gemfile.lock
| +-app.rb
| +-config.ru
| +-ruby-note-meta.html
| +-ruby-note.html
+-note.html
+-note.html~
+-note.org
+-oo-+-contents.org
| +-index.html
| +-index.org
| +-oo-note-oo-sucks.org
| +-oo-principle.org
| +-strategic-choice.org
| +-to_oo.org
| +-to_oo_note.org
+-oo.html
+-oo.html~
+-oo.org
+-org-docs-+-Makefile
| +-Makefile.org
| +-contents.org
| +-index.html
| +-index.org
+-poker-+-Rakefile.org
| +-babel-+-Rakefile
| | +-poker.rb
| | +-src-+-card.rb
| | | +-constant.rb
| | | +-deck.rb
| | | +-hand.rb
| | | +-player.rb
| | +-test-+-test-card.rb
| | +-test-constant.rb
| | +-test-deck.rb
| | +-test-hand.rb
| | +-test-player.rb
| +-card.org
| +-constant.org
| +-deck.org
| +-hand.org
| +-index.html
| +-index.org
| +-old_src-+-*shell*
| | +-Rakefile
| | +-Rakefile.org
| | +-card.rb
| | +-card.rb.org
| | +-constant.rb
| | +-constant.rb.org
| | +-deck.rb
| | +-deck.rb.org
| | +-hand.rb
| | +-hand.rb.org
| | +-play.rb
| | +-player.rb
| | +-player.rb.org
| | +-poker.rb
| | +-poker.rb.org
| | +-test-card.rb
| | +-test-card.rb.org
| | +-test-constant.rb
| | +-test-constant.rb.org
| | +-test-deck.rb
| | +-test-deck.rb.org
| | +-test-hand.rb
| | +-test-poker.rb
| +-org-test.org
| +-player.org
| +-poker.html
| +-poker.org
+-poker.html
+-poker.org
+-ruby-+-contents.org
| +-pry.org
| +-ruby.org
+-ruby.html
+-ruby.org
+-touch
+-work-+-abstract_factory-+-animal.rb
| +-animals-+-duck.rb
| | +-frog.rb
| +-do_duck_and_waterlily_factory.rb
| +-do_frog_and_algae_factory.rb
| +-duck_and_frog.rb
| +-organism_factories-+-#frog_and_algae.rb#
| | +-duck_and_waterlily.rb
| | +-frog_and_algae.rb
| +-organism_factory.rb
| +-plant.rb
| +-plants-+-algae.rb
| | +-waterlily.rb
| +-waterlily_and_algae.rb
+-babel-+-meta-class-hierarchy.rb
+-block.org
+-builder-pattern-+-builder.rb
| +-builders-+-saltwater.rb
| | +-sugarwater.rb
| +-director.rb
| +-test_builder-pattern.rb
+-builder-pattern.org
+-class-diagram-+-material-water-builder.png
| +-singleton.png
| +-sugar-water-builder.png
+-design-pattern.org
+-doc-+-_index.html
| +-class_list.html
| +-css-+-common.css
| | +-full_list.css
| | +-style.css
| +-file_list.html
| +-frames.html
| +-index.html
| +-js-+-app.js
| | +-full_list.js
| | +-jquery.js
| +-method_list.html
| +-top-level-namespace.html
+-examples-+-dir_print.rb
| +-file_print.rb
| +-home_directory.rb
| +-shuzo_meigen.rb
+-examples.org
+-meta-programming-ruby.org
+-singleton-+-singleton.rb
+-uml.org