Tbpgr Blog

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

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

Ruby | Enumerable | to_a/entries

概要 Enumerable#to_a/entries 詳細 Enumerable#to_a/entries 配列へ変換する サンプル コード # encoding: utf-8 require "pp" hoges = {hoge: "ほげ", hige: "ひげ", hage: "はげ"} p hoges p hoges.class p hoges.to_a p hoges.to_a.class p hoges.entrie…

Ruby | リモートサーバーから任意のファイルを取得して1アクション行うgemを公開しました

概要 リモートサーバーから任意のファイルを取得して1アクション行うgemを公開しました 詳細 リモートサーバーから任意のファイルを取得して1アクション行うgemを公開しました。 詳細はGitHub参照。GitHub https://github.com/tbpgr/takuhaiRubygems https:/…

Chef | 冪等性(べきとうせい) idempotence

概要 冪等性(べきとうせい) idempotence 詳細 冪等性(べきとうせい) idempotenceとは何回行っても実行後の状態が変わらないこと。 Cookbookの作成時に重要な概念。例えば.bashrcなどへの設定時に単純にappendするようにrecipeを書いてしまうと冪等性を保てな…

UNIXコマンド | clear - コンソールをクリア

概要 clear - コンソールをクリア 詳細 コンソールで作業している際に、以前の出力が邪魔な時があります。 その場合にclearコマンドによって過去の出力を画面外に追いやることが出来ます。 ※カーソルで上にもどれば、出力内容は残っている。cygwinで利用した…

Ruby | Rubyとfigletを利用してタイマーを作成する

概要 Rubyとfigletを利用してタイマーを作成する 詳細 Rubyとfigletを利用してタイマーを作成します。 figletについては下記参照。入力文字列をアスキー文字で出力する http://d.hatena.ne.jp/tbpg/20130427/1367077089 サンプルコード # encoding: utf-8 3.…

Ruby | Enumerable | each_with_object

概要 Enumerable#each_with_object 詳細 Enumerable#each_with_object 指定要素数ずつブロックに渡しつつ、メモ用オブジェクトも共に渡す サンプル コード # encoding: utf-8 require "pp" memo = %w{hage hige huge hege hoge}.each_with_object({}) do |e,…

UNIX | lsなどのスペース区切りの出力をTSV形式にする場合

概要 lsなどのスペース区切りの出力をTSV形式にする場合 詳細 lsなどのスペース区切りの出力をTSV形式にする場合について。一覧データをExcelに貼り付けたい、と言う場合にTSV形式だと そのままコピペ出来て便利です。 lsをTSV形式にする 下記が、lsの連続し…

Ruby | 複数のEnumを同時にループさせたい時(雑談レベル)

概要 複数のEnumを同時にループさせたい時(雑談レベル) 詳細 ※雑談レベルの話です。この記事に特に意味はありません。 複数のEnumを同時にループさせたい時に、いちいちindex指定するのが 面倒だな・・・と思う時ってありませんか? 通常のeach文のように…

Ruby | Enumerable | each_slice

概要 Enumerable#each_slice 詳細 Enumerable#each_slice 指定要素数ずつブロックに渡す サンプル コード # encoding: utf-8 require "pp" %w{hage hige huge hege hoge}.each_slice(2) {|e|p e} p "-----------------------------" %w{hage hige huge hege …

Ruby | bundle gem で作成したgemをRubygemsに公開したくない時にreleaseタスクを封殺する

概要 bundle gem で作成したgemをRubygemsに公開したくない時にreleaseタスクを封殺する 詳細 bundle gem で作成したgemをRubygemsに公開したくない時にreleaseタスクを封殺します。Rakefile require "bundler/gem_tasks" Rake::Task[:release].clear 確認 $…

Ruby | Enumerable | each_cons

概要 Enumerable#each_cons 詳細 Enumerable#each_cons 指定要素数ずつ、1つずつずらした要素をブロックに渡す サンプル コード # encoding: utf-8 require "pp" %w{hage hige huge hege hoge}.each_cons(2) {|e|p e} p "-----------------------------" %w{…

Ruby | ThorでRubyのコマンドライン処理を実装する(自作gem用binに組み込み)

概要 ThorでRubyのコマンドライン処理を実装する 詳細 ThorでRubyのコマンドライン処理を実装します。 ThorはRubyのコマンドラインツール作成時を支援してくれます。 サンプル 公開済みのgem, denreiにThorを適用してみました。 ※GitHub上のversion0.0.1と0.…

Ruby | Enumerable | drop_while

概要 Enumerable#drop_while 詳細 Enumerable#drop_while ブロックに指定した条件に対してはじめて偽を返却する要素以降を配列として返却する サンプル コード # encoding: utf-8 require "pp" list = [] 10.times {|i|list << i + 1} p list list = list.dr…

Ruby | Enumerable | drop

概要 Enumerable#drop 詳細 Enumerable#drop enumの最初のn個の要素を破棄し、残りを配列として返却する。 サンプル コード # encoding: utf-8 require "pp" list = [] 10.times {|i|list << i + 1} p list list = list.drop 3 p list list = list.drop 3 p …

Ruby | Enumerable | detect/find

