Class: Generator::Context
- Inherits:
-
Object
- Object
- Generator::Context
- Includes:
- ActionView::Helpers, ActivesupportOverride
- Defined in:
- lib/generator/haml_generator.rb
Overview
Calls to “render” can take a context object that will be accessible from the templates.
Instance Attribute Summary (collapse)
-
- (Object) example_boolean
readonly
Any properties of this object are available in the Haml templates.
Instance Method Summary (collapse)
-
- (Context) initialize(example_boolean, scope, options, input_folder, output_folder)
constructor
A new instance of Context.
-
- (Object) render_partial(file_name)
This function is no different from the “copyright_year” function above.
Methods included from ActivesupportOverride
#external_path?, #javascript_include_tag, #link_tag, #meta_tag, #meta_tag_http, #path_to_css, #path_to_image, #path_to_js, #stylesheet_link_tag, #url_for
Constructor Details
- (Context) initialize(example_boolean, scope, options, input_folder, output_folder)
Returns a new instance of Context
66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
# File 'lib/generator/haml_generator.rb', line 66 def initialize(example_boolean, scope, , input_folder, output_folder) @example_boolean = example_boolean @scope = scope @options = @input_folder = input_folder @output_folder = output_folder Dir.glob("./#{input_folder}/helper/*.rb").each do |path| require path file_without_ext = path.split('/')[-1].split('.').first module_name = file_without_ext.classify STDERR.puts 'loading project helper -> '+module_name self.class.send(:include, module_name.constantize) end end |
Instance Attribute Details
- (Object) example_boolean (readonly)
Any properties of this object are available in the Haml templates.
54 55 56 |
# File 'lib/generator/haml_generator.rb', line 54 def example_boolean @example_boolean end |
Instance Method Details
- (Object) render_partial(file_name)
This function is no different from the “copyright_year” function above. It just uses some conventions to render another template file when it's called.
83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 |
# File 'lib/generator/haml_generator.rb', line 83 def render_partial(file_name) # The "default" version of the partial. file_to_render = "#{@input_folder}/partials/#{file_name.to_s}.haml" if @scope # Look for a partial prefixed with the current "scope" (which is just the name of the # primary template being rendered). scope_file = "#{@input_folder}/partials/#{@scope.to_s}_#{file_name.to_s}.haml" # Use it if it's there. file_to_render = scope_file if File.exists? scope_file end # If we found a matching partial (either the scoped one or the default), render it now. if File.exists? file_to_render partial = Haml::Engine.new(File.read(file_to_render), @options) partial.render self else nil end end |