rails-zero 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/clients/rails_zero/packages_client.rb +8 -5
- data/app/controllers/rails_zero/packages_controller.rb +5 -6
- data/app/deployers/rails_zero/git_deployer.rb +57 -0
- data/app/jobs/rails_zero/clean_site_job.rb +1 -1
- data/app/jobs/rails_zero/generate_site_job.rb +6 -1
- data/lib/rails_zero.rb +10 -5
- data/lib/rails_zero/config.rb +78 -0
- data/lib/rails_zero/drivers/poltergeist.rb +7 -0
- data/lib/rails_zero/version.rb +1 -1
- data/lib/tasks/rails_zero.rake +13 -0
- metadata +20 -4
- data/lib/rails_zero/pages_config.rb +0 -15
- data/lib/tasks/rails_zero_tasks.rake +0 -4
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: cfd9428cef4a1babfcd55d9a389ecff29e8ce566
         | 
| 4 | 
            +
              data.tar.gz: 46c0834dfaa93e4ac00ca973c2d45673f3076459
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 6b2237476ecaaf2149332cccbb8db8e95d3f6024d3422ffb5ea2fbf86e981fd2a03b3379ccc0412e1594f9eed6d5bd75288dc4e555c518dc939ca9229eafa98e
         | 
| 7 | 
            +
              data.tar.gz: 28bf820a80c5f4e2902525e488c065aa01187892b0fef8115089ede71873e8e40499537cf557079f3f45adbe662fe63806898c4aa80b933c6ee560550b77dfb2
         | 
| @@ -2,11 +2,14 @@ require_dependency "rails_zero/base_client" | |
| 2 2 |  | 
| 3 3 | 
             
            module RailsZero
         | 
| 4 4 | 
             
              class PackagesClient < BaseClient
         | 
| 5 | 
            -
                def  | 
| 6 | 
            -
                   | 
| 7 | 
            -
             | 
| 8 | 
            -
             | 
| 9 | 
            -
             | 
| 5 | 
            +
                def download_destination
         | 
| 6 | 
            +
                  Rails.root.join('tmp', 'rails_zero', 'downloads', 'public.tar').to_s
         | 
| 7 | 
            +
                end
         | 
| 8 | 
            +
             | 
| 9 | 
            +
                def get
         | 
| 10 | 
            +
                  remote_url = File.join(RailsZero.config.backend.url, packages_path)
         | 
| 11 | 
            +
                  FileUtils.mkdir_p(File.dirname(download_destination))
         | 
| 12 | 
            +
                  command = "curl #{remote_url} > #{download_destination}"
         | 
| 10 13 | 
             
                  stdout_str, stderr_str, status = Open3.capture3(command)
         | 
| 11 14 | 
             
                end
         | 
| 12 15 | 
             
              end
         | 
| @@ -4,8 +4,11 @@ module RailsZero | |
| 4 4 | 
             
              class PackagesController < ApplicationController
         | 
| 5 5 | 
             
                def index
         | 
| 6 6 | 
             
                  FileUtils.mkdir_p(File.dirname(archive_path))
         | 
| 7 | 
            -
                   | 
| 8 | 
            -
             | 
| 7 | 
            +
                  Dir.chdir(Rails.root) do
         | 
| 8 | 
            +
                    command = "tar -cf '#{archive_path}' 'public/'"
         | 
| 9 | 
            +
                    stdout_str, stderr_str, status = Open3.capture3(command)
         | 
| 10 | 
            +
             | 
| 11 | 
            +
                  end
         | 
| 9 12 | 
             
                  send_file archive_path
         | 
| 10 13 | 
             
                end
         | 
| 11 14 |  | 
| @@ -16,10 +19,6 @@ module RailsZero | |
| 16 19 |  | 
| 17 20 | 
             
              private
         | 
| 18 21 |  | 
| 19 | 
            -
                def public_path
         | 
| 20 | 
            -
                  Rails.root.join('public')
         | 
| 21 | 
            -
                end
         | 
| 22 | 
            -
             | 
| 23 22 | 
             
                def archive_path
         | 
| 24 23 | 
             
                  Rails.root.join('tmp', 'packages', 'public.tar')
         | 
| 25 24 | 
             
                end
         | 
| @@ -0,0 +1,57 @@ | |
| 1 | 
            +
            module RailsZero
         | 
| 2 | 
            +
              class GitDeployer
         | 
| 3 | 
            +
                def run
         | 
| 4 | 
            +
                  remove_dir
         | 
| 5 | 
            +
                  create_dir
         | 
| 6 | 
            +
                  extract_package
         | 
| 7 | 
            +
                  push_package
         | 
| 8 | 
            +
                end
         | 
| 9 | 
            +
             | 
| 10 | 
            +
                def package_path
         | 
