Ruby

DockerHubのRuby Alpineで作るheadless chrome環境

headless chromeとSelenium WebDriverを使いたいと思ったときすぐ使えるような環境を作る。 Debian環境よりも簡単にインストールすることができたのでAlpine Linuxを使う。 Dockerfile FROM ruby:2.6.4-alpine3.10 RUN apk add -U chromium chromium-chromed…

Docker ComposeでRailsのアプリケーションログをFluentdでElasticsearchに送信する

過去の記事 前々回 前回 実現したいこと Nginxと同じようにRailsのアプリケーションログもKibanaで参照できるようにしたい。 引き続き、過去の記事で使用した環境に変更を加えていくのでdiffを記載していく。 Rails 参考 Collecting and Analyzing Ruby on R…

DockerでNginx+Rails6+MySQL+Fluentd+Elasticsearch+Kibanaを構築する

はじめに Docker? 構築 構築したいもの 各バージョン MySQL 参考 docker-compose.yml 変更点 注意点 Rails 参考 Dockerfile entrypoint.sh Gemfile docker-compose.yml database.yml Nginx config/puma.rb docker-compose.yml 注意点 Elasticsearch+Kibana …

KAKASIを使って漢字をひらがなに変換する

KAKASI - 漢字→かな(ローマ字)変換プログラム インストール方法などは上記に記載されているがHomebrew上で見つけたのでそちらでインストールした。 $ brew install kakasiRubyで使いたいのでkakasi-rubyをインストールする。 GitHub - eitoball/kakasi-ruby:…

Ansibleのgemモジュールはuser_installがデフォルトになっている

http://docs.ansible.com/ansible/gem_module.html ドキュメントを見るとuser_installがdefaultでyesなことがわかると思う。何故この話題を取り上げるとかというとデフォルトの状態でgemモジュールを使ってインストールするとgem listには表示されるが実体が…

Ruby2.2以降でjson gem 1.8.1がインストールできない件の対応

結論 json 1.8.2以降を使用する 上記IssueでRuby2.2対応は1.8.2含まれたことがわかる。 表示されるエラー 恐らくrb_new_strの引数の数が変わった為エラーになっていると推測するが、Ruby2.2から変更になったという確かなソースはまだ見つけていない。 Instal…

Rails4.2 MinitestをRSpecに変更する

Railsプロジェクトを新規作成する際下記オプションを使用するとMinitestを除いたRailsプロジェクトが作成される。 $ rails new hoge -Tプロジェクト開始後途中でMinitestからRSpecに変更したくなった場合は何をすればいいのか? テストコードの移植等には触…

Rails4.2からNokogiriに依存するようになってた

Rails4.1からRails4.2にバージョン上げようとGemfile修正してbundle update叩いたらNokogiriのインストールでこけた。 確かにNokogiriをインストール準備はしてないから落ちるのはわかるんだけどいつから依存するようになったの?答えは4.2から。HTMLサニタ…

RVMのrvmrcはruby-version,ruby-gemsetに変更

久々にRVMをアップデートしてrvmrc作ったらWARNINGでた。 You are using '.rvmrc', it requires trusting, it is slower and it is not compatible with other ruby managers, you can switch to '.ruby-version' using 'rvm rvmrc to [.]ruby-version' rvmr…

Google chart toolsをRubyで使うためのwrapper

Google chart toolsを使いたくてwrapperを探していたらgooglechartsというgemに出会って GETパラメータに値渡してリクエストするだけでグラフが作成される!と喜んでいたのですが Google chart toolsのdocumentと色々違うので悩んでいたのですね。 https://g…

Ruby2.0系では多くのマジックコメントが不要に

[Ruby]Ruby2.0系では多くのマジックコメントが不要に Ruby2.0.0がリリースされてはや二ヶ月私の開発環境も2.0.0で動いておりますが大切な新機能を見落としておりました。 default UTF-8 encoding: 多くのマジックコメントが不要に http://www.ruby-lang.org/…

PSN APIを叩くRubyのライブラリ見つけたから後でいじる

Ruby2.0.0-p0でRails3.2.12を動かすとModel#dupで落ちる

Railsのissuesに4ヶ月前に挙がっていた。3.2.13には適応されているので3.2.13を使うようにした。 https://github.com/rails/rails/pull/8405

FactoryGirlのTraits知らんかったいいな

TraitsTraits allow you to group attributes together and then apply them to any factory. factory :user, aliases: [:author] factory :story do title "My awesome story" author trait :published do published true end trait :unpublished do publis…

RSpecでTime.nowを起点にしたテストを書く時Timecopを使うと便利かも

たとえば現在時刻から3日前だったらこうなるべきみたいのをテストを書いてて 処理は3.days.agoとかだった場合に普通に書いてあると日数がたつとテストが通らなくなる。 https://github.com/travisjeffery/timecop そんな時は、Timecopでテストの時は時間を指…

Magick::Image.read #=> arrayなんでarrayなんだっけなって

はい An array containing 0 or more Image objects. If the file is a multi-image file such as an animated GIF or a Photoshop PSD file with multiple layers, the array contains an Image object for each image or layer in the file. http://www.im…

