Submit Search
Upload
Ruby メタプログラミングによるXMLテンプレートエンジンの実装と評価
•
Download as PPTX, PDF
•
0 likes
•
341 views
R
R S
Follow
Rubyのメタプログラミング技法を用いてXMLを簡単に記述するスクリプトを作成したので、実装方針と既存ライブラリ(ERB, Slim)と比較した考察です。
Read less
Read more
Technology
Report
Share
Report
Share
1 of 24
Download now
Recommended
Web技術勉強会 第25回
Web技術勉強会 第25回
Web技術勉強会 第25回
龍一 田中
Web技術勉強会 20100925
Web技術勉強会 20100925
龍一 田中
2016/4/22 大阪の密かなLaravelコミュニティ「laravel.osaka」での登壇資料です。
20160422 laravel.osaka
20160422 laravel.osaka
シオリ ショウノ
需要があるかわからないし、前回のスライドと共通部分多いけど一応。
ScaLa+Liftとか
ScaLa+Liftとか
youku
基本を中心にまとめた。
Rawler基本
Rawler基本
Takaichi Ito
JavaからClojureへ JavaプログラマこそClojureを始めよう! cf. English version: https://www.slideshare.net/KentOhashi/from-java-to-clojure-english-version
From Java To Clojure
From Java To Clojure
Kent Ohashi
Juliaを使った開発環境を中心に紹介します
Juliaを使った機械学習
Juliaを使った機械学習
Aki Ariga
Elixir MeetUp #2 in Drecom にて発表してきたスライドです。
Elixir v1.3 で入るかもしれない機能
Elixir v1.3 で入るかもしれない機能
hayabusa333
Recommended
Web技術勉強会 第25回
Web技術勉強会 第25回
Web技術勉強会 第25回
龍一 田中
Web技術勉強会 20100925
Web技術勉強会 20100925
龍一 田中
2016/4/22 大阪の密かなLaravelコミュニティ「laravel.osaka」での登壇資料です。
20160422 laravel.osaka
20160422 laravel.osaka
シオリ ショウノ
需要があるかわからないし、前回のスライドと共通部分多いけど一応。
ScaLa+Liftとか
ScaLa+Liftとか
youku
基本を中心にまとめた。
Rawler基本
Rawler基本
Takaichi Ito
JavaからClojureへ JavaプログラマこそClojureを始めよう! cf. English version: https://www.slideshare.net/KentOhashi/from-java-to-clojure-english-version
From Java To Clojure
From Java To Clojure
Kent Ohashi
Juliaを使った開発環境を中心に紹介します
Juliaを使った機械学習
Juliaを使った機械学習
Aki Ariga
Elixir MeetUp #2 in Drecom にて発表してきたスライドです。
Elixir v1.3 で入るかもしれない機能
Elixir v1.3 で入るかもしれない機能
hayabusa333
Elixirを本番環境で使ってみたという事例紹介
Shibuya.ex #1 Elixirを本番環境で使ってみたという事例紹介
Shibuya.ex #1 Elixirを本番環境で使ってみたという事例紹介
Tsunenori Oohara
Julia入門
Julia入門
Nobukuni Kino
teratailで質問するときのtips Python入門者の集い #4 LT
Pynyumon#4lt
Pynyumon#4lt
drillan
2015/06/02に開催されたElixirの勉強会 Shinjuku.ex #10 の資料。 * イベント情報: http://shinjukuex.connpass.com/event/15229/ * PowerPointのファイルダウンロード: http://bit.ly/perfect_elixir_information_gathering 資料のライセンスはクリエイティブ・コモンズで、自己紹介ページのみBY・ND、それ以外は全てCCゼロ(いかなる権利も保有しない)です。必要に応じて自己紹介ページを取り除き、あとはご自由にご利用下さい。 改版を行った場合は、 http://twitter.com/keithseahus より、 #shinjukuex タグ付きでお知らせします。
パーフェクト"Elixir情報収集"
パーフェクト"Elixir情報収集"
Keisuke Takahashi
プログラミング言語 Julia の簡単な紹介です
プログラミング言語 Julia の紹介
プログラミング言語 Julia の紹介
Kentaro Iizuka
LT @ Japan.R '15 https://atnd.org/events/71243
Julia最新情報 2015
Julia最新情報 2015
Kenta Sato
SeekR: https://seekr.jp/
SeekR Annual Search Trends Report 2015
SeekR Annual Search Trends Report 2015
Takekatsu Hiramura
ElixirMeetup#2
Elixirと他言語の比較的紹介ver.2
Elixirと他言語の比較的紹介ver.2
Tsunenori Oohara
Elixirの紹介
地獄のElixir(目黒スタートアップ勉強会)
地獄のElixir(目黒スタートアップ勉強会)
Tsunenori Oohara
Public Review版を読み込んだときの勉強メモ。内容は今後改版される可能性がある。
Java Batch 仕様 (Public Review時点)
Java Batch 仕様 (Public Review時点)
Norito Agetsuma
JJUG CCC 2016 Spring CD-7 のセッションスライドです。
マイクロフレームワークEnkan(とKotowari)ではじめるREPL駆動開発
マイクロフレームワークEnkan(とKotowari)ではじめるREPL駆動開発
Yoshitaka Kawashima
skill transfer.
スキトラ Spring + mybatis
スキトラ Spring + mybatis
小川 昌吾
Java Day Tokyo 2016 のセッション3-Eの資料です。 Java8, Java9の新機能がシステムの設計にどういう影響があるのかを考えてみました。
Javaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのか
Javaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのか
Yoshitaka Kawashima
https://d-cube.connpass.com/
Ansibleで始めるインフラ構築自動化
Ansibleで始めるインフラ構築自動化
dcubeio
I gave a lightning talk at https://nishi-shinju-clojure.connpass.com/event/52434/ pertaining to Shift_JIS encoding in Clojure libraries out there.
Clojureでガラケーサイトを作る際の細かい話
Clojureでガラケーサイトを作る際の細かい話
Ikuru Kanuma
GitLab Meetup Tokyo #1 https://gitlab-jp.connpass.com/event/49755/
GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」
GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」
Taisuke Inoue
Scala on Hadoop
Scala on Hadoop
Shinji Tanaka
Ruby on Rails Tutorial
Ruby on Rails Tutorial
Ruby on Rails Tutorial
Ken Iiboshi
Html5 Web Applications
Html5 Web Applications
totty jp
トピックス:カプセル化, MVC モデル, MVC モデルの応用, オブジェクトのマッピング Java の基本(スライド資料とプログラム例)(全17回) https://www.kkaneko.jp/pro/pi/index.html 金子邦彦研究室ホームページ https://www.kkaneko.jp/index.html
pi-15. カプセル化, MVCモデル, オブジェクトのマッピング
pi-15. カプセル化, MVCモデル, オブジェクトのマッピング
kunihikokaneko1
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
Y Watanabe
Elasticsearchプラグインの簡単な作り方を紹介します。また、Elasticsearchを便利に利用するためのプラグインも紹介します。
Elasticsearchプラグインの作り方
Elasticsearchプラグインの作り方
Shinsuke Sugaya
More Related Content
Viewers also liked
Elixirを本番環境で使ってみたという事例紹介
Shibuya.ex #1 Elixirを本番環境で使ってみたという事例紹介
Shibuya.ex #1 Elixirを本番環境で使ってみたという事例紹介
Tsunenori Oohara
Julia入門
Julia入門
Nobukuni Kino
teratailで質問するときのtips Python入門者の集い #4 LT
Pynyumon#4lt
Pynyumon#4lt
drillan
2015/06/02に開催されたElixirの勉強会 Shinjuku.ex #10 の資料。 * イベント情報: http://shinjukuex.connpass.com/event/15229/ * PowerPointのファイルダウンロード: http://bit.ly/perfect_elixir_information_gathering 資料のライセンスはクリエイティブ・コモンズで、自己紹介ページのみBY・ND、それ以外は全てCCゼロ(いかなる権利も保有しない)です。必要に応じて自己紹介ページを取り除き、あとはご自由にご利用下さい。 改版を行った場合は、 http://twitter.com/keithseahus より、 #shinjukuex タグ付きでお知らせします。
パーフェクト"Elixir情報収集"
パーフェクト"Elixir情報収集"
Keisuke Takahashi
プログラミング言語 Julia の簡単な紹介です
プログラミング言語 Julia の紹介
プログラミング言語 Julia の紹介
Kentaro Iizuka
LT @ Japan.R '15 https://atnd.org/events/71243
Julia最新情報 2015
Julia最新情報 2015
Kenta Sato
SeekR: https://seekr.jp/
SeekR Annual Search Trends Report 2015
SeekR Annual Search Trends Report 2015
Takekatsu Hiramura
ElixirMeetup#2
Elixirと他言語の比較的紹介ver.2
Elixirと他言語の比較的紹介ver.2
Tsunenori Oohara
Elixirの紹介
地獄のElixir(目黒スタートアップ勉強会)
地獄のElixir(目黒スタートアップ勉強会)
Tsunenori Oohara
Public Review版を読み込んだときの勉強メモ。内容は今後改版される可能性がある。
Java Batch 仕様 (Public Review時点)
Java Batch 仕様 (Public Review時点)
Norito Agetsuma
JJUG CCC 2016 Spring CD-7 のセッションスライドです。
マイクロフレームワークEnkan(とKotowari)ではじめるREPL駆動開発
マイクロフレームワークEnkan(とKotowari)ではじめるREPL駆動開発
Yoshitaka Kawashima
skill transfer.
スキトラ Spring + mybatis
スキトラ Spring + mybatis
小川 昌吾
Java Day Tokyo 2016 のセッション3-Eの資料です。 Java8, Java9の新機能がシステムの設計にどういう影響があるのかを考えてみました。
Javaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのか
Javaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのか
Yoshitaka Kawashima
https://d-cube.connpass.com/
Ansibleで始めるインフラ構築自動化
Ansibleで始めるインフラ構築自動化
dcubeio
I gave a lightning talk at https://nishi-shinju-clojure.connpass.com/event/52434/ pertaining to Shift_JIS encoding in Clojure libraries out there.
Clojureでガラケーサイトを作る際の細かい話
Clojureでガラケーサイトを作る際の細かい話
Ikuru Kanuma
GitLab Meetup Tokyo #1 https://gitlab-jp.connpass.com/event/49755/
GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」
GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」
Taisuke Inoue
Viewers also liked
(16)
Shibuya.ex #1 Elixirを本番環境で使ってみたという事例紹介
Shibuya.ex #1 Elixirを本番環境で使ってみたという事例紹介
Julia入門
Julia入門
Pynyumon#4lt
Pynyumon#4lt
パーフェクト"Elixir情報収集"
パーフェクト"Elixir情報収集"
プログラミング言語 Julia の紹介
プログラミング言語 Julia の紹介
Julia最新情報 2015
Julia最新情報 2015
SeekR Annual Search Trends Report 2015
SeekR Annual Search Trends Report 2015
Elixirと他言語の比較的紹介ver.2
Elixirと他言語の比較的紹介ver.2
地獄のElixir(目黒スタートアップ勉強会)
地獄のElixir(目黒スタートアップ勉強会)
Java Batch 仕様 (Public Review時点)
Java Batch 仕様 (Public Review時点)
マイクロフレームワークEnkan(とKotowari)ではじめるREPL駆動開発
マイクロフレームワークEnkan(とKotowari)ではじめるREPL駆動開発
スキトラ Spring + mybatis
スキトラ Spring + mybatis
Javaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのか
Javaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのか
Ansibleで始めるインフラ構築自動化
Ansibleで始めるインフラ構築自動化
Clojureでガラケーサイトを作る際の細かい話
Clojureでガラケーサイトを作る際の細かい話
GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」
GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」
Similar to Ruby メタプログラミングによるXMLテンプレートエンジンの実装と評価
Scala on Hadoop
Scala on Hadoop
Shinji Tanaka
Ruby on Rails Tutorial
Ruby on Rails Tutorial
Ruby on Rails Tutorial
Ken Iiboshi
Html5 Web Applications
Html5 Web Applications
totty jp
トピックス:カプセル化, MVC モデル, MVC モデルの応用, オブジェクトのマッピング Java の基本(スライド資料とプログラム例)(全17回) https://www.kkaneko.jp/pro/pi/index.html 金子邦彦研究室ホームページ https://www.kkaneko.jp/index.html
pi-15. カプセル化, MVCモデル, オブジェクトのマッピング
pi-15. カプセル化, MVCモデル, オブジェクトのマッピング
kunihikokaneko1
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
Y Watanabe
Elasticsearchプラグインの簡単な作り方を紹介します。また、Elasticsearchを便利に利用するためのプラグインも紹介します。
Elasticsearchプラグインの作り方
Elasticsearchプラグインの作り方
Shinsuke Sugaya
20110820 metaprogramming
20110820 metaprogramming
Masanori Kado
エンタープライズ分野での実践AngularJS
エンタープライズ分野での実践AngularJS
Ayumi Goto
HTML5など社内勉強会 Vol.1 - HTML, CSS, HTML5
HTML5など社内勉強会 Vol.1 - HTML, CSS, HTML5
George Harada
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
linzhixing
Word press 3.5RC2 - パーフェクト functions.php -
Word press 3.5RC2 - パーフェクト functions.php -
BREN
PHP 5.3用フレームワーク「FuelPHP」の紹介プレゼン資料
10分でわかるFuelPHP @ 2011/12
10分でわかるFuelPHP @ 2011/12
kenjis
Grails Code Reading 2008/05/22
Dsl&Builder
Dsl&Builder
Uehara Junji
Customization of DBIC::Schema::Loader
Customization of DBIC::Schema::Loader
Toru Yamaguchi
I try to Ruby on Rails tutorial in Japanese. This is Chap5 to 7.
Ruby on Rails Tutorial Chapter5-7
Ruby on Rails Tutorial Chapter5-7
Sea Mountain
2010/6/13 Java Cloud Meeting Tokyo 2010 x Seasar Conference 2010
Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略
takezoe
リッチなWebアプリケーションに対するニーズの増加に伴い、JavaScriptで十分なパフォーマンスを担保することが難しくなってきています。とりわけ、スマートフォンのような非力なデバイスでは一層シビアなチューニングが求められるでしょう。本セッションでは、もっともポピュラーなJavaScriptライブラリである「jQuery」を中心とした、いくつかのパフォーマンス解決のためのヒントについてご紹介させていただきます。 http://frontrend.github.com/events/04/#pocotan001
jQuery Performance Tips – jQueryにおける高速化 -
jQuery Performance Tips – jQueryにおける高速化 -
Hayato Mizuno
静的HTMLに動的なコンテンツを入れるためのプラグインoktopartialの資料。ver. 0.2
Oktopartial Introduction
Oktopartial Introduction
Takeshi AKIMA
This is talk about Starting with building web application with Golang
Go言語入門者が Webアプリケーション を作ってみた話 #devfest #gdgkyoto
Go言語入門者が Webアプリケーション を作ってみた話 #devfest #gdgkyoto
Shoot Morii
「Html sql」で図書館hpにアクセスしてみよう
「Html sql」で図書館hpにアクセスしてみよう
Kentaro Matsui
Similar to Ruby メタプログラミングによるXMLテンプレートエンジンの実装と評価
(20)
Scala on Hadoop
Scala on Hadoop
Ruby on Rails Tutorial
Ruby on Rails Tutorial
Html5 Web Applications
Html5 Web Applications
pi-15. カプセル化, MVCモデル, オブジェクトのマッピング
pi-15. カプセル化, MVCモデル, オブジェクトのマッピング
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
Elasticsearchプラグインの作り方
Elasticsearchプラグインの作り方
20110820 metaprogramming
20110820 metaprogramming
エンタープライズ分野での実践AngularJS
エンタープライズ分野での実践AngularJS
HTML5など社内勉強会 Vol.1 - HTML, CSS, HTML5
HTML5など社内勉強会 Vol.1 - HTML, CSS, HTML5
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Word press 3.5RC2 - パーフェクト functions.php -
Word press 3.5RC2 - パーフェクト functions.php -
10分でわかるFuelPHP @ 2011/12
10分でわかるFuelPHP @ 2011/12
Dsl&Builder
Dsl&Builder
Customization of DBIC::Schema::Loader
Customization of DBIC::Schema::Loader
Ruby on Rails Tutorial Chapter5-7
Ruby on Rails Tutorial Chapter5-7
Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略
jQuery Performance Tips – jQueryにおける高速化 -
jQuery Performance Tips – jQueryにおける高速化 -
Oktopartial Introduction
Oktopartial Introduction
Go言語入門者が Webアプリケーション を作ってみた話 #devfest #gdgkyoto
Go言語入門者が Webアプリケーション を作ってみた話 #devfest #gdgkyoto
「Html sql」で図書館hpにアクセスしてみよう
「Html sql」で図書館hpにアクセスしてみよう
Recently uploaded
2024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
LoRaWANスマート距離検出センサー DS20Lカタログ
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
Syed Talal Wasim, Muzammal Naseer, Salman Khan, Ming-Hsuan Yang, Fahad Shahbaz Khan , "Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Grounding" arXiv2024 https://arxiv.org/abs/2401.00901v2
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Toru Tamaki
2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Key topics covered: - Understanding Ballerina's role in integrations: features and advantages - Designing and implementing REST APIs for integration - Designing and implementing GraphQL services with Ballerina - Monitoring and observing applications - Introduction to data integration
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
WSO2
Jue Wang, Wentao Zhu, Pichao Wang, Xiang Yu, Linda Liu, Mohamed Omar, Raffay Hamid, " Selective Structured State-Spaces for Long-Form Video Understanding" CVPR2023 https://openaccess.thecvf.com/content/CVPR2023/html/Wang_Selective_Structured_State-Spaces_for_Long-Form_Video_Understanding_CVPR_2023_paper.html
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Toru Tamaki
This is an introduction to MAPPO's paper.
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
atsushi061452
2024年5月8日 Power Platform 勉強会 #1 LT資料
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
sn679259
2024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
Recently uploaded
(10)
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
Ruby メタプログラミングによるXMLテンプレートエンジンの実装と評価
1.
Rubyメタプログラミングによる XMLテンプレートエンジンの 実装と評価 Ryota Suzuki
2.
自己紹介 Ruby on Rails 酒 温泉 音楽
3.
4.
動機
5.
サンプルコード doctype html do head do meta
"http-equiv" => "Content-type", content: %w(text/html; charset=utf-8) title do "XMLRサンプルファイル" end end body do div class: %w(wrapper content-main) do "XMLRへようこそ" end end end get
6.
実装方針
7.
Module#method_missing def method_missing(method_name, *args,
&block) if block_given? content_tag(method_name, *args, block) else empty_tag(method_name, *args) end end
8.
未定義のメソッドをタグへ def content_tag(name, *args,
block) add_content "<#{name}#{args_to_param(*args)}>n" @@nest_level += 1 add_content "#{block.call}n" @@nest_level -= 1 add_content "</#{name}>n" "" end
9.
% 記法 def args_to_param(*args)
# 中略 " " + args[0].inject("") do |base, kv| %(#{base} #{kv[0]}="#{value_to_str(kv[1])}") end[1..-1] end
10.
二重評価問題 def add_content(str) @@content +=
str end # => 戻り値: str 自体 + @@content に格納 # ここで1ヶ月ほど開発がストップ…
11.
Object#tap def add_content(str) str.tap do
|text| @@content += indent + text end end
12.
Module.included def self.included(base) @@content =
"" @@nest_level = 0 end
13.
先行事例との比較
14.
実験 変数評価 場合分け(case...when) ループ(each)
15.
比較対象 ERB Slim
16.
HTML出力用コード - XMLR (当)
ERB Slim 行数 25 21 14 文字数 335 340 210 ※require, include, get(後述), nil(後述) が必要なため行数が増大したと考察
17.
実装行数 - XMLR (当)
Slim 行数 74 2101 ※ $ wc -l `find lib/ -type f` の実行結果
18.
シンタックス XMLR (当) ERB
Slim Ruby 専用 専用
19.
課題と展望
20.
実装上の難点 get メソッド クラス変数の評価、リセット each →
nil が必須 each した変数が組み込まれてしまう エラーが出た時恐ろしく分かりにくい
21.
今後の課題 Kernelメソッド、予約語との競合 (`p`など) Rubyメソッド名でない記号(`-` など) 専用のメソッドを定義可能 class="",
id="" が冗長 (vs. Slim) 専用構文で対応可能
22.
結論 Slimすごい Builder gem との比較は時間が
23.
参考 Twitter: pocke https://twitter.com/p_ck_/status/807392401908068352 Slim template https://github.com/slim-template/slim http://slim-lang.com Builder https://github.com/jimweirich/builder メタプログラミング
Ruby https://www.oreilly.co.jp/books/9784873117430/
24.
Thanks for listening.
Download now