Getting started with Mastodon ヘ(^o^)ノ

Today, I attended this event. dddrb.doorkeeper.jp But I failed to setup Mastodon. The reason for the failure was a bug in cld3-ruby. Fortunately this bug was fixed. github.com github.com Setup for macOS $ gem install foreman $ brew install…

Kunibiki.rb #3に参加したヘ(^o^)ノ

kunibikirb.connpass.com 発表内容 Railsアプリ開発者のためのDocker入門 by セラリンさん slides.com rails + reactでアプリ作成 by 吉岡さん React, Vue.jsなどフロント回りのお話でしたー 参考資料 qiita.com めんどくさがりの僕はフロントエンドとバック…

Tmuxを使ってプロジェクトの開発環境をいっぱつで起動するヘ(^o^)ノ

一つのプロジェクトで複数のタブを開いて作業したりしませんか? Rubyのアプリケーションであれば foreman を使ったりするかもしれませんが、、 Shinosaka.rbで今回のテーマにぴったりなプロジェクトがあるのでそいつを使って試してみます。 github.com まず…

Destructuring Object in ES6

often use const props = { label: 'label', text: 'text' } const { label, text } = props console.log(label) #=> 'label' console.log(text) #=> 'text' default value const props = { label: 'label' } const { label, text = 'text' } = props consol…

Jestでcontextを使うヘ(^o^)ノ

Environment Jest 18.1.0 Jestでは context が使えません、、 github.com なので、使えるようにしてみましょう。 とはいっても、contextはdescribeのエイリアスです。 global変数を定義してみましょうヘ(^o^)ノ // setupTestFramework.js global.context = d…

Rails5でActiveSupport::PerThreadRegistryがdeprecatedになったよヘ(^o^)ノ

ちょっと今更ですが、Rails5でActiveSupport::PerThreadRegistryがdeprecatedになった。 ActiveSupport::PerThreadRegistryを使ったほうがイイ理由は遠い昔に書いたブログを参照してね。 murajun1978.hatenadiary.com ActiveSupport::PerThreadRegistryにも…

フロント用にサクッとAPIのレスポンスを用意するヘ(^o^)ノ

Mock API response with json-server github.com Create sample data with Faker.js github.com Sample code github.com Setup $ git clone git@github.com:murajun1978/faker-sample.git $ cd faker-sample $ npm install Start server $ npm start faker.j…

n でNode.jsのバージョンを管理する ヘ(^o^)ノ

github.com Installation $ git clone git@github.com:tj/n.git $ cd n && make install Usage Installed versions $ n Install latest version $ n latest Install/Activating versions $ n 6.3.0 Available list $ n ls Remove version $ n rm 6.3.0 io.js…

GitbookをGitHub Pagesで公開する ヘ(^o^)ノ

Gitbook markdownで書ける電子書籍作成ツール HTMLや電子書籍(PDF,EPUB,MOBI)にoutputできる 今回はHTMLをoutputして、GitHub Pagesのホスティング機能を使って公開してみます github.com GitHub Pages GitHubのホスティングサービス Organization と Pr…

RailsのPolymorphicでhas_oneするヘ(^o^)ノ

Polymorphicのhas_one関連を書いてる記事が少なかったので ついでにPolymorphicのおさらいしておく 環境 Ruby 2.3.0 Rails 4.2.6 モデルをgeneratorでつくる # zshなんでエスケープしてますです $ bin/rails g model picture imageable:references\{polymorp…

Arrayでinjectを使ってみるヘ(^o^)ノ

injectはとても便利( ˘ω˘) [1, 2, 3].inject(:+) #=> 6 こんな感じで読みやすくていい感じ total_price = 90 total_price += [10, 20].inject(:+) #=> 120 Railsのバリデーションとかで使うならこんな感じかな # 以下の値を仮定 limit_total_price = 100 tot…

TempingでMixinするmoduleのテストをしてみる٩( ‘ω’ )و

RailsでモデルにMixinするモジュールをテストしたいとき、みなさんどうしてますか? mock_model? stub_model? 自分のダミーテーブル作る? 各モデルでテストする? どれも意外と面倒くさい そんなときはTempingを使うと楽ちん ActiveSupport::Concernのモジ…

masterのBug Fixだけをreleaseブランチへマージする٩( ‘ω’ )و

Git

GitHubにはrelease機能があります Creating Releases - User Documentation masterブランチにマージしてタグ付けてきたが、railsのブランチを見るとリリースブランチが存在します いまさらですが、releaseブランチを作るGitLab Flowを導入しました ( ̄▽ ̄;) …

action_controllerの拡張gemをRSpecでTDD ٩( ‘ω’ )و

action_controllerの拡張gemを作成するときにrspecでテストする ユーザ認証のサンプルgemをTDDで作っていきましょう まずは、gemのひな形を作る $ bundle gem user_auth bundlerが1.9系なら以下のファイルが作成されてるはず ├── Gemfile ├── LICENSE.txt ├─…

ActiveSupport::PerThreadRegistryでThread.currentより安全にグローバルな値を保持する╭( ・ㅂ・)و ̑̑

Railsでグローバルデータを保持したいときに、Thread.currentを使えば簡単ですよね Thread.current[:current_user] = user Thread.current[:current_user] #=> user 僕も気軽に使ってましたが、最近こんな記事を見つけました。 Better globals with a tiny A…

ActiveSupport::OrderedOptionsを使ってHashで.(ドット)を使えるようにする٩( ‘ω’ )و

