Sha256: c9b81eae8d459461bc9bc0d879113421b3b9fe2725f5fed7643b9cc020062017

Contents?: true

Size: 1.76 KB

Versions: 7

Compression:

Stored size: 1.76 KB

Contents

require "pathname"
module Merb
  class Controller
  
    def laszlo(str)
      @lz_resources ||= []
      
      root, template_location = self.class._template_roots.last
      resource_dir = root / send(template_location, "resources")[0...-1]
      Merb.logger.info! "Resource dir: #{resource_dir}"
      
      zip_filename = "#{Laszlo.file_name}.zip"
      FileUtils.mkdir_p(Merb.root / "tmp")
      Zip::ZipFile.open(Merb.root / "tmp" / zip_filename, Zip::ZipFile::CREATE) do |zipfile|
        zipfile.get_output_stream("#{action_name}.lzx") do |f|
          f.puts str
        end
        @lz_resources.each do |resource|
          filepath = resource.split("/")
          dir = filepath[1...-1].join("/").gsub(/^#{Merb.root}/, "")
          filename = filepath[-1]
          zipfile.mkdir(dir) unless zipfile.find_entry(dir) || dir.empty?
          Merb.logger.info! "Looking for #{resource_dir / resource}"
          if File.file?(resource_dir / resource)
            zipfile.add(resource, resource_dir / resource)
          elsif File.file?(root / resource)
            zipfile.add(resource, root / resource)
          end
        end
      end
      c = Curl::Easy.new
            
      c.url = "#{Laszlo.url}/file_upload.jsp"
      c.multipart_form_post = true      

      file = Curl::PostField.file("myFile", Merb.root / "tmp" / zip_filename, zip_filename)
      file.content_type = "application/zip"

      c.http_post(
        file,
        Curl::PostField.content("uid", "#{Laszlo.app_name}__#{controller_name}"))
      
      File.delete(Merb.root / "tmp" / zip_filename)
      
      if c.response_code == 200
        redirect("#{Laszlo.url}/my-apps/#{Laszlo.app_name}__#{controller_name}/#{action_name}.lzx")
      else
        raise NotAcceptable
      end
    end
    
  end
end

Version data entries

7 entries across 7 versions & 2 rubygems

Version Path
merb_laszlo-0.9.5 lib/merb-laszlo/controllers.rb
merb_laszlo-0.5.0 lib/merb-laszlo/controllers.rb
merb_laszlo-0.9.7 lib/merb-laszlo/controllers.rb
merb_laszlo-0.9.6 lib/merb-laszlo/controllers.rb
merb_laszlo-0.9.9 lib/merb-laszlo/controllers.rb
merb_laszlo-0.9.8 lib/merb-laszlo/controllers.rb
thorero-helpers-0.5.0.11 lib/merb-laszlo/controllers.rb