| 11 | 
            +
                  PackagesClient.new.download_destination
         | 
| 12 | 
            +
                end
         | 
| 13 | 
            +
             | 
| 14 | 
            +
                def dir
         | 
| 15 | 
            +
                  Rails.root.join('tmp', 'rails_zero', 'deploy').to_s
         | 
| 16 | 
            +
                end
         | 
| 17 | 
            +
             | 
| 18 | 
            +
                def extracted_package_path
         | 
| 19 | 
            +
                  File.join(dir, File.basename(package_path, File.extname(package_path)))
         | 
| 20 | 
            +
                end
         | 
| 21 | 
            +
             | 
| 22 | 
            +
                def create_dir
         | 
| 23 | 
            +
                  FileUtils.mkdir_p(dir)
         | 
| 24 | 
            +
                end
         | 
| 25 | 
            +
             | 
| 26 | 
            +
                def remove_dir
         | 
| 27 | 
            +
                  FileUtils.rm_rf(dir)
         | 
| 28 | 
            +
                end
         | 
| 29 | 
            +
             | 
| 30 | 
            +
                def extract_package
         | 
| 31 | 
            +
                  remove_dir
         | 
| 32 | 
            +
                  create_dir
         | 
| 33 | 
            +
                  command = "tar -xf #{package_path} -C #{dir}"
         | 
| 34 | 
            +
                  stdout_str, stderr_str, status = Open3.capture3(command)
         | 
| 35 | 
            +
                end
         | 
| 36 | 
            +
             | 
| 37 | 
            +
                def push_package
         | 
| 38 | 
            +
                  Dir.chdir(extracted_package_path) do
         | 
| 39 | 
            +
                    commands = []
         | 
| 40 | 
            +
                    commands << "#{git_binary} init"
         | 
| 41 | 
            +
                    commands << "#{git_binary} remote add origin #{git_remote_url}"
         | 
| 42 | 
            +
                    commands << "#{git_binary} add --all ."
         | 
| 43 | 
            +
                    commands << "#{git_binary} commit -m \"Deploy.\""
         | 
| 44 | 
            +
                    commands << "#{git_binary} push -u --force origin master"
         | 
| 45 | 
            +
                    stdout_str, stderr_str, status = Open3.capture3(commands.join(" && "))
         | 
| 46 | 
            +
                  end
         | 
| 47 | 
            +
                end
         | 
| 48 | 
            +
             | 
| 49 | 
            +
                def git_binary
         | 
| 50 | 
            +
                  RailsZero.config.deployment.git_binary
         | 
| 51 | 
            +
                end
         | 
| 52 | 
            +
             | 
| 53 | 
            +
                def git_remote_url
         | 
| 54 | 
            +
                  RailsZero.config.deployment.url
         | 
| 55 | 
            +
                end
         | 
| 56 | 
            +
              end
         | 
| 57 | 
            +
            end
         | 
| @@ -1,9 +1,14 @@ | |
| 1 1 | 
             
            module RailsZero
         | 
| 2 2 | 
             
              class GenerateSiteJob
         | 
| 3 | 
            +
                include RailsZero::Engine.routes.url_helpers
         | 
| 4 | 
            +
             | 
| 3 5 | 
             
                def run
         | 
| 4 | 
            -
                  RailsZero. | 
| 6 | 
            +
                  Capybara.app_host = RailsZero.config.backend.url
         | 
| 7 | 
            +
                  Capybara.visit packages_new_path
         | 
| 8 | 
            +
                  RailsZero.config.site.paths.each do |path|
         | 
| 5 9 | 
             
                    Capybara.visit path
         | 
| 6 10 | 
             
                  end
         | 
| 11 | 
            +
                  Capybara.reset_sessions!
         | 
| 7 12 | 
             
                end
         | 
| 8 13 | 
             
              end
         | 
| 9 14 | 
             
            end
         | 
    
        data/lib/rails_zero.rb
    CHANGED
    
    | @@ -1,14 +1,19 @@ | |
| 1 1 | 
             
            require "rails_zero/engine"
         | 
| 2 | 
            -
            require "rails_zero/ | 
| 2 | 
            +
            require "rails_zero/config"
         | 
| 3 3 | 
             
            require 'actionpack/page_caching/railtie'
         | 
| 4 | 
            +
            require 'capybara/dsl'
         | 
| 4 5 | 
             
            require 'open3'
         | 
| 5 6 |  | 
| 6 7 | 
             
            module RailsZero
         | 
| 7 | 
            -
              def self. | 
| 8 | 
            -
                yield  | 
| 8 | 
            +
              def self.configure
         | 
| 9 | 
            +
                yield config
         | 
| 9 10 | 
             
              end
         | 
