razor 0.5 → 0.5.1
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.
- data/README.md +3 -0
- data/lib/razor.rb +1 -1
- data/lib/razor/rake/git_generate.rb +117 -0
- data/lib/razor/renderer.rb +0 -1
- data/lib/version.rb +1 -1
- metadata +11 -10
- data/README +0 -0
data/README.md
ADDED
data/lib/razor.rb
CHANGED
@@ -0,0 +1,117 @@
|
|
1
|
+
require 'rake'
|
2
|
+
require 'rake/tasklib'
|
3
|
+
require 'tmpdir'
|
4
|
+
|
5
|
+
require 'razor'
|
6
|
+
|
7
|
+
module Razor
|
8
|
+
|
9
|
+
module Rake
|
10
|
+
|
11
|
+
module Git
|
12
|
+
|
13
|
+
class BranchError < RuntimeError
|
14
|
+
|
15
|
+
def initialize(branch)
|
16
|
+
super("Must be on #{branch}")
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
|
21
|
+
class CleanBranchError < RuntimeError
|
22
|
+
|
23
|
+
def initialize
|
24
|
+
super("Current branch must be clean.")
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
|
29
|
+
class Generate < ::Rake::TaskLib
|
30
|
+
|
31
|
+
attr_accessor :template_branch
|
32
|
+
attr_accessor :site_branch
|
33
|
+
attr_accessor :url_base
|
34
|
+
|
35
|
+
def initialize(name='git:generate')
|
36
|
+
@name = name
|
37
|
+
@template_branch = 'master'
|
38
|
+
@site_branch = 'site'
|
39
|
+
@url_base = ''
|
40
|
+
yield self if block_given?
|
41
|
+
define_task
|
42
|
+
end
|
43
|
+
|
44
|
+
def define_task
|
45
|
+
task(@name, [:message]) { |t, args|
|
46
|
+
hl = HighLine.new
|
47
|
+
ensure_on_branch template_branch
|
48
|
+
ensure_branch_is_clean # needed ?
|
49
|
+
# .gitinore workaround
|
50
|
+
#TODO: Solve this problem
|
51
|
+
gitignore = File.read '.gitignore' rescue ''
|
52
|
+
Dir.mktmpdir { |tmp|
|
53
|
+
Razor.generate(generate_options, '.', tmp)
|
54
|
+
checkout site_branch do
|
55
|
+
sh 'git rm -r .'
|
56
|
+
sh "cp -r #{tmp}/* ."
|
57
|
+
# .gitignore workaround
|
58
|
+
File.open('.gitignore', 'w') {|f| f << gitignore }
|
59
|
+
sh 'git add .'
|
60
|
+
msg = args.message
|
61
|
+
if msg.nil? or msg.empty?
|
62
|
+
sh 'git commit'
|
63
|
+
else
|
64
|
+
sh "git commit -m #{msg}"
|
65
|
+
end
|
66
|
+
end
|
67
|
+
}
|
68
|
+
}
|
69
|
+
end
|
70
|
+
|
71
|
+
def current_branch
|
72
|
+
`git status` =~ /^# On branch (.+)/
|
73
|
+
return $1
|
74
|
+
end
|
75
|
+
|
76
|
+
def checkout(branch)
|
77
|
+
if block_given?
|
78
|
+
old = current_branch
|
79
|
+
begin
|
80
|
+
`git checkout #{branch}`
|
81
|
+
yield
|
82
|
+
ensure
|
83
|
+
`git checkout #{old}`
|
84
|
+
end
|
85
|
+
else
|
86
|
+
`git checkout #{branch}`
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
def ensure_on_branch(branch)
|
91
|
+
current_branch == branch and return
|
92
|
+
ensure_branch_is_clean
|
93
|
+
checkout branch
|
94
|
+
rescue CleanBranchError
|
95
|
+
raise BranchError.new(branch)
|
96
|
+
end
|
97
|
+
|
98
|
+
def ensure_branch_is_clean
|
99
|
+
clean = (`git status` =~ /nothing to commit \(working directory clean\)\n$/ )
|
100
|
+
p clean
|
101
|
+
clean and return
|
102
|
+
raise CleanBranchError
|
103
|
+
end
|
104
|
+
|
105
|
+
def generate_options
|
106
|
+
{
|
107
|
+
:url_base => @url_base
|
108
|
+
}
|
109
|
+
end
|
110
|
+
|
111
|
+
end
|
112
|
+
|
113
|
+
end
|
114
|
+
|
115
|
+
end
|
116
|
+
|
117
|
+
end
|
data/lib/razor/renderer.rb
CHANGED
data/lib/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: razor
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 0.5.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,12 +9,12 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-03-
|
12
|
+
date: 2011-03-11 00:00:00.000000000 +01:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: mustache
|
17
|
-
requirement: &
|
17
|
+
requirement: &21799560 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ! '>='
|
@@ -22,10 +22,10 @@ dependencies:
|
|
22
22
|
version: '0'
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
|
-
version_requirements: *
|
25
|
+
version_requirements: *21799560
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: rack
|
28
|
-
requirement: &
|
28
|
+
requirement: &21799040 !ruby/object:Gem::Requirement
|
29
29
|
none: false
|
30
30
|
requirements:
|
31
31
|
- - ! '>='
|
@@ -33,10 +33,10 @@ dependencies:
|
|
33
33
|
version: '0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
|
-
version_requirements: *
|
36
|
+
version_requirements: *21799040
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
38
|
name: highline
|
39
|
-
requirement: &
|
39
|
+
requirement: &21798560 !ruby/object:Gem::Requirement
|
40
40
|
none: false
|
41
41
|
requirements:
|
42
42
|
- - ! '>='
|
@@ -44,7 +44,7 @@ dependencies:
|
|
44
44
|
version: '0'
|
45
45
|
type: :runtime
|
46
46
|
prerelease: false
|
47
|
-
version_requirements: *
|
47
|
+
version_requirements: *21798560
|
48
48
|
description: ! '''Razor is a static website generator. Describe layouts and pages
|
49
49
|
in ruby. Write them with html and Mustache.
|
50
50
|
|
@@ -58,7 +58,7 @@ executables:
|
|
58
58
|
extensions: []
|
59
59
|
extra_rdoc_files: []
|
60
60
|
files:
|
61
|
-
- README
|
61
|
+
- README.md
|
62
62
|
- LICENSE
|
63
63
|
- lib/razor.rb
|
64
64
|
- lib/razor/generable.rb
|
@@ -67,10 +67,11 @@ files:
|
|
67
67
|
- lib/razor/template.rb
|
68
68
|
- lib/razor/rake/ftp.rb
|
69
69
|
- lib/razor/rake/ftp_push.rb
|
70
|
+
- lib/razor/rake/git_generate.rb
|
70
71
|
- lib/version.rb
|
71
72
|
- bin/razor
|
72
73
|
has_rdoc: true
|
73
|
-
homepage: https://
|
74
|
+
homepage: https://aumgn.fr/razor
|
74
75
|
licenses:
|
75
76
|
- MIT License. See LICENSE file.
|
76
77
|
post_install_message:
|
data/README
DELETED
File without changes
|