2019-01-01から1年間の記事一覧

組み込みクラス: modules編

RExをやっている限り頻出範囲という印象を受けるので、ちゃんと覚えておきたい。 Enumeratable Enumeratableモジュールはeachメソッドが定義されたクラスで使用可能となる。 map, collect破壊的 与えられたブロックを評価した結果の配列を返す。 ブロックを…

組み込みクラス: 正規表現編

正規表現オブジェクトをつくる コンストラクタで生成する場合、オプションを引数の2つ目に書くが、オプションを正式な書き方で書く必要があり、かなり面倒。 irb(main):007:0> r = /Hello/i => /Hello/i irb(main):008:0> r.class => Regexp irb(main):010:0…

組み込みクラス: TimeClass編

入出力は範囲が膨大な割に、扱いが非常に面倒くさそうなので、先にTimeClassと正規表現を片付けてしまう。 Timeオブジェクトの生成 new `nowがエイリアス。 irb(main):029:0> Time.now => 2019-09-21 17:12:01 +0900 irb(main):030:0> Time.now.to_s => "201…

組み込みクラス: HashClass編

今日中にIOとTimeと正規表現がノルマ... Hashの生成 ハッシュは通常の{key => value}による定義以外にも、配列のようなHash[key,value]が使える。 irb(main):001:0> a = Hash[:tokyo, "新宿",:kanagawa,"横浜",:ehime,"matsuyama"] => {:tokyo=>"新宿", :kan…

Ruby silver模擬試験誤答一覧

随時追加。 引数をフォーマットした文字列 irb(main):002:0> p "HelloWorld%d" % 5 "HelloWorld5" => "HelloWorld5" module function Kernel.#format (Ruby 2.1.0) Cのpritntfのように、引数を指定しておいて、後ろから置換する文字をしてする記法が使える。…

組み込みクラス: 配列編

配列の初期化 普段は[1,2,3]を使っているが、Array[1,2,3]やArray.new([1,2,3])で定義できる。 配列のすべての要素に初期値を設定したい場合はArray.new(10,"non")となるが、これは配列のすべての要素が同じインスタンスとなる。 irb(main):002:0> a = Array…

Ruby Silver 試験対策 Day8(StringClass編その2)

文字列の長さを求める 単なる長さだけでなく、指定されたパターンの文字数、空であるか、バイト数を返すなど、いろんな長さに応じてメソッドがある。 length 破壊的なし エイリアスはsize count 破壊的なし マッチする文字の数を返す。マッチ対象の文字を指…

Ruby Silver 試験対策 Day7(StringClass編)

特になにか面白い挙動があるという訳でもないので、ひたすらirbでお試ししてゆく。 Encodingクラス OSが指定している規定エンコーディングはEncodingクラスのクラスメソッドであるdefault_externalで取得する。 irb(main):001:0> Encoding.default_external …

Ruby Silver 試験対策 Day7

組み込みクラス編。 Basic Object, Object Encoding,String Array Hash,Symbol ファイル入出力 Time 正規表現 Enumeratable, Compsrable モジュール これぐらいが出題範囲なので、本日中にArrayまでは片づけたい。 Basic ObjectとObject Class object_id オ…

Ruby Silver 試験対策 Day6

オブジェクト指向の完結編 クラス変数 Rubyでもっとも厄介な部分。 クラス変数はインスタンスとクラス、サブクラス、サブクラスのインスタンスでどこでも共有可能な値である。アクセサを定義せずとも外部から自由に書き加えることが出来る上、継承先のクラス…

Ruby Silver 試験対策 Day5-2

長かったオブジェクト指向も間もなく終わりのはず。 クラスメソッド Classクラスに対して、引数とブロックを指定したnewメソッドを使うことで、クラスを新たに定義することが出来る。 class Ship def habor p "HAYAMA" end end Yacht = Class.new(Ship){ def…

Ruby Silver 試験対策 Day5

オブジェクト指向の続き selfの参照先 selfは自分自身を指す特別なオブジェクトで、どこで実行されるかによって振る舞いが異なる。 クラス内部で使っているならそのクラスそのものを、メソッド内部で使っているならそのメソッドを実行しているインスタンスを…

Ruby Silver 試験対策 Day4

オブジェクト指向に関する仕様。オブジェクト指向の基本原則は変わりないが、Ruby独自に使用にだけ触れてゆく。 メソッドの探索経路 継承されたクラスのメソッドは、自分のインスタンスを生成したクラスからを見てゆき、そこから親クラスを次々の遡るように…

Ruby Silver 試験対策 Day3 (ブロックとProcと例外編)

長くなるので、移設。 ブロックとProc qiita.com Rubyではメソッドに引数として渡した変数のスコープが、破壊的メソッドを使わない限りはメソッド内に限定されている、という事情があった。 この不便を解消させるのがブロックである。 ブロックはメソッドを…

Ruby Silver 試験対策 Day3

ハッシュ ハッシュを生成すると、ハッシュの中に、キーとそれが指し示すオブジェクトのポインタが保存される。ハッシュそのものにオブジェクトが内包されているわけではない。 irb(main):001:0> string = "Ruby is Fun!" => "Ruby is Fun!" irb(main):002:0>…

Ruby Silver 試験対策 Day2

同値性と同一性 irb(main):009:0> v1 = "foo" => "foo" irb(main):010:0> v2 = v1 => "foo" irb(main):011:0> v1.object_id => 70368455089300 irb(main):012:0> v2.object_id => 70368455089300 irb(main):013:0> v1 << "bar" => "foobar" irb(main):014:0>…

Ruby Silver 試験対策 Day1 (文字列編)

文字列だけが異様なほど長かったので、別の記事に。 バックスラッシュ記法 なにを言っているのかよくわからなかった。 出力メソッドの違い irb(main):016:0> p "Hello","World","!!" "Hello" "World" "!!" => ["Hello", "World", "!!"] irb(main):017:0> put…

Ruby Silver試験対策 Day1

3-1 識別子 命名規則 先頭に数字が指定できない。 アンダースコア以外の記号(ハイフンを含む)が変数名として利用できない。 変数スコープ C#のような一般的なオブジェクト指向言語と異なり、そのクラスのインスタンスであるオブジェクトすべてが共有し、書き…

.js.erbに配列を渡して、HTML書き換えを行う。

前回の記事であった「selectedの値を非同期で書き換える」を実現するための方法。手順としては コントローラでJSON化した配列を準備。 置き換えを行いたいelementに同じclassを指定しておき、Jqueryですべて取得 繰り返し処理を行いその回数をindexで取得。…

Ajax非同期通信をRailsで使う

先週散々頭を悩まされ続けてきた、「選択した会社名に応じて売上発生原因の項目をajaxで変更する。」という課題を何とかするために、丸一日使って、同じような仕組みを実装してみた。お題を少し変えて、「大学名に応じて、選択する学部名を変える」というも…

unicornで走るrailsアプリケーションをデバッグする

unicornでバックグランドで走るようになっている場合、普通のpryのようなブレークポイントを置いて、対話型のインターフェースでデバッグすることが出来ない。これを可能にできそうだったのが blog.hello-world.jp.net これだった。(バイト先では権限がなく…

作業自動化のためのShellScript

github.com #!/bin/bash #export PATH="/usr/local/rbenv/bin:$PATH" LINE="-------------------------------------------------------" if test -n "git status --porcelain"; then echo ${LINE} git status --porcelain | while read -r changedFile do fi…

AjaxとRails

出勤初日。なにも生産的なことをするでもなく、ただ先輩に手とり足取り教わっていただけだが、それでもへとへとになってしまっていた。一番、面倒だったのが、Macの操作に慣れることだった。コピーですらControl + C ではなく謎の四つ葉マーク+Cだったので、…

MinitestとRubyの変数アクセスバリデーション

minitestを試しに使っていたら、C#を触っていた時のオブジェクト内の変数(field)へのアクセス制限(プロパティ)やメソッドへのアクセス制限(public, private, protected)をRubyではどのように表現しているのか気になったのでメモを残しておく。 minitest…

Unixという考え方を読んで

昔読んだ読書感想文が残っていたので、また読み返せるようにコピーしておいた。 1、小さいものほど美しい 2、早めの試作 3、移植性優先、ハードウェアに依存するものを造らない 4、ソフトウェアの梃子の原理 5、対話型プログラムの危険 1、小さいもの…

リーダブルコードを読んで

よく読みやすい本といわれる割には、自分にとっては割と重たかったような。JavaScriptとC++とPythonのコードを読んだことがなかったので、読みにくい改良前のコードを読むのが厭になってしまっていたからかも。 表面上の改良 よく使いがちなSizeとかStopなど…

CI(Continuous Integration)とは

本日の宿題その①。 いろいろ調べたまとめ。運用、テスト、共同開発とか、自分で趣味でやってる範疇では扱わないことことばかりで、しばらくはインプットが多そう。でも調べるのも楽しい。 CIの目的 頻繁に本番レポジトリにコードをマージし、その影響を逐一…

複数人作業時のGitの流れ

Git

GitなんてGitHubにポートフォリオを載せる道具位のものでしかなかった。masterブランチ一本で、forkとcloneの違いもよくわかってなかった。いよいよ必要になりそうなのでメモしていく。 1:本番レポジトリから自分のアカウントにレポジトリをforkする 2: リモ…