Svelte採用記 - 位置情報と可視化の会社で、全社の標準技術スタックに選ぶまで / Svelte Japan Online Meetup #3
Rails Developer Meetup 2019での発表資料です!可読性の高いテストコードを書くためのコツについて話しました
RubyでUTF-8文字列の全角英数字の表記揺れを統一したいとき、 気をつけないと希に文字化けする事象を見つけたのでメモします。 NKFを用いて全角英数字→半角英数字に変換する方法 ググるとよく出てくる方法は次の通りです。 もちろん、問題なく普通に動きます。 $ pry [1] pry(main)> require 'nkf' => true [2] pry(main)> NKF.nkf('-m0Z1 -w', "Ruby−2.2") => "Ruby-2.2" ここでWindowsの機種依存文字が混じるとどうなるでしょうか。 pry(main)> NKF.nkf('-m0Z1 -w', "ルビー Ⅱ") => "ルビー Ⅱ" pry(main)> NKF.nkf('-m0Z1 -w', "ルⅡ") => "繝ォ竇。" pry(main)> NKF.nkf('-m0Z1 -w', "Rub
RubyでUTF-8文字列の全角英数字の表記揺れを統一したいとき、 気をつけないと希に文字化けする事象を見つけたのでメモします。 NKFを用いて全角英数字→半角英数字に変換する方法 ググるとよく出てくる方法は次の通りです。 ここでもしWindowsの機種依存文字が混じるとどうなるでしょうか? $ pry pry(main)> require 'nkf' => true pry(main)> NKF.nkf('-m0Z1 -w', "Ruby−2.2") => "Ruby-2.2" pry(main)> NKF.nkf('-m0Z1 -w', "ルビー Ⅱ") => "ルビー Ⅱ" pry(main)> NKF.nkf('-m0Z1 -w', "ルⅡ") => "繝ォ竇。" pry(main)> NKF.nkf('-m0Z1 -w', "Ruby Ⅱ") => "Ruby 竇。" なんと、文
class String def sjisable str = self #変換テーブル上の文字を下の文字に置換する from_chr = "\u{301C 2212 00A2 00A3 00AC 2013 2014 2016 203E 00A0 00F8 203A}" to_chr = "\u{FF5E FF0D FFE0 FFE1 FFE2 FF0D 2015 2225 FFE3 0020 03A6 3009}" str.tr!(from_chr, to_chr) #変換テーブルから漏れた不正文字は?に変換し、さらにUTF8に戻すことで今後例外を出さないようにする str = str.encode("Windows-31J","UTF-8",:invalid => :replace,:undef=>:replace).encode("UTF-8","Windows-31J") end
Cloning https://github.com/ruby/ruby.git... Installing ruby-2.2.0-dev... BUILD FAILED Inspect or clean up the working tree at /var/folders/0n/18bwv5x16t7gy319d5wbn9480000gn/T/ruby-build.20140718233658.48380 Results logged to /var/folders/0n/18bwv5x16t7gy319d5wbn9480000gn/T/ruby-build.20140718233658.48380.log Last 10 log lines: bigdecimal 1.2.5 io-console 0.4.2 json 1.8.1 psych 2.0.5 rake 10.3.2 rd
前置き、概要説明 Rubyはバージョンによる差異が大きく、各バージョンで互換性がない場合もあります。その為、複数のプロジェクトに携わっている場合はプロジェクト毎にRubyのバージョンを切り替える必要があります。この問題を解決してくれるのがrbenvというツールです。 rbenvはシステム内に複数のバージョンを共存させることを可能にしてくれます。具体的には、特定のディレクトリ配下(プロジェクト)に特定のバージョンを適応するといった制限を掛けてくれます。つまり指定のディレクトリ外には影響を与えず、隔離することが可能な為にクリーンな環境が保てます。 これはRubyのライブラリであるgemにおいても同様です。バージョンによる差異が大きい場合がある為、プロジェクト毎に適切なバージョンのgemを利用する場合があります。これにはBundlerというツールを利用します。 Bundlerを用いることで、本来
『るびま』は、Ruby に関する技術記事はもちろんのこと、Rubyist へのインタビューやエッセイ、その他をお届けするウェブ雑誌です。 Rubyist Magazine について 『Rubyist Magazine』、略して『るびま』は、Rubyist の Rubyist による、Rubyist とそうでない人のためのウェブ雑誌です。 最新号 Rubyist Magazine 0064 号 バックナンバー Rubyist Magazine 0064 号 Rubyist Magazine 0063 号 Rubyist Magazine 0062 号 Kaigi on Rails 特集号 RubyKaigi Takeout 2020 特集号 Rubyist Magazine 0061 号 Rubyist Magazine 0060 号 RubyKaigi 2019 直前特集号 Rubyist
$ sw_vers -productVersion 10.11.4 $ ruby -v ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-darwin15] $ gem -v 2.5.1 $ bundle -v Bundler version 1.11.2 問題 Gemfileにgem "therubyracer"を追加してbundle installした時にエラーが発生。これ自体はv8とlibv8とtherubyracerのバージョン関連の痴話げんか的なあるある問題らしい。 以下のリンクを参考にごちゃごちゃやったが、解決せず。 http://l-light-note.hatenablog.com/entry/2014/09/17/134807 http://stackoverflow.com/questions/33475709/insta
結論から言うと... Imagemagickのバージョンを6に下げると、インストールできるようになる。 RMagickはImagemagickのバージョン7に対応していない模様。 RMagickを使用するには、ImageMagickという画像変換ツールをパソコン内にインストールする必要があるが、 「brew install imagemagick」でImagemagickをインストールするとバージョンは7になってしまうので注意。 既にに入っているバージョンが7の場合は、バージョンを下げましょう。 rmagickインストール関係で参考になるQiita記事リンクを最後にまとめました。 本記事のエラー以外で躓いている方は、そちらをご参照ください。 環境 macOS Sierra: 10.12.2 Ruby: 2.3.1 Rails: 5.0.1 bundle install "rmagick"で
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? Railsをローカルに落として bundle install する時に以下のようなエラーが出た。 $ bundle install ... ... Gem::Ext::BuildError: ERROR: Failed to build gem native extension. /Users/USERNAME/.rbenv/versions/2.2.1/bin/ruby -r ./siteconf20150428-22330-11fwtg6.rb extconf.rb checking for clang... yes checkin
初心者がRubyの基礎を覚えたところで他人のコードを読むようになると、*args や map(&:to_s) のような謎の記法がでてきます。 この手の記法は名前がわからないとググラビリティが低くなるため、人によってはつまづきとなることが多いようです。 尋ねられることがたまにありますので、この機会にRails開発でよく使われるものを中心にまとめてみます。 引数 *args 変数名の冒頭に*(アスタリスク)が付いているもので、「可変長引数」または「splat引数」とかいいます。 引数を複数個設定でき、さらにメソッド内部で引数を配列として受け取ることができます。 def splatter(*args) p args end splatter('foo') # => ['foo'] splatter('foo', 'bar', 'baz') # => ['foo', 'bar', 'baz'] d
自分が現在関わっているプロジェクトでは、nginx + unicornの構成で運用しているのですが、この構成でサーバのメモリが足りなくなるという現象に悩まされていました。 unicornのワーカプロセスは、通常では起動したままユーザからのリクエストを処理し、再起動されることはありません。 その関係で、長時間運用していると、そのワーカプロセスがメモリをあるだけ食いつぶすような挙動になります。 こんな時に便利なのが「unicorn-worker-killer」です。 unicorn-worker-killerを使うことで、ワーカプロセスが以下の条件の場合に、自動的に再起動してくれます。 ワーカプロセスが指定回数のリクエストを処理した場合 ワーカプロセスが指定量のメモリを使用している場合 いずれの場合でもワーカプロセスの再起動は、現在のリクエストを処理した後に再起動(いわゆるgraceful r
Rubyのソースコードを読むとき、grepやctagsだけで読んでるとどこにどういう値が入るのか頭で考える必要があり大変。 そういう時、実際に動かしながらpryを使って中身を確認すると、どういう動きをしているのか楽に把握できる。 普通のエディタを使ってRubyを書いている人にとって、IDE的な機能を提供してくれるのがpryといえる。 本稿では、この記事を書く前の私のように、この次の「最低限の使い方」くらいしかpryを使いこなせていない人向けに、便利な機能をひと通り説明する。 最低限の使い方 まだpryを使ったことがない人はこれだけ知ってれば十分な気がする。 binding.pryで任意の場所からREPLを立ち上げる ソースの任意の箇所にbinding.pryを書いてRubyのプログラムを走らせると、実行中にその行でストップしてpryのREPLが立ち上がり、その環境での変数がどうなっているか
Simple Ruby Version Management: rbenv rbenv lets you easily switch between multiple versions of Ruby. It's simple, unobtrusive, and follows the UNIX tradition of single-purpose tools that do one thing well. もっとsimpleなRVMという意味か、、? とりあえずどんな特徴があるか見てみます。 rbenvの特徴 ○ Rubyの本体に付属していない ○ Ruby on Railsの開発者が入る37signalsが作った。 ○ rvmをよりシンプルにしたRuby自体のバージョン切り替え ○ rvmより動作が軽い ○ Do 1 ユーザー権限ごとにバージョンを切り替え(システム全体には影響しない
【重要】Mac環境を前提としております。Windowsでは現状残念ながらunicornのmakeに失敗するので、うまく行きません。 Windowsの場合は、VMwareをご使用下さい。vagrant 環境でも可能です。 1.macportを削除すること 2.Xcodeをインストールしてあること。 3.Xcodeのコマンドラインツールをインストールしてあること 4.rvmを使っている人は「rvm」を削除すること 5..bash_profile に変なことが書いてある人は消すこと。 6.万が一の為にタイムマシンでバックアップをとっておいた方が幸せ。 7.MYSQLを使う人というかほとんどだと思いますが、MYSQLのインストール 8.MacOSが「El Capitan」の場合は「SIP」を無効化する必要性があります。 手順は以下参照 ■URL SIPの無効化 Xcodeのインストール Xcode
忙しい人のためのまとめ インストール Macは brew install rbenv ruby-build でインストール。 Ubuntuは git clone https://github.com/sstephenson/rbenv.git ~/.rbenv git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build apt-get install -y autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm3 libgdbm-dev
PrawnはRubyで使えるPDF生成ライブラリです。 Railsを使った案件でPDFを作成する場合は、よくPrawnを利用しています。 今回、縦書きに対応する必要があったのですが、Prawnが提供しているメソッドだけだと対応できないので、自作してみました。 基本的な考え方としては、「文字を1文字ずつ区切り縦に並べる」です。 後は自動改行や複数行になった際の中心の調整を対応していきます。 ※今回の縦書きメソッドは宛名書き用に作成しています。 文章への対応となると約物等への対応が必要になり、ものすごく大変になります。 今回は長音符のみ90度回転させる方法で対応しています。 UTR50を見るとさらにy軸を中心に180度回転させるのが正しいように見えますが、今回は対応していません。 フォントに縦書き用のグリフがある場合は、それを使って対応することもできます。 今回のバージョン Rails 3.2
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く