Haml: ์•ก์ฒด ์ž‘์—…

์— ๋งŒ๋“  2010๋…„ 06์›” 04์ผ  ยท  8์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: haml/haml

Liquid๋ฅผ ๋ Œ๋”๋งํ•˜๋ ค๊ณ  ํ•  ๋•Œ๋งˆ๋‹ค ๊ฐœ์ฒด/๋ชจ๋ธ์—์„œ is_haml? ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. Liquid์™€ HAML์„ ๋‚˜๋ž€ํžˆ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ์ผ์ข…์˜ ํ˜ธํ™˜์„ฑ ์„ค์ •์ด ์žˆ์Šต๋‹ˆ๊นŒ?

๊ฐ์‚ฌ ํ•ด์š”!

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

@dewski - ์‚ฌ์šฉ์ž ์ง€์ • ์•ก์ฒด ํ•„ํ„ฐ ๋‚ด์—์„œ ActionView ๋„์šฐ๋ฏธ๋ฅผ ํ™œ์šฉํ•˜๋ ค๊ณ  ํ•  ๋•Œ ์ด์— ๋Œ€ํ•œ ๋ช‡ ๊ฐ€์ง€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ์‹œ:

module LiquidFilters

  include ActionView::Helpers::TagHelper
  include ActionView::Helpers::UrlHelper

  def mailto(address, name = nil)
    mail_to(address, name, :encode => "javascript")
  end

end

Liquid::Template.register_filter(LiquidFilters)

๊ทธ๋Ÿฐ ๋‹ค์Œ ๋‹ค์Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค ...

Liquid error: undefined method `is_haml?' for #

๊ฐ„๋‹จํ•œ ์ˆ˜์ •์€ ๋ชจ๋“ˆ์— Haml::Helpers๋„ ํฌํ•จํ•˜๋Š” ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค...

include Haml::Helpers

์ด๊ฒƒ์ด ๊ท€ํ•˜์˜ ์ƒํ™ฉ์— ์ „ํ˜€ ์ ์šฉ๋˜๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์นœ์• ํ•˜๋Š”,
๋ฐ์ด๋น„๋“œ ๋ณผ๋“œ์œˆ

๋ชจ๋“  8 ๋Œ“๊ธ€

Haml์€ ํ˜„์žฌ ํ…œํ”Œ๋ฆฟ ์ปจํ…์ŠคํŠธ๊ฐ€ Haml์ธ์ง€ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด Object#is_haml? ๋ฉ”์„œ๋“œ๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. Liquid์˜ ์ปจํ…์ŠคํŠธ ๊ฐ์ฒด๊ฐ€ ์ด๊ฒƒ์„ ์–ด๋”˜๊ฐ€์— ์ •์˜ ํ•ด์ œํ•˜๊ณ  ์žˆ์„ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค... ๋ฌธ์ œ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ์ตœ์†Œํ•œ์˜ Rails ์•ฑ์˜ tarball์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

@dewski - ์‚ฌ์šฉ์ž ์ง€์ • ์•ก์ฒด ํ•„ํ„ฐ ๋‚ด์—์„œ ActionView ๋„์šฐ๋ฏธ๋ฅผ ํ™œ์šฉํ•˜๋ ค๊ณ  ํ•  ๋•Œ ์ด์— ๋Œ€ํ•œ ๋ช‡ ๊ฐ€์ง€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ์‹œ:

module LiquidFilters

  include ActionView::Helpers::TagHelper
  include ActionView::Helpers::UrlHelper

  def mailto(address, name = nil)
    mail_to(address, name, :encode => "javascript")
  end

end

Liquid::Template.register_filter(LiquidFilters)

๊ทธ๋Ÿฐ ๋‹ค์Œ ๋‹ค์Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค ...

Liquid error: undefined method `is_haml?' for #

๊ฐ„๋‹จํ•œ ์ˆ˜์ •์€ ๋ชจ๋“ˆ์— Haml::Helpers๋„ ํฌํ•จํ•˜๋Š” ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค...

include Haml::Helpers

