カテゴリー: Ruby

【Ruby/Rails】デプロイ作業をCapistranoで自動化する

スポンサードリンク

こんにちは、しきゆらです。

 

Railsアプリをデプロイする時は、Capistranoというツールを使うのが一般的なようです。

これは、gitにRailsアプリを公開しておくと、それをもとにしてデプロイ作業をやってくれる便利なものです。

早速、使い方を見ていきます。

 

 

Continue reading “【Ruby/Rails】デプロイ作業をCapistranoで自動化する”

スポンサードリンク

【Ruby】RSpecに触れてみる

こんにちは、しきゆらです。

今回は、Ruby用のテストフレームワークの一つであるRSpecに触れてみたのでメモしておきます。

 

なお、RSpecに関する書籍等もあるので、そちらも読むと良いかもしれません。

少し古いですが、日本語の本。

 

新し目ですが、英語の本(ほしい)。

ほしい本リストに追加しておこう・・・。

 

さて、本当に基本的なところを触っていこうと思います。

Continue reading “【Ruby】RSpecに触れてみる”

【Slim】HTMLのメタ言語を触ってみる

こんにちは、しきゆらです。

今回は、HTMLのメタ言語であるSlimに触れてみます。

 

これまで、素のHTMLを書いていました。

HTMLは〈〉をたくさん書くのが面倒であったり、

構造の変更や少し複雑な要素を作る時はとても不便なことが多くありました。

 

しかし、調べてみると便利なものがたくさんありました。

今回出てくる「メタ言語」と言うものです。

 

メタ言語

簡単に言えば、ある言語を書くために

  • 少しだけ機能を拡張
  • 書きやすい構文
  • もとの言語に変換可能

という特徴を持つものです。

 

有名なものでは、CSSに対するSassがメタ言語に当たります。

Slimの他にも様々なものがあります。

  • pug: JS製。昔はJadeという名前だった。
  • ERB: Rubyの標準添付。特にインストールしなくても使える。
  • Haml: Ruby製。Slimとほぼ同じ機能を持つ。
  • Slim: Ruby製。今回触る。

 

今回は、HTMLのメタ言語の一つであるSlimを触っていきます。

 

Continue reading “【Slim】HTMLのメタ言語を触ってみる”

【CentOS/Raspberry Pi】EmacsやRubyをインストールする

こんにちは、しきゆらです。

前回の記事は、RaspbianからCentOSに乗り換えたお話でした。

【Raspberry Pi】CentOS7をインストールする

 

その記事の中で、あまり使い慣れていないviさんと一悶着もありました。

どうしても使い慣れた環境を作りたい・・・。

 

ということで、今回はEmacsやRubyをインストールしていきます。

どれも、自前でコンパイルしていきますよ。

 

Continue reading “【CentOS/Raspberry Pi】EmacsやRubyをインストールする”

【Ruby】GuardとRakeで面倒なものを自動化する

こんにちは、しきゆらです。

今回は、Web開発中によく行うであろう、ローカルサーバに編集したコードをコピーする部分を自動化してみます。

 

おそらく、すべてGuardさんだけで行けるかもしれませんがRakeも使ってみたいので療法を使っていきます。

Continue reading “【Ruby】GuardとRakeで面倒なものを自動化する”

【Ruby】Railsさん ことはじめ

こんにちは、しきゆらです。

タイトル通り、Railsさんを少し触ってみたメモを残しておきます。

 

はじめまして、Railsさん。

これまで、Rubyを約5年ほど触っていますが、Railsさんとは触れ合ってきませんでした。

しかし、やはりRubyを書いているものとしてRailsくらいは触っておきたい。

ということで、インストールからしていきます。

 

なお、Macで行っていきますよ。

Continue reading “【Ruby】Railsさん ことはじめ”

【Ruby】タスクランナーGuardを触ってみる

こんにちは、しきゆらです。

今回はタスクランナーの一つであるGuardと言うものを触ってみます。

 

最近、gulpというものを知りました。

というか、名前は聞いたことがあるけど何をするためのものか知りませんでした。

 

特定のタイミングで何らかの処理をさせるタスクランナーと言うものに触れるきっかけとなりました。

