Polymer on Rails
Web Componentsをご存知だろうか。これが普及すればWebの開発は画期的に変わるだろう。
説明すると長くなるので、LIGさんのにその辺はお任せして。(この記事読んでください。)
簡単に言えば、下記にあるような新たに提案されたブラウザ向けAPIの総称。
- Custom Elements, 説明, 対応ブラウザ
- HTML Import, 説明, 対応ブラウザ
- Shadow Dom, 説明, 対応ブラウザ
- Animation Elements, 説明, 対応ブラウザ
例えば、HTML Importの機能を使えば、こんな風に Google Map が実装できる。
[code lang=”html”]
<!– Polyfill Web Components support for older browsers –>
<script src="components/platform/platform.js"></script>
<!– Import element –>
<link rel="import" href="google-map.html">
<!– Use element –>
<google-map lat="37.790" long="-122.390"></google-map>
[/code]
ただし、対応ブラウザを見れば分かるとおり、現時点で思い切って使うのは憚られる。
そこで、Googleは、Web Componentsが既存のブラウザでも動くように、JavaScript UIのフレームワーク Polymer を発表した。(と言っても 2013年5月なので結構前)
Railsへの実装
果たして、Railsにも Polymer のプラグイン群がある。それぞれ下記のような役割。
- Polymer Rails, 基本モジュール
- Polymer Core, Ajaxなどのモジュール
- Polymer Paper, Formなどの表示部分のモジュール
上記3つのモジュールを Rails で動かすための初期設定をメモ。
とりあえず Rails の初期作成。
[code lang=”bash”]
mkdir myapp
cd myapp
echo "source ‘https://rubygems.org’" > Gemfile
echo "gem ‘rails’, ‘4.1.6’" >> Gemfile
bundle install –path vendor/bundle
bundle exec rails new . –skip-bundle
#Gemfile上書きするか? と聞かれるので "y" と答える
bundle install
[/code]
polymer系のgemインストール
[code lang=”bash”]
echo "gem ‘polymer-rails’" >> Gemfile
echo "gem ‘polymer-core-rails’" >> Gemfile
echo "gem ‘polymer-paper-rails’" >> Gemfile
bundle install
bundle exec rails g polymer:install # Polymer初期設定
[/code]
Polymerを使うページのHelperやLayoutにimportを記述。僕はとりあえずlayouts/application.html.erb
に書いている。
erb:app/views/layouts/application.html.erb
[code lang=”html”]
<head>
#…
<%= html_import_tag ‘application’ %>
#…
</head>
[/code]
後は、使うComponentをassets/components application.html.erb
に追記。
[code lang=”text”]
//= require polymer/polymer
//= require core-ajax/core-ajax
//= require core-input/core-input
//= require paper-button/paper-button
[/code]
これで準備は終了。後は、こんな感じでerbに書く。
[code lang=”erb”]
<body>
<h1>index</h1>
<paper-button label="raised button" raisedButton></paper-button>
</body>
[/code]

関連記事
-
-
iOS端末情報をTreasureDataに送るアプリをswiftで作ってみた。
はじめまして、2年目のOyamanです。 通常業務とは別のことになりますが、Swiftに触れる機会が少しあったので、スマホ関連の記事を書かせていただきます。 はじめに SwiftとTreasureDataのSDKを使って、 iOSの端末情報をTreasureDataへ送るアプリを作ってみます。 今回 …
-
-
Scala番外編「Boxに保存したファイルをBox APIを使ってダウンロードしよう!」
はじめに みなさんこんにちは、プロダクト開発本部の亀梨です。 普段はXmediaOneというメディアプランニング・広告運用管理・トラッキング・マーケティング分析を行う 統合プラットフォームの開発を担当しています。 Box APIを使う背景・目的 DACはメディアレップです メディアレップとは、インタ …
-
-
【未経験からのRuby on Rails – 第1回】楽しく書けるプログラミング言語 “Ruby” とは
こんにちは、はじめまして。新卒1年目のmatsuari(女子)です。 この度、Rubyの勉強を始めることになりまして、 まずはたくさんあるプログラミング言語の中で、なぜ自分がRubyを学ぶのか? しっかりと把握した上で学習に取り組んでいきたいと考え、『Rubyとは何か?』調べました。 超基礎的なこと …
-
-
【未経験からのRuby on Rails – 第4回】Railsアプリケーション開発をしよう! 〜開発の準備編〜
こんにちは。新卒のmatsuariです。 Rubyについてまだまだ知るべきことはたくさんありますが、とにかく早くアプリを作りたい! ということで、今回はアプリ開発の準備に取り掛かっていきます。 Rubyはアプリを作成しながら、同時に学んでいきたいと思います。 Railsアプリケーション開発の準備《 …
-
-
Polymer core-ajax の使い方
Polymerのcore-ajaxの使い方。 まずは、index.html [code language=”html” title=”index.html”] <!doctype html> <html> <head> …
-
-
ディープラーニングで「顔が似ているAKB48のメンバーを教えてくれるbot」を構築
概要 こんにちは、システム開発部の中村です。 今回は、Facebook Messenger APIを利用して、 画像をアップロードすると、似ているAKB48のメンバーを教えてくれるbotを実装しました。 尚、ディープラーニングやTensorFlowそのものの解説というより、 「エンジンとしてディープ …
-
-
【未経験からのRuby on Rails – 第2回】Rubyのプログラムを書いてみる(Mac)
こんにちは。新卒1年目のmatsuariです。 前回はRubyとは何か、簡単にご紹介をしましたが、 今回は実際にRubyファイルを作成して、プログラムを書いてみるところまでご紹介していけたらと思います。 Mac環境のプログラミング初心者向けです。 はじめに、Rubyのプログラムを書くためのファイルを …
-
-
gulp.jsで広告タグの開発環境を整える
SEOの観点から、サイト表示速度の高速化のためJavaScriptファイルから不用な空白や改行、 コメントを除去したりやローカル変数名を短縮するminifyが奨励されていますが、 これはタスクランナーのgulp.jsとプラグインを使って自動化する事が可能です。 ※gulpの基本的な使い方については下 …
-
-
Bootstrapのモーダル機能で多重表示する際に解決しなければならない2つの問題
はじめに みなさんこんにちは、プロダクト開発本部の亀梨です。 普段はXmediaOneというメディアプランニング・広告運用管理・トラッキング・マーケティング分析を行う 統合プラットフォームの開発・保守を担当しています。 エンジニアの皆さん、デザインってどうしてます? わたくしはプライベートでとあるW …
-
-
Scala実践「Either型を使ってimmutable(不変)なコードを書こう!」
はじめに みなさんこんにちは、プロダクト開発本部の亀梨です。 普段はXmediaOneというメディアプランニング・広告運用管理・トラッキング・マーケティング分析を行う 統合プラットフォームの開発を担当しています。 Scalaでイケてるコードを書きたい! 背景 わたくしはDACに入社してからScala …