2023-06-13から1日間の記事一覧

ruby(正規表現)

文字列(String)の置き換えや取得方法 ①Regexp#matchでマッチした時に返ってきたMatchDataを変数名[ ]で取得する。②String#scanで正規表現にマッチした部分を配列に入れて返す。③String#[ ]で正規表現にマッチした部分を抜き出す。④gsubで第1引数にマッチし…

Ruby(lsコマンド3)

rubocopで出た警告 正規表現を%rで囲む ls.rb:38:29: C: [Correctable] Style/RegexpLiteral: Use %r around regular expression. filename = n.gsub(/.+\/([^\/]+$)/){ $1 } ^^^^^^^^^^^^^^^ n.gsub(/.+\/([^\/]+$)/)の部分をn.gsub(%r{.+/([^/]+$)}) に修…

Ruby(lsコマンド2)

今回やった事 TODOリスト ①パラメーターを取得 ②パラメーターがある場合はパスを指定しファイル検索、無い場合はカレントディレクトリのファイルを検索 ③ファイル名が何文字か1つずつ調べ、〇文字以上のものがあれば2列、◯文字以上のものがあれば1列の出…

Ruby(lsコマンド)

調べたこと ・File::Stat#modeで出てくる数値の意味が分からず、参考にしたもの。 lsコマンドで表示されるファイルのモード(drwxr-xr-x) 〜RubyのFile::Stat#modeとは〜 rubyでパーミッションの記号表記をどう実装するのがいいのか - komagataのブログ ・uid…

Ruby(ボウリングプログラム)

ボウリングプログラムの修正 アドバイスして頂いた事を1つづつ試してみた。 修正前のコード # frozen_string_literal: true score = ARGV[0] scores = score.split(',') shots = [] scores.each do |s| if s == 'X' shots << 10 shots << 0 else shots << s…

プロを目指す人のためのRuby入門を読んだ

戻り値について ・if文、unless、caseは最後に評価された式を戻り値として返す。・メソッドも最後に実行した式がそのまま戻り値になる。だから、変数 = メソッド、if文、unless、caseで変数に代入出来る。 条件演算子(三項演算子) 式 ? 真だった場合の処理…

rubygems、debug、Bundler、RuboCop

Gemとは 決まったフォーマットで提供されるRuby言語用のライブラリ。 RubyGems gem専用のパッケージ管理システム。RubyGems の機能は apt-get に似たものとなっている。 ・分かりやすい記事RubyGems - Wikipedia Bundlerとは gemは個別に手動インストール出…

Ruby(カレンダープログラム5)

カレンダーのプログラムについて 前回の状態 class Calendre require 'optparse' require 'date' def initialize(cal_date) @year = cal_date["y"] @month = cal_date["m"] firstday = Date.new(cal_date["y"].to_i, cal_date["m"].to_i, 1) lastday = Date.…

Ruby(カレンダープログラム4)

前回よく分からなかった事について Ruby: EnumerableをincludeするよりEnumeratorを返そう(翻訳)|TechRacho by BPS株式会社 自分のメソッドが値をyieldするのであれば、ブロックが渡されない場合には常に#to_enumでそのメソッド自身を元にEnumeratorを作…

Ruby(カレンダープログラム3)

前回よく分からなかった.newの仕方について リファレンスに載っているコード str = "xyz" enum = Enumerator.new(str, :each_byte) p enum.map {|b| '%02x' % b } # => ["78", "79", "7a"] Enumerator.newにわたす引数(str, :each_byte)のメソッド部分は第一…

Ruby(カレンダープログラム2)

EnumeratorとEnumerable Enumerableについて module Enumerable (Ruby 3.1 リファレンスマニュアル) Array, Hash, Range, Enumerator等のクラスで、 Enumerableモジュールはインクルードされています。ただし、効率化のため、そのクラスでEnumerableと同名・…

Ruby(カレンダープログラム1)

