razor 0.5 → 0.5.1

Sign up to get free protection for your applications and to get access to all the features.
data/README.md ADDED
@@ -0,0 +1,3 @@
1
+ == Razor
2
+
3
+ See https://github.com/aumgn/razor_sample_blog for an example.
data/lib/razor.rb CHANGED
@@ -29,7 +29,7 @@ module Razor
29
29
  require 'rack'
30
30
  port = (port and port.to_i or 3300)
31
31
  on_request = lambda do |env|
32
- page = Razor.http_request src, env['PATH_INFO']
32
+ page = http_request src, env['PATH_INFO']
33
33
  if page
34
34
  [
35
35
  200,
@@ -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
@@ -47,7 +47,6 @@ module Razor
47
47
  begin
48
48
  str = File.open(filepath, 'rb') { |f| f.read }
49
49
  rescue
50
- puts $!
51
50
  str = nil
52
51
  end
53
52
  ext = File.extname filename
data/lib/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Razor
2
- Version = '0.5'
2
+ Version = '0.5.1'
3
3
  end
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: '0.5'
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-10 00:00:00.000000000 +01:00
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: &24114740 !ruby/object:Gem::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: *24114740
25
+ version_requirements: *21799560
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: rack
28
- requirement: &24114220 !ruby/object:Gem::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: *24114220
36
+ version_requirements: *21799040
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: highline
39
- requirement: &24113740 !ruby/object:Gem::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: *24113740
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://github.com/aumgn/razor
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