์ด๊ฒƒ์ด ๊ท€ํ•˜์˜ ์ƒํ™ฉ์— ์ „ํ˜€ ์ ์šฉ๋˜๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์นœ์• ํ•˜๋Š”,
๋ฐ์ด๋น„๋“œ ๋ณผ๋“œ์œˆ

์ด๊ฒƒ์ด ๋‚ด๊ฐ€ ํ•„์š”ํ•œ ๊ฒƒ์„ ์ •ํ™•ํžˆ ํ•  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์„ ํ…Œ์ŠคํŠธํ•˜๊ณ  ๋‹น์‹ ์—๊ฒŒ ๋‹ค์‹œ ์—ฐ๋ฝํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฐ์‚ฌ ํ•ด์š”!

David ๋•๋ถ„์— ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” Nathan์ด ์ด๊ฒƒ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ๋ฅผ ์›ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด๊ธฐ ์œ„ํ•ด ์ด๊ฒƒ์„ ์—ด์–ด ๋‘ก๋‹ˆ๋‹ค. Haml์€ Liquid๊ฐ€ ์ •์˜๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ? ๊ทธ๋ ‡๋‹ค๋ฉด ํฌํ•จํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

Liquid์— ๋Œ€ํ•œ ํŠน์ • ์ฒ˜๋ฆฌ๋Š” ์—ฌ๊ธฐ์—์„œ ์˜ฌ๋ฐ”๋ฅธ ๋ฐฉ๋ฒ•์ด ์•„๋‹™๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์—ฌ์ „ํžˆ ๊ทผ๋ณธ์ ์ธ ๋ฌธ์ œ๋ฅผ ํŒŒ์•…ํ•˜๊ณ  ์ˆ˜์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€๋Šฅํ•˜๋‹ค๋ฉด ์—ฌ์ „ํžˆ Rails ์•ฑ ์žฌํ˜„์„ ์›ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ์€ ๋ฌธ์ œ๋ฅผ ์ƒ์„ฑํ•ด์•ผ ํ•˜๋Š” ๋ฒ ์–ด๋ณธ ์•ฑ์ž…๋‹ˆ๋‹ค...

git clone git://github.com/baldwindavid/liquidhaml.git
cd liquidhaml
rake db:setup
script/server

์œ ์ผํ•œ ๊ฒŒ์‹œ๋ฌผ์˜ "ํ‘œ์‹œ" ๋ณด๊ธฐ์—๋Š” ์˜ค๋ฅ˜๊ฐ€ ํ‘œ์‹œ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ ํ•œ๋ฒˆ ๋ณด์„ธ์š”...

config/initializers/liquid.rb

include Haml::Helpers ์ฃผ์„ ์ฒ˜๋ฆฌ๋ฅผ ์ œ๊ฑฐํ•˜๋ฉด ํ•„ํ„ฐ๊ฐ€ ์˜ˆ์ƒ๋Œ€๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์ด ์˜ˆ์ œ๋Š” Rails 2.3.5์™€ ๋‹ค์Œ gem์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค...

config.gem "haml", :version => "3.0.4"
config.gem "liquid", :version => "2.0.0"

์ถ”๊ฐ€๋กœ ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์•Œ๋ ค์ฃผ์‹ญ์‹œ์˜ค. ๊ฐ์‚ฌ ํ•ด์š”.

์นœ์• ํ•˜๋Š”,
๋ฐ์ด๋น„๋“œ ๋ณผ๋“œ์œˆ

์ด ๋ฌธ์ œ๋ฅผ ์˜ค๋ž˜๋œ ๊ฒƒ์œผ๋กœ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค. ์—ฌ์ „ํžˆ ์˜ํ–ฅ์„ ๋ฐ›๋Š” ์‚ฌ๋žŒ์ด ์žˆ์œผ๋ฉด ์•Œ๋ ค์ฃผ์‹œ๋ฉด ๋‹ค์‹œ ์—ด๊ฒ ์Šต๋‹ˆ๋‹ค.

@baldwindavid ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. include Haml::Helpers๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋ฉ๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