In Files

Class Index [+]

Quicksearch

Haml::Exec::HamlSass

An abstrac class that encapsulates the code specific to the `haml` and `sass` executables.

Public Class Methods

new(args) click to toggle source

@param args [Array] The command-line arguments

     # File lib/haml/exec.rb, line 175
175:       def initialize(args)
176:         super
177:         @options[:for_engine] = {}
178:       end

Protected Instance Methods

process_result() click to toggle source

Processes the options set by the command-line arguments. In particular, sets `@options[:for_engine][:filename]` to the input filename and requires the appropriate file.

This is meant to be overridden by subclasses so they can run their respective programs.

     # File lib/haml/exec.rb, line 259
259:       def process_result
260:         super
261:         @options[:for_engine][:filename] = @options[:filename] if @options[:filename]
262:         require File.dirname(__FILE__) + "/../#{@name.downcase}"
263:       end
set_opts(opts) click to toggle source

Tells optparse how to parse the arguments available for the `haml` and `sass` executables.

This is meant to be overridden by subclasses so they can add their own options.

@param opts [OptionParser]

     # File lib/haml/exec.rb, line 189
189:       def set_opts(opts)
190:         opts.banner = Usage: #{@name.downcase} [options] [INPUT] [OUTPUT]Description:  Uses the #{@name} engine to parse the specified template  and outputs the result to the specified file.Options:
191: 
192:         opts.on('--rails RAILS_DIR', "Install Haml and Sass from the Gem to a Rails project") do |dir|
193:           original_dir = dir
194: 
195:           env = File.join(dir, "config", "environment.rb")
196:           if File.exists?(File.join(dir, "Gemfile"))
197:             puts("haml --rails isn't needed for Rails 3 or greater.",
198:               "Add 'gem \"haml\"' to your Gemfile instead.", "",
199:               "haml --rails will no longer work in the next version of #{@name}.", "")
200:           elsif File.exists?(env) && File.open(env) {|env| env.grep(/config\.gem/)}
201:             puts("haml --rails isn't needed for Rails 2.1 or greater.",
202:               "Add 'gem \"haml\"' to config/environment.rb instead.", "",
203:               "haml --rails will no longer work in the next version of #{@name}.", "")
204:           end
205: 
206:           dir = File.join(dir, 'vendor', 'plugins')
207: 
208:           unless File.exists?(dir)
209:             puts "Directory #{dir} doesn't exist"
210:             exit 1
211:           end
212: 
213:           dir = File.join(dir, 'haml')
214: 
215:           if File.exists?(dir)
216:             print "Directory #{dir} already exists, overwrite [y/N]? "
217:             exit 2 if gets !~ /y/
218:             FileUtils.rm_rf(dir)
219:           end
220: 
221:           begin
222:             Dir.mkdir(dir)
223:           rescue SystemCallError
224:             puts "Cannot create #{dir}"
225:             exit 1
226:           end
227: 
228:           File.open(File.join(dir, 'init.rb'), 'w') do |file|
229:             file << File.read(File.dirname(__FILE__) + "/../../init.rb")
230:           end
231: 
232:           puts "Haml plugin added to #{original_dir}"
233:           exit
234:         end
235: 
236:         opts.on('-c', '--check', "Just check syntax, don't evaluate.") do
237:           require 'stringio'
238:           @options[:check_syntax] = true
239:           @options[:output] = StringIO.new
240:         end
241: 
242:         super
243:       end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.