сделать отдельный файл посредником - PullRequest
1 голос
/ 10 февраля 2012

Я пишу помощник, и мне нужно получить обработанный файл как String.

Я вижу, что нужный мне метод существует в библиотеке посредника: http://rubydoc.info/github/middleman/middleman/Middleman/CoreExtensions/Rendering/InstanceMethods#render_individual_file-instance_method

Как мне вызвать эту функцию из моего вспомогательного класса?

Я пытался:

require "middleman-core/lib/middleman-core/core_extensions/rendering.rb"

...

puts Middleman::CoreExtensions::Rendering::InstanceMethods.render_individual_file(filepath)

Но, похоже, файл не найден?

Ответы [ 2 ]

0 голосов
/ 31 марта 2015

Если я что-то упустил, метод Мидлмана кажется слишком сложным решением.Для одного из моих сайтов я хотел загрузить целые текстовые файлы в свои шаблоны, поэтому я написал этот помощник:

# Shortcut for loading raw text files. Obviously assumes that given file is in a valid format.
# @return [String] File contents
def load_textfile(filename)
  File.read filename.to_s
end

Также , следует уточнить, если вынамерены использовать это в шаблоне или в коде Ruby.Мне не понятно, исходя из вашего вопроса.

Вот пример того, как можно использовать вышеупомянутый помощник:

  1. В настоящее время известно, что Middleman находится в процессепереход на версию 4, и соглашения для загрузки помощников изменится. Самый простой способ определить помощника находится в блоке helper в вашем файле config.rb следующим образом:

    helpers do
      # Define helper functions here to make them available in templates
    end
    
  2. Я использую Slim для шаблонов.Это действительно лучшее.В Slim вы бы применили помощника следующим образом:

    = load_textfile 'path'
    p You can embed helper output in your page with interpolation, too: #{load_textfile 'path'}
    
0 голосов
/ 14 февраля 2012

Я не уверен, что бета-версия 3.0 вполне готова для прайм-тайма.

Тем не менее, похоже, что частичный метод - это то, что вы ищете.

...