| 10 11 |  | 
| 11 | 
            -
              def self. | 
| 12 | 
            -
                @config ||=  | 
| 12 | 
            +
              def self.config
         | 
| 13 | 
            +
                @config ||= Config.new
         | 
| 14 | 
            +
              end
         | 
| 15 | 
            +
             | 
| 16 | 
            +
              def self.path *args
         | 
| 17 | 
            +
                File.expand_path(File.join('..', '..', *args), __FILE__)
         | 
| 13 18 | 
             
              end
         | 
| 14 19 | 
             
            end
         | 
| @@ -0,0 +1,78 @@ | |
| 1 | 
            +
            module RailsZero
         | 
| 2 | 
            +
              class Config
         | 
| 3 | 
            +
                class Backend
         | 
| 4 | 
            +
                  attr_accessor :url
         | 
| 5 | 
            +
             | 
| 6 | 
            +
                  def url
         | 
| 7 | 
            +
                    @url ||= 'http://localhost:3000'
         | 
| 8 | 
            +
                  end
         | 
| 9 | 
            +
                end
         | 
| 10 | 
            +
             | 
| 11 | 
            +
                class GitDeployment
         | 
| 12 | 
            +
                  attr_accessor :url,
         | 
| 13 | 
            +
                                :git_binary
         | 
| 14 | 
            +
             | 
| 15 | 
            +
                  def git_binary
         | 
| 16 | 
            +
                    @git_binary ||=
         | 
| 17 | 
            +
                      File.expand_path(File.join('..', '..', '..', 'bin', 'git'), __FILE__)
         | 
| 18 | 
            +
                  end
         | 
| 19 | 
            +
                end
         | 
| 20 | 
            +
             | 
| 21 | 
            +
                class Site
         | 
| 22 | 
            +
                  attr_writer :paths, :paths_builders
         | 
| 23 | 
            +
             | 
| 24 | 
            +
                  def paths
         | 
| 25 | 
            +
                    paths = []
         | 
| 26 | 
            +
                    paths.concat(@paths) if defined?(@paths)
         | 
| 27 | 
            +
                    paths.concat(map_paths_from_paths_builders)
         | 
| 28 | 
            +
                    paths.flatten
         | 
| 29 | 
            +
                  end
         | 
| 30 | 
            +
             | 
| 31 | 
            +
                  def add_paths paths
         | 
| 32 | 
            +
                    @paths ||= []
         | 
| 33 | 
            +
                    @paths << paths
         | 
| 34 | 
            +
                  end
         | 
| 35 | 
            +
             | 
| 36 | 
            +
                  def add_path path
         | 
| 37 | 
            +
                    @paths ||= []
         | 
| 38 | 
            +
                    @paths << path
         | 
| 39 | 
            +
                  end
         | 
| 40 | 
            +
             | 
| 41 | 
            +
                  def define_lazy_paths &block
         | 
| 42 | 
            +
                    @lazy_paths = block
         | 
| 43 | 
            +
                  end
         | 
| 44 | 
            +
             | 
| 45 | 
            +
                  def paths_to_except_from_cleanup
         | 
| 46 | 
            +
                    @paths_to_except_from_cleanup ||= begin
         | 
| 47 | 
            +
                      %w[ 404.html
         | 
| 48 | 
            +
                          422.html
         | 
| 49 | 
            +
                          500.html
         | 
| 50 | 
            +
                          favicon.ico
         | 
| 51 | 
            +
                          ].map do |f|
         | 
| 52 | 
            +
                        Rails.root.join('public', f).to_s
         | 
| 53 | 
            +
                      end
         | 
| 54 | 
            +
                    end
         | 
| 55 | 
            +
                  end
         | 
| 56 | 
            +
             | 
| 57 | 
            +
                private
         | 
| 58 | 
            +
             | 
| 59 | 
            +
                  def map_paths_from_paths_builders
         | 
| 60 | 
            +
                    if defined? @paths_builders
         | 
| 61 | 
            +
                      @paths_builders.map{|b| b.call}
         | 
| 62 | 
            +
                    else
         | 
| 63 | 
            +
                      []
         | 
| 64 | 
            +
                    end
         | 
| 65 | 
            +
                  end
         | 
| 66 | 
            +
                end
         | 
| 67 | 
            +
             | 
| 68 | 
            +
                attr_reader :backend,
         | 
| 69 | 
            +
                            :deployment,
         | 
| 70 | 
            +
                            :site
         | 
| 71 | 
            +
             | 
| 72 | 
            +
                def initialize
         | 
| 73 | 
            +
                  @backend = Backend.new
         | 
| 74 | 
            +
                  @deployment = GitDeployment.new
         | 
| 75 | 
            +
                  @site = Site.new
         | 
| 76 | 
            +
                end
         | 
