class Raptest::Asset

Attributes

pathname[RW]

Public Class Methods

new(pathname) click to toggle source
# File lib/raptest/asset.rb, line 12
def initialize(pathname)
  @pathname = pathname
end

Public Instance Methods

coffee?() click to toggle source
# File lib/raptest/asset.rb, line 24
def coffee?
  pathname =~ /\.coffee\b/
end
css?() click to toggle source
# File lib/raptest/asset.rb, line 20
def css?
  pathname =~ /\.css\b/
end
erb?() click to toggle source
# File lib/raptest/asset.rb, line 36
def erb?
  coffee? || pathname =~ /\.erb\b/     
end
js?() click to toggle source
# File lib/raptest/asset.rb, line 16
def js?
  pathname =~ /\.js\b/
end
result() click to toggle source
# File lib/raptest/asset.rb, line 44
def result
  @result
end
sass?() click to toggle source
# File lib/raptest/asset.rb, line 32
def sass?
  pathname =~ /\.sass\b/
end
scss?() click to toggle source
# File lib/raptest/asset.rb, line 28
def scss?
  pathname =~ /\.scss\b/ 
end
source() click to toggle source
# File lib/raptest/asset.rb, line 40
def source
  @source ||= File.read(pathname)
end
test!() click to toggle source
# File lib/raptest/asset.rb, line 48
def test!
  reset!
  begin
    erb! if erb?

    if js?
      coffee! if coffee?
      uglify!
    elsif css?
      minify!
    end
  rescue Exception => e
    raise ::Raptest::TestError.new(@component, pathname, e.message)      
  end

end

Protected Instance Methods

coffee!() click to toggle source
# File lib/raptest/asset.rb, line 73
def coffee!
  @component = "Coffeescript"
  @result    = CoffeeScript.compile( @result )
end
erb!() click to toggle source
# File lib/raptest/asset.rb, line 67
def erb!
  @component = "Erb"
  view = ActionView::Base.new(ActionController::Base.view_paths, {})   
  @result    = view.render( :inline => @result )
end
minify!() click to toggle source
# File lib/raptest/asset.rb, line 83
def minify!
  @component = "Sass Compiler/Minifier"
  @result    = ::Sass::Engine.new(@result, {
          :syntax => :scss,
          :cache => false,
          :read_cache => false,
          :style => :compressed
        }).render
end
uglify!() click to toggle source
# File lib/raptest/asset.rb, line 78
def uglify!
  @component = "UglifyJs"
  @result    = Uglifier.compile( @result )
end

Private Instance Methods

reset!() click to toggle source
# File lib/raptest/asset.rb, line 95
def reset!
  @component = nil  
  @result    = source
end