概要 Enumerable#detect/find 詳細 Enumerable#detect/find ブロックで指定した条件に一致する最初の要素を探します。 ブロックに引数を指定した場合は未発見時の処理を指定出来ます。 ※デフォルトでは未発見時はnilを返却する。 サンプル コード # encoding…

Ruby | i18nをRuby単独で利用する

概要 i18nをRuby単独で利用する 詳細 i18nをRuby単独で利用します。 ※i18n関連情報はRailsとセットで、というものが多いため単独利用について。 構成例 project | Gemfile ├─bin └─locale Gemfile # A sample Gemfile source "https://rubygems.org" gem "i…

Ruby | リスト構造のテストケーステンプレートを作成するRSpecPiccolo gemを公開しました

概要 リスト構造のテストケーステンプレートを作成するRSpecPiccolo gem 内容 リスト構造のテストケーステンプレートを作成するRSpecPiccolo gemを公開しました。・1ファイル=1クラスのテスト ・1contextで1メソッドのテスト ・1context内の複数ケースはリ…

Ruby | Enumerable | cycle

概要 Enumerable#cycle 詳細 Enumerable#cycle は指定回数各要素を繰り返します。 引数を指定しない場合は永久に繰り返します。 サンプル コード # encoding: utf-8 require "pp" list = %w{hoge hige hage} enum = list.cycle(2) p enum.to_a.join("|") lis…

Ruby | Enumerable | count

概要 Enumerable#count 詳細 Enumerable#count は要素数を返却します。 引数を指定した場合やブロックを指定した場合は 条件に一致する要素数を返却します。 サンプル コード # encoding: utf-8 require "pp" list = %w{hoge hige hage} p list.count p list…

Git | git add

Git

概要 git add 詳細 任意のファイルを追加 git add some_file.txt 任意のディレクトリを追加 git add some_directory .gitignoreのファイルも強制的に追加する git add -f some_file.txt 登録済みで変更されたファイルを追加する git add -u some_file.txt 新…

Selenium | 画面のリサイズ

概要 画面のリサイズ 詳細 画面のリサイズについてwindowオブジェクトのresize_toメソッドを利用します。 driver = Selenium::WebDriver.for :firefox width = 1000 height = 500 driver.manage.window.resize_to(width, height)

Ruby | RMagickで画像の変換を行う(Ubuntu1204環境)

概要 RMagickで画像の変換を行う(Ubuntu1204環境) 詳細 RMagickで画像の変換を行います。 前提 ImageMagickをインストールしておくこと sudo aptitude install imagemagick libimagemagick libmagickcore libmagickcore-dev libmagickwand-dev インストール …

Firefox | 開発ツール

概要 Firefoxの開発ツール 詳細 Firefoxの開発ツールについて 機能一覧 機能 ショートカット 概要 開発ツール ctrl+shift+I 開発ツールを表示/非表示。前回最後に使ったツールがアクティブで表示される Webコンソール ctrl+shift+K 表示中の画面に対してJav…

ImageMagic | ImageMagicで画像を変換する

概要 ImageMagicを利用して画像を変換する 詳細 ImageMagicを利用して画像を変換する 手順 ・インストーラをダウンロード http://www.imagemagick.org/script/binary-releases.php#windows ImageMagick-6.8.7-6-Q16-x86-dll.exeをダウンロード。・ImageMagic…

English | Ankiに一括インポートをする

概要 Ankiに一括インポートをする 内容 Ankiに英単語を登録する際に、一括登録が可能です。 特定の区切り文字で区切ってあればどんなフォーマットでも対応可能。一番オーソドックスなCSV形式で下記のように作成した場合 hoge1,hige1,hage1,hege1 hoge2,hige2…

Selenium | RubyでSeleniumによるページ操作の検証を効率よく行う手順

概要 RubyでSeleniumによるページ操作の検証を効率よく行う手順 詳細 RubyでSeleniumによるページ操作の検証を効率よく行う手順について。 ※この話はWatir等他のブラウザ操作系のツール利用時も同様SeleniumによるUIテストや自動化のプログラムを作成する際…

Selenium | frameを利用したページの自動操作

概要 frameを利用したページの自動操作 詳細 frameを利用したページの自動操作についてswitch_toメソッドを利用して、フレームの操作を切り替えます。 driver = Selenium::WebDriver.for :firefox # headerフレームを選択 driver.switch_to.frame("header") …

Selenium | リストボックスの操作

概要 リストボックスの操作 詳細 リストボックスの操作について 操作例 driver = Selenium::WebDriver.for :firefox driver.get "some_address" # idがsome_idのリストボックスをアクティブ化 selectbox = driver.find_element(:id => "some_id") selectbox.…

Selenium | find_elementによるエレメント操作

概要 find_elementによるエレメント操作 詳細 find_elementによるエレメント操作についてfind_elementでHTMLドキュメント内の各タグ要素を取得・操作できます。 driver = Selenium::WebDriver.for :firefox # IDによる検索 driver.find_element(:id => "hoge…

Cygwin | gemのエイリアスを一括生成

概要 Cygwin環境でgemのエイリアスを一括生成 詳細 Cygwin環境でgemを利用しようとするとLoadエラーが発生します。 下記のようにエイリアスをつけると利用が可能になるため、 .bash_profile等に設定することでエラーを回避できます。 alias gem='C:/Ruby193/…