インターンシップ先ではJenkinsと言うものを使っているようでしたが、実際にそれを見たわけではないのでよくわかりません。

 

その点、gulpというものはJSでタスクを設定することが出来るということで便利そうだな、という感じ。

でも、どうせならRubyさんで書けるものはないのかと思い調べてみたら見つけました。

Guardと言うものです。

どうも最近は、上記のgulpがメインとなっているようですが、今回はGuardを触っていきます。

 

以下のサイトを参考に、触っていきます。

参考
rubyのGuardとRSpecをRailsを使わない環境でつかう | 大石制作ブログ
Ruby | Guard gem を利用してファイルの変更を検出し、任意のタスクを自動実行する – Qiita

 

Continue reading “【Ruby】タスクランナーGuardを触ってみる”

【Ruby】Seleniumことはじめ

こんにちは、しきゆらです。

今回は、Webブラウザの自動テストツールであるSeleniumのセットアップとかんたんな使い方をメモしておきます。

 

タイトル通り、Rubyで操作します。

他言語での使い方は、以下の本がわかりやすいかと思います。

 

Continue reading “【Ruby】Seleniumことはじめ”

【JS/Ruby】JSが理解できる日付を表す文字列を作る

こんにちは、しきゆらです。

今回は、やんごとなき理由により日付を表す文字列をサーバ側からもらい、JSで処理するような状況で困った私が、その時解決した方法をメモしておきます。

 

少しだけ状況を説明すると、

サーバ側ではRubyさんを使って日付を文字列にしてDBへ入れています。

(この段階でSQLのtimestampとか使えばいいのに、と思いうツッコミはなしで)

その日付文字列をJSでパースしてあれこれ処理するようなプログラムを書いていました。

例えば、前回のログイン時間との時間差とか。

 

ここで、問題が起こります。

Rubyで「Time.now」として取得できる日付を表す文字列は、

  • 2017-10-20 23:32:04 +0900

JSで「Date.parse()」で理解できる日付文字列は、

  • Fri Oct 20 2017 23:32:04 GMT+0900

 

これでは、JSは日付を理解できません!

ここからが本題です。

 

JSは日付をパースしたりするとき、IETDF標準日付構文としてパースするようです。

時刻を表す文字列を与えると、parse() は time 値を返します。これは、”Mon, 25 Dec 1995 13:30:00 GMT” のような RFC2822 / IETF 標準の日付構文 (RFC2822 Section 3.3) を受け入れます。

Date.parse() – JavaScript | MDN

JSのDate()で返ってくる文字列は「Fri Oct 06 2017 23:49:19 GMT+0900 (JST)」のような形です。

パースするときも、この文字列形式だと思ってやるようなので、

YYYY-MM-DD HH:MM:SS +0900のような文字列は受け付けてくれません。

※Chrome系のブラウザでは受け付けてくれるようです。

 

何かやんごとなき状況により、「YYYY-MM-DD HH:MM:SS +0900」のような文字列を扱わざるを得ないような場合があるかもしれません。

そこで、サーバ側でJSで理解できる形式に変換してみましょう。

もちろん、Rubyさんでやってみます。

他の言語でも、多分同じような関数があるはずなのでいけるはずです。

重要なのは3行目のstrftime。

この書き方で、JSが理解できる日付を表す文字列にできます。

 

日本決め打ちですが、とりあえずこれでJSさんもRubyさんも、この日付をきちんと理解してくれます。
JSさんのDate型には罠が多くて面倒ですね。
早く同じ挙動になってくれ・・・と思う今日このごろ。

とりあえず、Chrome系、Firefox、Safariできちんと読み込めたので大丈夫だと思います。

 

今回はここまで。

おわり。

【Raspberry Pi】RubyのコンパイルからSSHまでを設定

こんにちは、しきゆらです。

今回は、前回にセットアップしたRaspberry PiにRubyをコンパイルし、SSH接続ができるようにします。

 

先回の記事はこちら

【Raspberry Pi】OSのインストールから日本語化まで

 

Continue reading “【Raspberry Pi】RubyのコンパイルからSSHまでを設定”