こういうやつです。 宮藤官九郎(第1話、第2話、最終話)で名前と後ろを分けたい場合。 (?<name>.[^((]*)(?<supplement>.*)? 否定を間に挟んで、それ以外までにする。 これがミソ。 このパターン多いと思うし、覚えておこ。</supplement></name>
これがあれば何にマッチさせているかわかるじゃん!って感動しました。 正規表現でキャプチャするときに$1で変数格納されますが、この場合何にマッチさせているのかがわかりづらいときがあります。 何より量が増えてくるとしんどいです。 使い方 (?<name>正規表現</name>…
rubyでeach x indexをしたいパターンが多いです。 そのために、each_with_indexというメソッドがあります。 each_with_index こちらは基本的に初期値が0からになります。 array = %w(foo bar baz) array.each_with_index do |x, index| puts "#{index}番目#{…
Formオブジェクトを使用していて、まともにActiveModelを使用しました。 ActiveRecordの場合は自動的にcallbackを仕込めるのですが、ActiveModelの場合はどうすればいいのかわからなかったです。 使い方 class WorkForm include ActiveModel::Model define_m…
やられましたよ。 rails4 → rails5へのアップデートをしていたのですが、libpathの配下のものが読まれない。 config/application.rb config.autoload_paths += %W(#{config.root}/lib) 問題ないだろ。 そう思っていましたよ。 どうやら、この作業が無効にな…
AWSのt2.microだと、メモリーが1Gです。 webpackerを使用していると、普通にdeployで落ちてしまいます。 FATAL ERROR: JS Allocation failed - process out of memory Aborted こんな感じのエラーが出てにっちもさっちもいかなかったです。 memoryが足らない…
いちいちgitを開けるのが面倒くさいってパターンです。 #!/usr/bin/env ruby require 'open-uri' url = "https://github.com/foo/bar/issues/#{ARGV.first}" system "open #{url}" ファイル名をbin/issueで登録する。 bin/issue 10 これで開きます。 もう少…
webpackerを使用していて、webpacker installって出ているのに、installは失敗していた。 これはムカつくからpullreq出してやろうと思ったら、すでにあった。 さすがだ。 fail hard when webpacker:install ./bin/yarn fails by sealocal · Pull Request #14…
なんでだよ! node -v => v7.7.4 deploy→/usr/bin/env: node: No such file or directory 確実にインストールはされている。 ということで、シンボリックリンクを貼りましょう。 sudo ln -s "$(which node)" /usr/bin/node ちなみにdebianのversion cat /etc…
controllerテストいらねみたいな流れだったけど、requestテスト書けって話だったのか。 Rails 3 と 4 において、controller spec の assigns は慣用されてきました。 今回の RSpec 3.5 はマイナーリリースであり、私たちは SemVer に準拠する以上、 既存の c…
rails5にアップデートするときに変更されていて、手を加えて変更したので、備忘録として書いておきます。 rails4.2時代のrenderのやり方 下記のように、requestを強引に擬似るような形でやっていました。 class Renderer def renderer controller = Applicat…
jsonで値を渡しているのに、並び順が違う!って状態に陥りました。 なんでだ?って思うと、どうもObject.keys()の並び順に整理されるようですね。 オブジェクトを反復処理するとき、順序は Object.keys() の列挙順のキーに基づいており、全ての JavaScript …
どういった時に使うんだよwwwって思いましたが、使う感じになりました。 select * from icons where id in(4, 5, 6) order by field(id, 5, 4, 6) => mysql> select * from icons where id in(4, 5, 6) order by field(id, 5, 4, 6); +----+----------------…
mysqlとrailsの両方に念のためつけます。 複合uniqueなんて、使うことあるのか?って思っていたけど、必要になりました。 忘れないために書いておきます。 まずは、migrationの書き方からです。 class CreateReactions < ActiveRecord::Migration def change…
わかりづれー!ってなっていました。 {}←これ何?って感じで意味不明に陥りやすかったです。 function foo({x, y}) { return x + y } console.log(foo({x: 1, y: 2})); =>3 x, yのvalueが代入されている。 これってrubyのキーワード引数と同じっぽく感じる。…
counter_cacheはできるだけ使いたくないんですよ。 無駄なカラムを持ちたくないということで、頑張りました。 対策としては、最初で全てのcountを手にするのが一番いいですね。 countは重たいので、先に何とかして値を入手したい・・・。 今回のサンプルでは…
最近はVue.jsを個人で使用しているので、javascriptについても学んでいます。 ES2015の機能を少しづつ勉強しています。 基礎能力がないと結局開発の仕方がわからないなってのがあるので、勉強がてらに記事を書きます。 Iteratorって何? そもそもIteratorっ…
特定のタイミングで実行されるものです。 意味不明だと思うので、解説します。 included includeではありません、includedです。 なんとなく、見覚えがあったのですが、違いを全く理解していませんでした。 includedメソッドは、includeメソッドによってモジ…
何個か方法あるので、少しづつ紹介します。 クラス内でincludeする module Foo def hello 'hello' end end class Bar class << self include Foo end end Bar.hello => "hello" 特定のオブジェクトだけincludeする x = Bar.new class << x include Foo end x…
クラス変数なんて、めったに使うことなんてないし、railsで使うならclass_attributeがあるんで、普通は必要ないです。 しかし、よくクラス変数やめろ!なんて言われることが多いと思うので、ここでおさらいしておきます。 クラス変数とは そもそもクラス変数…
やられました...orz 直接sqlをいじることがなかったのですが、いじった時に気付きました。 mysql> show tables; +-----------------------------------+ | Tables_in_foo | +-----------------------------------+ | categories | | comments | | rankings |…
lscpuでいけるんじゃない?って思っていたのでしたが、macは違いました。 mac system_profiler SPHardwareDataType Hardware Overview: Model Name: MacBook Pro Model Identifier: MacBookPro11,1 Processor Name: Intel Core i5 Processor Speed: 2.4 GHz …
macのmysqlをupdateしたら、Library not loaded: /usr/local/opt/mysql56/lib/libmysqlclient.18.dylibって出るようになった
なんじゃこりゃーってなりました。 なんだ昔のmysqlを見に行ってるの? そんな古い情報見に行かないでくれよ!って感じだと思います。 原因は、gemの情報で古いmysqlの場所を見に行っているのが原因でした。 gem uninstall mysql2 ここで全てのversionを削除…
emojiを使おうと思ったら、色々と問題があるようなので、まとめます。 文字コード問題 collation問題 ハハパパ問題(参考) index問題 mysql側の設定 rails側の設定 文字コード問題 まず、emojiはmysqlのutf8では使用できません。 mysqlでemojiを使用するにはu…
単純にprivateにするだけはダメです。 class Foo def self.bar puts 'bar' end private def self.baz puts 'baz' end end Foo.baz =>baz という風に実は普通に呼べています。 方法は二種類あります。 self内でprivateを呼ぶ private_class_methodを定義する …
constantizeを使用します。 "Topic".constantize => Topic(id: integer, title: string, body: text, category_id: integer, thumbnail_updated_at: datetime, thumbnail_file_size: integer, thumbnail_content_type: string, thumbnail_file_name: string,…
nestしたcontent_tagを書く場合です。 concatで連結して書くことができます。 content_tag(:div, class: "c-grid__quotation-image") do concat(image_tag(url)) concat(link_to("出典:#{host_name}", url)) end ただし、こんだけ連結させる場合は、別途ren…
今までjs側で処理を行おうとしていました。 普通にhtml属性で設定ができます。 = f.file_field :thumbnail,accept: 'image/jpg,image/jpeg,image/png,image/gif' acceptを使用することで、拡張子が画像系のものしか上げなくできます。 twitterってどうやって…
Redisについてお話ししたいと思います。 Redisとは メモリ上にKVS(Key Value Store)を保存できるようにするソフトウェアです。 インメモリ型データベース メモリ上にデータをすべて持ち、ディスクから取り出すよりも高速処理が可能になる データを永続化する…
普段はwebkitで十分なのですが、たまにchromeで開きたいって時ありますよね? そんなgemを作成しました。 GitHub - ryosuke-endo/capybara_switch_driver 中身は微妙かもしれないけど、自分で使う分だからいいのかなと思いました。 以上です。