Tbpgr Blog

Employee Experience Engineer tbpgr(てぃーびー) のブログ

2014-01-01から1ヶ月間の記事一覧

TbpgrUtils | 追加要件 Array#together_deleteを追加

概要 追加要件 Array#together_deleteを追加 詳細 追加要件 Array#together_deleteを追加します 仕様 ・Array#deleteのtogether版。 ・以下のaliasを持つ tdelete※より詳細についてはGitHubのREADMEおよびテストケース参照 GitHub https://github.com/tbpgr/…

TbpgrKnowledge

概要 TbpgrKnowledge 詳細 プログラミングの学習に没頭する日々の経験値が相当溜まってきたので 知識の整理も兼ねて1つずつ書き出して行こうと思います。 一覧 項目 URL 追加日 朝勉強をする http://d.hatena.ne.jp/tbpg/20140131/1391174797 2014/01/31 ス…

TbpgrKnowledge | 出社前の朝勉強を習慣にする

概要 出社前の朝勉強を習慣にする 詳細 きっかけ 柴田芳樹さんを含む複数の著者の方が朝勉強を勧めていたから。 また出社を早くすると通勤電車に座れる可能性が上がるため一石二鳥だったこともある。 いつから? 2010年末あたりから。 一度システム開発の業…

TbpgrUtils | 追加要件 Array#together_map!を追加

概要 追加要件 Array#together_map!を追加 詳細 追加要件 Array#together_map!を追加します 仕様 ・Enumerable#map!(collect!)のtogether版。 ・together_map!はN個の配列のイテレーションから1個の配列の結果を返却する。 N個の配列に対して、N個の配列を返…

Rubocop | 現在出力されているエラーを課題として保存し、暫定的に設定無効にする方法

概要 現在出力されているエラーを課題として保存し、暫定的に設定無効にする方法 詳細 現在出力されているエラーを課題として保存し、暫定的に設定無効にする方法について。導入初期など、あまりに多くの警告がでていると即対応するのが難しいものです。 そ…

GitCloner | 追加要件 CLIを利用せずに直接Cloneを呼び出し可能にする

概要 追加要件 CLIを利用せずに直接Cloneを呼び出し可能にする 詳細 追加要件 CLIを利用せずに直接Cloneを呼び出し可能にします。 仕様 ・GitCloner::Core#cloneを直接呼び出すことで、CLIを経由せずにclone機能を利用可能にする※詳細はGitHubのREADME参照 G…

TbpgrUtils | 追加要件 Array#together_compact, Array#together_compact!を追加

概要 Array#together_compact, Array#together_compact!を追加 詳細 Array#together_compact, Array#together_compact!を追加します 仕様 ・Array#compact, ・Array#compact!のtogether版。 ・together_compact はN個の配列をもつ配列に対して、各配列内のni…

Ruby | メタなコードを書く際に完成予想図をコメントに書く

概要 メタなコードを書く際に完成予想図をコメントに書く 詳細 メタなコードを書く際に完成予想図をコメントに書く手法について。 今日コードリーディングでActiveSupportの SafeBufferクラスのコードを見ていた際にあった手法。メタなコードはどうしてもコ…

CodeIQ | 『CoffeeScript入門』問題 @tbpgr #CodeIQ

概要 『CoffeeScript入門』問題 詳細 『CoffeeScript入門』問題 の出題を開始しました。 https://codeiq.jp/ace/tbpgr/q710CoffeeScriptの入門問題です。 CoffeeScriptを触ったことがないかたもJavaScriptを知っているか、 何かしらの言語を経験していてイン…

Ruby | highline gem で標準出力に色をつける

概要 highline gem で標準出力に色をつける 詳細 highline gem で標準出力に色をつけます。 サンプル # encoding: utf-8 require 'highline' h = HighLine.new puts h.color("hello", :yellow) puts h.color("hello", :cyan) puts h.color("hello", :white) …

TbpgrUtils | 追加要件 Array#together_clearを追加

概要 追加要件 Array#together_clearを追加 詳細 追加要件 Array#together_clearを追加します 仕様 ・Array#clearのtogether版。 ・together_clearはN個の配列からN個の配列の結果を返却する。 ・以下のaliasを持つ tclear※より詳細についてはGitHubのREADME…

CodeIQ | 『メタな世界:宣言的な機能追加(応用)』 出題開始 @tbpgr #CodeIQ

概要 『メタな世界:宣言的な機能追加(応用)』 出題開始 詳細 『メタな世界:宣言的な機能追加(応用)』 の出題を開始しました。 https://codeiq.jp/ace/tbpgr/q698メタな宣言的な機能をメタな宣言的な機能で実装する問題です。 今自分が書いたり考えてい…

CodeIQ | 『メタな世界:宣言的な機能追加(基礎)』 出題 @tbpgr #CodeIQ

概要 『メタな世界:宣言的な機能追加(基礎)』 出題 詳細 『メタな世界:宣言的な機能追加(基礎)』 の出題を開始しました。 https://codeiq.jp/ace/tbpgr/q697メタプログラミングで宣言的な機能を実装する場合の基礎問題です。 Rubyのattr_accessorのよ…

ActiveSupport | Module#class_attribute

概要 Module#class_attribute 詳細 Module#class_attribute について Module#class_attribute クラスレベルの属性を設定する。 継承先でも引き継がれる。 インスタンスからも利用可能。 instance_readerオプション、instance_writerオプションの指定によって…

Tudu | 追加要件 tasks実行時に--colorオプションを指定すると色分け表示される機能を追加する