まず、色々読んでみてARGVとはなんだ?となった。ARGVについてObject::ARGV (Ruby 3.1 リファレンスマニュアル) ARGVが使えそうと思いやってみた。 calender.rbの記述 require 'optparse' year = ARGV.getopts('y:') p year -y 2022を渡すと、変数yearにhash…

Ruby1

条件分岐 * IfFalseまたはnilは条件を満たさず、それ以外は条件を満たす事になる。 ||はor(AまたはB) &&は&(AかつB) 条件が3つ以上の時はcaseが使える。もしも複数の候補と合致するときは、最初に合致したwhen節飲み処理を実行する。 メソッドの引数につ…

Git10,Ruby

受講中のオンラインスクールでのGithubの使い方 チームメンバーにコミット権限付与し、自分のアカウント以下にフォークするのではなく、本家リポジトリに別ブランチを作って作業を行い、main ブランチに対してPRを送る。 リモートのmasterブランチに直接push…

Git9

Forkした場合のお互いの変更内容について 子のリポジトリの変更があった場合、親のリポジトリのメインページに変更内容が表示される事がGit-itで分かった。それと同じように親のリポジトリの変更があると子のリポジトリのトップページにも表示される様だった…

Git8

リポジトリ名の設定 ちなみにgit versionは2.36.0。新規作成したブランチがmasterで、なぜ?となった。 参考になった記事・Git2.28のハイライト| GitHubブログ・Gitのデフォルト・ブランチ名を変更する方法 | Rriver Git 2.28から、git initは新しいリポジト…

Git7

やってみたこと 難しすぎたので理解するためにやった事を図にしてみました。 ①githubのjlord/patchworkのメインページからforkをクリック。Forkは人のリモートリポジトリから自分のリモートリポジトリにコピーすること ②forkしてきたmame0124/patchworkのメ…

Git6

pureの設定 brew install pure して、.zshrcに下記を設定した。 autoload -U promptinit; promptinit prompt pure Pureを調べていたら、色々なカスタマイズがあり、みんなの使いこなし方がすごく、圧倒された。 エイリアスの設定 ~/.zshrcにalias エイリアス…

Git5

練習で使ったリポジトリの削除 参考になった記事gitのローカルリポジトリを削除する方法 | 未経験エンジニアの道しるべ リモートリポジトリの削除 削除したいリポジトリのメインページのsettingsタグをクリック。 ずっと下にクリックしていき、Delete this …

Git4

コミットの書き換え前回の続き コミットを抜き取る cherry-pickは、別のブランチから今いるブランチへ、必要なコミットだけをコピーできる便利なコマンド。 $ git cherry-pick [コミットIDその1]..[コミットIDその2] 競合が発生したら、競合箇所を修正し、gi…

Git3

コマンド ブランチをマージする $ git merge <統合したいブランチ名> 指定したブランチがHEADの指しているブランチに取り込まれる。 ブランチを削除する $ git branch -d <ブランチ名> branchコマンドに -d オプションを指定して実行。 並行で作業する Iss…

Git2

ブランチの切り替え ブランチを切り替えるには、チェックアウト。チェックアウトを行うと、まず移動先のブランチ内の最後のコミットの内容がワークツリーに展開されます。まだコミットしていない変更内容や新しく追加したファイルが、インデックスやワークツ…

Git1

マージについて 最後にpullを実行してから次のpushをするまでの間に、ほかの人がpushをしてリモートリポジトリを更新してしまっていた場合には、自分のpushが拒否されてしまう。この場合、マージという作業を行なって他の履歴での変更を取り込むまで自分のpu…

標準入出力・リダイレクション・パイプ

標準入出力とは シェルでは最初から・入力元として標準入力(普通はキーボード)、・出力先として標準出力と標準エラー出力(普通はディスプレイの中のコンソールやウインドウ)が用意されている。この標準入力、標準出力はリダイレクション、パイプなどで切替…