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
|