Sha256: 539585522ad48d6b03844717016adb43546b6cb658247b2116a0455447f20e83

Contents?: true

Size: 1.81 KB

Versions: 51

Compression:

Stored size: 1.81 KB

Contents

require 'sassc'
require 'uglifier'

module RbbtRESTHelpers
  def recorded_js_files
    @recorded_js_files ||= []
  end

  def recorded_css_files
    @recorded_css_files ||= []
  end

  def reset_js_css
    @recorded_js_files = []
    @recorded_css_files = []
  end


  def record_js(file)
    recorded_js_files << file
  end

  def record_css(file)
    recorded_css_files << file
  end

  def link_css(file)
    file += '.css' unless file =~ /.css$/
    file << "?_update=reload" if @debug_css
    html_tag('link', nil, :rel => 'stylesheet', :type => 'text/css', :href => file)
  end

  def link_js(file)
    file += '.js' unless file =~ /.js$/
    html_tag('script', " ", :src => file, :type => 'text/javascript')
  end

  def serve_js(compress = true)
    if production? and compress and not @debug_js 
      md5 = Misc.digest(recorded_js_files * ",")
      filename = settings.file_dir["all_js-#{md5}.js"].find

      if not File.exists?(filename)
        Log.debug{ "Regenerating JS Compressed file: #{ filename }" }

        text = recorded_js_files.collect{|file| 
          begin
            path = locate_javascript(file)
          rescue
            path = locate_javascript(file.split("/")[2..-1] * "/")
          end

          "//FILE: #{ File.basename(path) }\n" +  Open.read(path)
        } * "\n"

        FileUtils.mkdir_p File.dirname(filename) unless File.exists? File.dirname(filename)
        Open.write(filename, Uglifier.compile(text))
      end

      res = "<script src='/files/#{File.basename(filename)}' type='text/javascript'></script>"
    else
      res = recorded_js_files.collect{|file|
        link_js(file)
      } * "\n"

    end

    recorded_js_files.clear

    res
  end

  def serve_css
    res = recorded_css_files.collect{|file|
      link_css(file)
    } * "\n"

    recorded_css_files.clear

    res
  end

end
 

Version data entries

51 entries across 51 versions & 1 rubygems

Version Path
rbbt-rest-1.8.157 lib/rbbt/rest/common/resources.rb
rbbt-rest-1.8.156 lib/rbbt/rest/common/resources.rb
rbbt-rest-1.8.155 lib/rbbt/rest/common/resources.rb
rbbt-rest-1.8.154 lib/rbbt/rest/common/resources.rb
rbbt-rest-1.8.152 lib/rbbt/rest/common/resources.rb
rbbt-rest-1.8.151 lib/rbbt/rest/common/resources.rb
rbbt-rest-1.8.150 lib/rbbt/rest/common/resources.rb
rbbt-rest-1.8.148 lib/rbbt/rest/common/resources.rb
rbbt-rest-1.8.147 lib/rbbt/rest/common/resources.rb
rbbt-rest-1.8.146 lib/rbbt/rest/common/resources.rb
rbbt-rest-1.8.145 lib/rbbt/rest/common/resources.rb
rbbt-rest-1.8.144 lib/rbbt/rest/common/resources.rb
rbbt-rest-1.8.143 lib/rbbt/rest/common/resources.rb
rbbt-rest-1.8.142 lib/rbbt/rest/common/resources.rb
rbbt-rest-1.8.140 lib/rbbt/rest/common/resources.rb
rbbt-rest-1.8.139 lib/rbbt/rest/common/resources.rb
rbbt-rest-1.8.138 lib/rbbt/rest/common/resources.rb
rbbt-rest-1.8.137 lib/rbbt/rest/common/resources.rb
rbbt-rest-1.8.136 lib/rbbt/rest/common/resources.rb
rbbt-rest-1.8.135 lib/rbbt/rest/common/resources.rb