acts_as_listで例えばユーザ毎に並び順を保持する時

ユーザ毎にpositionを管理する例えばUser 1 - * Bookmarksみたいなとき関係あるところだけ書くと class User < ActiveRecord::Base has_many :bookmarks, order: 'position' end class Bookmark < ActiveRecord::Base belongs_to :user acts_as_list scope: …

ruby-buildでインストールできるRuby一覧を更新する

以前導入したrbenv+ruby-buildだが新しいRubyのバージョンをインストールするときインストール可能なリストを更新する方法がわからなかったので調べた。 以前の記事:rbenv+ruby-build+rbenv-gemsetのセットアップ - chulip.org 結論からいうとruby-buildが…

WindowsでNativeExtensionを入れるためにDevelopment-Kitを入れる

なんかDevKitを入れろと言われています。 Windows.Ruby.native extensions......... Installing json (1.7.5) Gem::InstallError: The 'json' native gem requires installed build tools. Please update your PATH to include build tools or download the …

capistrano-extで複数の環境にdeployする設定を書く

Gemfile gem 'capistrano-ext'config/deploy.rb # 追記 require "capistrano/ext/multistage"環境用の設定ファイルを格納するディレクトリ $ mkdir -p config/deployconfig/deploy/stage.rbを作ったらcap stage deployみたいな感じで環境のデプロイできる。 …

rbenv+ruby-build+rbenv-gemsetのセットアップ

手元の環境ではRVMをまだ使っているのだが別に構築する機会があったので今更rbenvを。 rbenv https://github.com/sstephenson/rbenv 手順はGithubのREADME通り $ cd $ git clone git://github.com/sstephenson/rbenv.git .rbenv $ echo 'export PATH="$HOME/…

FactoryGirlでカラム名typeのデータをセットできない

1.2.4で起きた。下記URLにある通りなので備忘録 Model with the column "type" breaks factory · Issue #43 · thoughtbot/factory_bot · GitHub f.add_attribute :type, type https://github.com/thoughtbot/factory_girl/issues/43

Ruby Association Certified Ruby Programmer Silver合格しました

タイトルすごい長いですけど要するにRuby技術者認定試験Silverですね。 不合格だったら受験したことを黒歴史にしようと思っていたのですが、受かったので。 75点以上で合格なんですけど90点でした。 公式ガイドの模擬問題みたいなの解いた段階ではぎりぎりア…

Rcovでコードカバレッジ

ソースコードがどの程度テストされているかみたいな物を見ることができる カバレッジ第一ってのはあんまり…っていう話は聞くので参考程度に。まあ使った事無いので使ってみたって話 環境 Rails2系 RSpec 1.3.2 RSpec-rails 1.3.4 Rcov 0.9.11(gem installし…

factory_girlでのparent指定と関連の定義

今更factory_girl v1.3.3の話factory_girlでデータ定義していくときに少しだけ値が違うみたいな時は 継承してdefineできる #-*- coding: utf-8 -*- Factory.define :madoka do |f| f.first_name 'kaname' f.last_name 'madoka' end Factory.define(:homura, …

rakとかackとかで半角カナを検索する

文字コードはUTF-8Google先生に聞いたらでてきたはでてきたんだけど一部記号とか対象になっていたのでメモ。 $ ack "(?:\xEF\xBD[\xA7-\xBF]|\xEF\xBE[\x80-\x9F])" ## または $ rak "(?:\xEF\xBD[\xA7-\xBF]|\xEF\xBE[\x80-\x9F])"参考サイト Unicode対応 …

ref.vimでRubyのリファレンスを見る

ref.vimというプラグインがあるのは知っていたんだけど使ってなかった。 ブラウザからリファレンスを見る機会が多いなと思っていたので試してみた。ref.vimからRubyのリファレンスを見るときにはrefeというリファレンスマニュアル検索ツールを使える refe Ru…

Ruby1.8.6と1.8.7のHash[*key_and_value]の挙動について

Ruby1.8.6でsassがodd number of arguments for Hash (ArgumentError)ってエラー吐いて動かないので調べた。 生成するハッシュのkey,valueに配列が含まれる場合1.8.6だとこのエラーになる。1.8.7は動く Ruby1.8.6リファレンス http://doc.okkez.net/static/1…

RVMの最新のリリースバージョンでエラーが出た

Mac OS X 10.7の話 $ rvm get latest $ rvm --version #=> rvm 1.6.25 by Wayne E. Seguin (wayneeseguin@gmail.com) [https://rvm.beginrescueend.com/] rvm useを実行するたびにエラーが出るようになった $ rvm use 1.9.2 Using /Users/arcright/.rvm/gems…

RubyKaigi2011 3日目参加…して…きた

寝坊して最後の基調講演しか聞けませんでした!!! 振子とPGと百年の言語 / まつもとゆきひろ氏 無駄にハードルを上げないでほしい肩書きコレクター 1997 ネットワーク応用通信研究所フェロー 2007 楽天 技術研究所 フェロー 2009 松江市名誉市民 島根大学 …