記事一覧
ポンコツ・キャンプ -文字列の中に含まれる複数の引数を操作するためのクラス
DOS画面からコマンドを入力した際、様々な引数を夫々のメソッド内で検査していく内にコードが煩雑になってしまったので、基本的なチェックを行なうためのクラスを作成してみました。
引数のチェックはいつも煩雑です。
一例を挙げると、linked_fileと言うコマンドには次のバリエーションを持たせています。
linked_file uid
linked_file uid フルファイル名/フルファイル名
ポンコツ・キャンプ-文字列の形式から適当なクラスに変換するGadget
「ポンコツ・キャンプ-シンプルなコマンド入力プログラム」の付録です。
コマンド入力をする際にパラメータの入力が付随する場合、パラメータを適当なクラスに変換する必要が出てきたので、作っていく内に膨らんできたので、moduleにまとめたものです。railsで既に対応しているかもですが。。。
例えば、こんな状況があったとします。
delete 1592delete 1592..1599
コマンド入
ポンコツ・キャンプ-シンプルなコマンド入力プログラム
世間では電子帳簿保存法の対応が迫られ、当社でも対応せねばと巷のアプリを検討することになりました。案外、使い易そうなアプリもあったのですが、全てサブスクリプション。。。毎年、永久に金をむしり取られる仕組みのようです。数年後、データが溜った後に料金の改定があったらどうなるのでしょう?悲惨な結果しか待っていないような気がします。
仕方なく自作することにしました。
幸いにも中々良いものが出来ました。
現
#AIに奪われない仕事 とは?
日経COMEMO から 「#AIに奪われない仕事」というお題が出ておりますので、久しぶりに投稿してみました。
・代替されやすい仕事の共通点は何でしょうか?
現実問題として、AIに奪われてしまう仕事、職種、作業は今後多くなってゆくと思います。仕事の中身の多くは繰り返しによって成り立っています。
人々は、仕事に特化することで、速さ、処理量、価格、技能と云ったことに対応しています。既に人の手によって
ポンコツ・キャンプ -金種計算から思う、 明日の自分に負債を作らぬ方法-
もう、ネタも尽きてきたので、金種計算で遊んでみることにします。
ゴール:コードは、常に変更に晒されており、そのことを意識して備える
習慣を身に着け、明日の自分に負債を負わせないようにする
手にすることが出来る成果:
相変わらずの泥臭い手法
絡み合ったコードを分ける、まとめるを意識すること
読み易い、分かり易いコードは、絶対の正義である
Step 1. ベッタベ
【陳謝版】.mock_in_sequenceを作ってみました。
適当な投稿をしてしまい申しわけありませんでした。
argsの付いた場合の評価がまったくされていなかったのですが、
なんとか修正が出来そうです。
まずは、修正結果から。
# Purpose: The methods in a target method are mocked in sequence# mock_in_sequence(object, target_method, exp_sequ
【改善版】.mock_in_sequence を作ってみました。
前回の投稿。
前回のresults.verify(self)のselfの不気味さをなんとかせねばとポンコツ君は奮闘しましたとさ。
気負い過ぎてしまった感がアリアリだったので、少し基本に立ち返ることにしました。次の仕様に変更することにします。
mock_in_sequence(object, target_method, exp_sequence_args)
レシーバを引数に収めて、関数的に
.make_hash_list_in_arrayと.stdio_coverageをリファクタリングして、ちょっとだけ格好良くしてみました。
別の投稿の記事を書いていたら、ふと表題の二つのメソッドをもう少し
格好良く出来ないかと願望が芽生えてきたので、やってみました。
以前の記事は、こちら。
変更方針:
呼び出しが、どちらも、
make_hash_list_in_array(hash_list)
stdio_coverage(hash_list)
と関数的でオブジェクト指向っぽくなかったので、
has_list.ma
【続】ポンコツ・キャンプ -MiniTestの簡単なツールを作るまでの道程-
ポンコツ・キャンプの続きです。ツール作成の最終投稿になります。
さっそく続きを始めることにします。
まず、はじめに、前回のポンコツ・キャンプでは次の収穫がありました。
配列を集合として演算できること
一般的なオブジェクトのモデルを手にしたこと
各クラス/モジュールのメソッドのシンボルを配列で受け取れること
また、各属性から親までの一連の応答メソッドのシンボルを配列で受け取れること
今
ポンコツ・キャンプ -MiniTestの簡単なツールを作るまでの道程-
何とかキャンプってのが流行っているようなので、ポンコツながら、少しでもお役に立てるかもしれないと真面目に取り組んでみようかと思います。
ゴール:
メソッドの存在を確認するテスト用ツールの作成
public, private, protectedの属性別でメソッドの確認を出来るようにする
要は、assert_respond_toを便利にしたツール
手にすることが出来る知識:
配列の積集合、差集合
【またまた】DOS画面での入力処理は面倒臭いですよね。
【続々】で、謎の古代文字 i_con = -> { gets(chomp: true) }を別の古代文字に差し替えて流用したことに対しての雑感です。
メソッドの引数に初期値のオブジェクトを与えることの利点。
ポンコツの目から見たプロシージャとは。
メソッドの引数に初期値のオブジェクトを与えることの利点。
クラス/モジュール内で、
def something_method(arg = som
【続々】DOS画面での入力処理は面倒臭いですよね。
wait_press_key(explanation, regulations, allow_only_enter = false)
.gets_with_conditionの兄弟になります。指定のキーを押すと、エコー無しでキーを返すように.gets_with_conditionにラップしたものです。
標準添付ライブラリの io/consoleを使用します。
ANSI::EscapeSeque
【続】DOS画面での入力処理は面倒臭いですよね。
.gets_with_regulation(explanation, passing_lst, allow_only_enter = false)
.gets_with_conditionの兄弟になります。もっともよく使うだろうパターンのために.gets_with_conditionにラップしたものです。
通過条件をブロックに記述する必要がなくなり、passing_lstに通過条件の文字列を配
DOS画面での入力処理は面倒臭いですよね。
GUI環境では、リストボックス、コンボボック、チェックボックスなど
多彩なコントロールが用意されていて入力処理がとても楽チンです。
なぜなら、それらコントロールによって、設定された値以外は返さないようになっているからです。
CUI環境だとそうはいきません。大文字・小文字の混在、typo、変なとこに空白が紛れていたり、うっかりENTERのみを押したりと色々なことをオペレーターさん達はやってくれます