| 77 | 
            +
              end
         | 
| 78 | 
            +
            end
         | 
    
        data/lib/rails_zero/version.rb
    CHANGED
    
    
| @@ -0,0 +1,13 @@ | |
| 1 | 
            +
            namespace :rails_zero do
         | 
| 2 | 
            +
              desc 'Generates the Site on the Remote'
         | 
| 3 | 
            +
              task :generate => :environment do
         | 
| 4 | 
            +
                RailsZero::GenerateSiteJob.new.run
         | 
| 5 | 
            +
              end
         | 
| 6 | 
            +
             | 
| 7 | 
            +
              namespace :deploy do
         | 
| 8 | 
            +
                desc 'Git deployment'
         | 
| 9 | 
            +
                task :git do
         | 
| 10 | 
            +
                  RailsZero::GitDeployer.new.run
         | 
| 11 | 
            +
                end
         | 
| 12 | 
            +
              end
         | 
| 13 | 
            +
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: rails-zero
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.0. | 
| 4 | 
            +
              version: 0.0.2
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Jens Bissinger
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2014-03- | 
| 11 | 
            +
            date: 2014-03-13 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: rails
         | 
| @@ -38,6 +38,20 @@ dependencies: | |
| 38 38 | 
             
                - - '>='
         | 
| 39 39 | 
             
                  - !ruby/object:Gem::Version
         | 
| 40 40 | 
             
                    version: '0'
         | 
| 41 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 42 | 
            +
              name: capybara
         | 
| 43 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 44 | 
            +
                requirements:
         | 
| 45 | 
            +
                - - '>='
         | 
| 46 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 47 | 
            +
                    version: '0'
         | 
| 48 | 
            +
              type: :runtime
         | 
| 49 | 
            +
              prerelease: false
         | 
| 50 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 51 | 
            +
                requirements:
         | 
| 52 | 
            +
                - - '>='
         | 
| 53 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 54 | 
            +
                    version: '0'
         | 
| 41 55 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 42 56 | 
             
              name: sqlite3
         | 
| 43 57 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -66,17 +80,19 @@ files: | |
| 66 80 | 
             
            - app/clients/rails_zero/packages_client.rb
         | 
| 67 81 | 
             
            - app/controllers/rails_zero/application_controller.rb
         | 
| 68 82 | 
             
            - app/controllers/rails_zero/packages_controller.rb
         | 
| 83 | 
            +
            - app/deployers/rails_zero/git_deployer.rb
         | 
| 69 84 | 
             
            - app/helpers/rails_zero/application_helper.rb
         | 
| 70 85 | 
             
            - app/jobs/rails_zero/clean_site_job.rb
         | 
| 71 86 | 
             
            - app/jobs/rails_zero/generate_site_job.rb
         | 
| 72 87 | 
             
            - app/views/layouts/rails_zero/application.html.erb
         | 
| 73 88 | 
             
            - config/routes.rb
         | 
| 74 89 | 
             
            - lib/rails-zero.rb
         | 
| 90 | 
            +
            - lib/rails_zero/config.rb
         | 
| 91 | 
            +
            - lib/rails_zero/drivers/poltergeist.rb
         | 
| 75 92 | 
             
            - lib/rails_zero/engine.rb
         | 
| 76 | 
            -
            - lib/rails_zero/pages_config.rb
         | 
| 77 93 | 
             
            - lib/rails_zero/version.rb
         | 
| 78 94 | 
             
            - lib/rails_zero.rb
         | 
| 79 | 
            -
            - lib/tasks/ | 
| 95 | 
            +
            - lib/tasks/rails_zero.rake
         | 
| 80 96 | 
             
            - MIT-LICENSE
         | 
| 81 97 | 
             
            - Rakefile
         | 
| 82 98 | 
             
            homepage: https://github.com/dpree/rails-zero
         | 
| @@ -1,15 +0,0 @@ | |
| 1 | 
            -
            module RailsZero
         | 
| 2 | 
            -
              class PagesConfig
         | 
| 3 | 
            -
                def links
         | 
| 4 | 
            -
                  @links ||= []
         | 
| 5 | 
            -
                end
         | 
| 6 | 
            -
             | 
| 7 | 
            -
                def paths_to_except_from_cleanup
         | 
| 8 | 
            -
                  @paths_to_except_from_cleanup ||= begin
         | 
| 9 | 
            -
                    %w[ 404.html 422.html 500.html favicon.ico ].map do |f|
         | 
| 10 | 
            -
                      Rails.root.join('public', f).to_s
         | 
| 11 | 
            -
                    end
         | 
| 12 | 
            -
                  end
         | 
| 13 | 
            -
                end
         | 
| 14 | 
            -
              end
         | 
| 15 | 
            -
            end
         |