もはやActiveSupportなしでは生きていけない僕 Hashをイイ感じに拡張してるActiveSupport::OrderedOptionsです rails/railsgithub.com # activesupport/lib/active_support/ordered_options.rb module ActiveSupport class OrderedOptions < Hash ... end en…

Array#extract_options!で引数からオプションをひっこぬく٩( ‘ω’ )و

Railsでのvalidationを設定する時はこう書きますよね? validates :name, :kana, presence: true validatesメソッドに、symbolとhashが複数指定されています オプション部分はHashですねー 引数とオプション(Hash)を分離したいときに大活躍するのがArray#ext…

Enumerable#partitionでブロックの評価が真と偽の要素に分ける٩( ‘ω’ )و

いままでブロックで評価して真のものはselectで、それ以外はrejectとか2回やってた... でも、これ1回でできたらおしゃれですよねー そんなときはEnumerable#partition こんなかんじ( ˘ω˘) array = ["cat", 1, 2, "dog", 0.1] numbers, non_numbers = array.…

Adequate Recordでキャッシュされないケースヘ(^o^)ノ

第65回 Ruby関西 勉強会に参加したよヘ(^o^)ノのつづき スライドに、Adequate Recordでキャッシュされないケースを書いたけど、 ざっくりしすぎなのでまとめてみる( ˘ω˘) find_byを例にactiverecordのコードを読みながら確認していく コードはこんな感じ(コ…

神戸.rb Meetup #13に参加したよヘ(^o^)ノ

神戸.rb Meetup #13に参加しましたー 毎回思うがホント勉強になる 僕の思いもみんなに伝えられたし良かった 今日はActiveSupport::StringInquirerについて調べた 結構こんなの書いちゃいがちですよね? if Rails.env == 'production' ... end それが、こう書…

RubyのHashで要素数を取得するヘ(^o^)ノ

Hashで要素の数を取得してみる Hash#lengthとHash#size favorites_language = { bob: 'Ruby', jone: 'Ruby', tiger: 'Perl' } favorites_language.length #=> 3 favorites_language.size #=> 3 Enumerable#count favorites_language = { bob: 'Ruby', jone: …

第65回 Ruby関西 勉強会に参加したよヘ(^o^)ノ

第65回 Ruby関西 勉強会に参加し、発表してきました。 発表内容はRails4.2の新機能について。 4.2がリリースされてから2ヶ月が経ちますが、ActiveJob中心に紹介させてもらいました。 発表中にデモする時があると思います スライド見ながらタイプするの大変で…

Gitのコンフリクト時にmergetoolで確認してマージするヘ(^o^)ノ

Gitでコンフリクトしたときに、GUIやIDEだと差分が確認しやすいみたい。 でも、僕はVimなの... そこでmergetoolですよ! 実際にやってみよう。 # hello.rb class Hello def say "Hello" end end コミットして、ブランチを切ります。 $ git init $ git add . …

神戸.rb Meetup #12に参加したよーヘ(^o^)ノ

神戸.rb Meetup #12に参加しました。 僕はKonachaについて調べてました。 会社でRailsのJavaScriptをええー感じにテストしたい!ってことなので # Gemfile group :test, :development do gem 'konacha' gem 'selenium-webdriverd' end デフォルトのdriverはs…

神戸.rb Meetup #11 に参加したよヘ(^o^)ノ

Kobe.rbに参加してきたよヘ(^o^)ノ 今日のおやつ!! photo by @spring_aki おいしかった♪ 今日、僕が調べてたのはActiveDecorator + Capybara + RSpecです。 ActiveDecoratorでhelperを良く使いますよねー 例えばこんなの... def full_name content_tag :td…

Rails - ActiveDecoratorのコード読んでみたヘ(^o^)ノ

いつもお世話になります。ActiveDecoratorさま。 @izumin5210さんの「ActiveDecorator読んでみたら超勉強になった」を読んで、そういやコードあんま見てなかったので読んでみた なるほど編 alias_method_chain 既存のメソッドを拡張するときにちょー便利♪ si…

神戸.rb Meetup #10に行ってきたよヘ(^o^)ノ

今日は神戸.rb Meetup #10に行ってきた。 仕事が押して1時間ほど遅れてしまったけど。。。( ̄▽ ̄;) みんながそれぞれ興味あることをワイワイ話したり、もくもくしたりと良い感じです。 おやつもあるっ!!! 僕はcocoon(こくーん?)ってgemを使ってみまし…

Rails - ActiveModel::Callbacksでカスタムコールバックヘ(^o^)ノ

あけましておめでとうございます。 年内で仕事が納まらず、1日からコードをごりごり書いております。。。 さて、ActiveRecord::Callbacksはみなさんおなじみ before_saveとか良く使いますよね? でも、今回やりたい事はこういうの # app/models/comment.rb c…

Shinosaka.rb #11を開催したよーヘ(^o^)ノ

今年最後のShinosaka.rbを開催しましたー DoorKeeper - Shinosaka.rb #11 みなさんのおかげで1年を通して開催することができました。 来年からShinosaka.rbはLTタイムをつくるよー 参加者のなぜ???やRubyに関する困りごとをLTしてもらって、みんなで解決…

DXRubyでプロ生ちゃんを動かしてみたヘ(^o^)ノ

これはプロ生ちゃんAdvent Calendar 2014の18日目の記事ですヘ(^o^)ノ プロ生ちゃんの素材とDXRubyを使って、プロ生ちゃんを動かしてみます。 DXRubyとはゲーム開発初心者向けのDirectXライブラリ 注) 32bit版のRubyでのみ動作します DirectXということは…そ…