概要 追加要件 tasks実行時に--colorオプションを指定すると色分け表示される機能を追加する 詳細 tudu tasksでtodos,doings,donesが表示されるが、それぞれを色分け表示する。 todos:赤 doings:黄 dones:シアン※詳細はGitHubのREADME参照 GitHub https://gi…

GitCloner | 追加要件 ディレクトリとファイルのコピー機能を追加する

概要 追加要件 ディレクトリとファイルのコピー機能を追加する 詳細 追加要件 ディレクトリとファイルのコピー機能を追加します 仕様 ・Gitclonefileにコピー元とコピー先の設定を可能にする※詳細はGitHubのREADME参照 GitHub https://github.com/tbpgr/git_…

TbpgrUtils | 追加要件 Array#together_atを追加

概要 追加要件 Array#together_atを追加 詳細 追加要件 Array#together_atを追加します 仕様 ・Array#atのtogether版。 ・together_atは1個の配列の結果を返却する。 ・以下のaliasを持つ tat※より詳細についてはGitHubのREADMEおよびテストケース参照 GitHu…

ActiveSupport | Module#delegate

概要 Module#delegate 詳細 Module#delegate について Module#delegate メソッドの委譲を行う。 複数のメソッドの一括委譲も可能。toオプションで委譲オブジェクトの指定 prefixオプションでプリフィックスの有無を設定(省略するとプリフィックスなし) all…

Ruby | 可変長のリストとオプション(ハッシュ)の引数を共存させる場合

概要 可変長のリストとオプション(ハッシュ)の引数を共存させる場合 詳細 可変長のリストとオプション(ハッシュ)の引数を共存させる場合について。 ActiveSupportのdelegateメソッドを呼んでいて、このパターンのコードがあったのでまとめます。 delegat…

TbpgrUtils | 追加要件 AttributesHashable moduleを追加

概要 追加要件 AttributesHashable moduleを追加 詳細 追加要件 AttributesHashable moduleを追加します 仕様 ・includeすると属性のHash化を行うto_hashメソッドを実装する ・ActiveSupportのinstance_valuesとほぼ同じ機能だが、 ・キーがSymbol(ActiveSu…

Ruby | Hash | try_convert

概要 Hash.try_convert 詳細 対象オブジェクトのto_hashにより、Hashへの変換を試みます。 変換できなかった場合はnilを返却します。 サンプル コード # encoding: utf-8 require 'tbpgr_utils' require 'attributes_initializable' require "active_support…

GitHubのREADME.mdのページ内リンク設定

概要 GitHubのREADME.mdのページ内リンク設定 内容 GitHubのREADME.mdのページ内リンク設定GitHubのREADME.mdで見出し(H1,H2等)を作成した場合に、 自動で <a name="hoge"> が作成される。 hoge = 見出しの文字列 ※実際のタグの詳細は端折ってます。[ラベルへのリンク](#h</a>…

TbpgrUtils | 追加要件 Array#together_concatを追加

概要 追加要件 Array#together_concatを追加 詳細 追加要件 Array#together_concatを追加します 仕様 ・Array#concatのtogether版。 ・aliasはtconcat. ・togetherを呼び出した配列すべての末尾に引数に指定した配列を追加する※より詳細についてはGitHubのRE…

Ruby | File | zero?

概要 File.zero? 詳細 ファイルサイズがzeroかどうか判定します。 サンプル コード # encoding: utf-8 require 'tbpgr_utils' def create_file(filename, contents) File.open(filename, 'w:utf-8') {|f|f.print contents} end create_file 'hoge.txt', "tes…

Ruby | File | split

概要 File.split 詳細 引数にファイルパスを指定することで、ディレクトリ部とファイル部をリストで返却する。 サンプル コード # encoding: utf-8 def create_file(filename, contents) File.open(filename, 'w:utf-8') {|f|f.print contents} end create_f…

SublimeSunippetter | 追加要件 require 'filename'のスニペットを生成可能にする

概要 追加要件 require 'filename'のスニペットを生成可能にする 詳細 追加要件 require 'filename'のスニペットを生成可能にします。 仕様 ・Rubyのrequire 'filename'のスニペットを生成可能にする ・指定方法は下記 add_requires 'hoge', 'hige' ※詳細に…

TbpgrUtils | 追加要件 Array#together_reduceを追加

概要 追加要件 Array#together_reduceを追加 詳細 追加要件 Array#together_reduceを追加します 仕様 ・Enumerable#reduce(inject)のtogether版。 ・together_reduceはN個の配列のイテレーションから1個の配列の結果を返却する。 ・以下のaliasを持つ treduc…

Ruby | encryptor gem で暗号化・復号化を行う

概要 encryptor gem で暗号化・復号化を行う 詳細 encryptor gem で暗号化・復号化を行います。 サンプル ※要 gem install encryptor # encoding: utf-8 require "encryptor" require "tbpgr_utils" Encryptor.default_options.merge!(:key => 'encrypt_key'…

Ruby | google_drive gem でGoogleDriveの情報を取得する

概要 google_drive gem でGoogleDriveの情報を取得する 詳細 google_drive gem でGoogleDriveの情報を取得します。 サンプル ※要 gem install google_drive # encoding: utf-8 require "google_drive" session = GoogleDrive.login("ユーザー名", "パスワー…

キーワード検索による素早いブラウジング

臭い名 のんびり一番上から順にスクロールしてブラウジングしている 臭い英名 slow browsing by sequential scroll 臭い状況 必要な情報を探すためにページを上から順にスクロールしているため探すのに時間がかかる パターン名 キーワード検索による素早いブ…