clay 1.2 → 1.3
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/src/clay.rb +36 -18
- metadata +28 -28
data/src/clay.rb
CHANGED
@@ -6,19 +6,19 @@ require 'fileutils'
|
|
6
6
|
require 'yaml'
|
7
7
|
|
8
8
|
module Clay
|
9
|
-
VERSION = "1.
|
9
|
+
VERSION = "1.3"
|
10
10
|
|
11
11
|
def self.init project_name
|
12
|
-
|
12
|
+
puts "Creating the folder structure... "
|
13
13
|
project.init project_name
|
14
|
-
puts "
|
14
|
+
puts "OK."
|
15
15
|
end
|
16
16
|
|
17
17
|
def self.form
|
18
|
-
|
18
|
+
puts "Forming... "
|
19
19
|
project.check_consistency
|
20
20
|
project.build
|
21
|
-
puts "
|
21
|
+
puts "OK."
|
22
22
|
end
|
23
23
|
|
24
24
|
def self.run
|
@@ -61,7 +61,8 @@ class Project
|
|
61
61
|
create_directory path("build")
|
62
62
|
end
|
63
63
|
publish_public
|
64
|
-
|
64
|
+
texts = interpret_texts
|
65
|
+
publish_pages texts
|
65
66
|
end
|
66
67
|
|
67
68
|
def prepare_rack_config
|
@@ -102,16 +103,33 @@ class Project
|
|
102
103
|
end
|
103
104
|
end
|
104
105
|
|
105
|
-
def publish_pages
|
106
|
-
Dir.glob("pages/*.*").each { |page_path|
|
107
|
-
page = Page.new(page_path)
|
108
|
-
File.open(page.target, "w") {|f| f.write page.content }
|
109
|
-
}
|
110
|
-
end
|
111
|
-
|
112
106
|
def publish_public
|
113
107
|
FileUtils.cp_r(Dir.glob("public/*"), "build")
|
114
108
|
end
|
109
|
+
|
110
|
+
def interpret_texts
|
111
|
+
data = {}
|
112
|
+
texts = Dir.glob("texts/*")
|
113
|
+
texts.each do |filename|
|
114
|
+
begin
|
115
|
+
data.merge! Text.new(filename).to_h
|
116
|
+
rescue RuntimeError => e
|
117
|
+
puts "Warning: ", e.message
|
118
|
+
end
|
119
|
+
end
|
120
|
+
data
|
121
|
+
end
|
122
|
+
|
123
|
+
def publish_pages data=nil
|
124
|
+
Dir.glob("pages/*.*").each { |page_path|
|
125
|
+
begin
|
126
|
+
page = Page.new(page_path, data)
|
127
|
+
File.open(page.target, "w") {|f| f.write page.content }
|
128
|
+
rescue RuntimeError => e
|
129
|
+
puts "Warning: ", e.message
|
130
|
+
end
|
131
|
+
}
|
132
|
+
end
|
115
133
|
|
116
134
|
def path filename
|
117
135
|
File.expand_path(File.join("#{@project_root}/", filename))
|
@@ -121,15 +139,17 @@ end
|
|
121
139
|
|
122
140
|
class Page
|
123
141
|
attr_reader :content
|
124
|
-
def initialize filename
|
142
|
+
def initialize filename, data=nil
|
125
143
|
case filename.split(".").last
|
126
144
|
when "md", "markdown" then @page_type = "markdown"
|
127
145
|
when "html" then @page_type = "html"
|
128
|
-
else raise "File type of #{filename} unknown
|
146
|
+
else raise "File type of #{filename} unknown. Shouldn\'t it be in the public directory?"
|
129
147
|
end
|
130
148
|
@filename = filename_within_pages filename
|
131
149
|
file_content = File.read(filename)
|
132
|
-
|
150
|
+
data ||= {}
|
151
|
+
layout, raw_content, new_data = interpret file_content
|
152
|
+
data.merge! new_data
|
133
153
|
@content = render raw_content, layout, @page_type, data
|
134
154
|
end
|
135
155
|
|
@@ -169,8 +189,6 @@ private
|
|
169
189
|
layout_name = data.delete "layout" if data["layout"]
|
170
190
|
end
|
171
191
|
layout = "layouts/#{layout_name}.html"
|
172
|
-
texts = Dir.glob("texts/*")
|
173
|
-
texts.each{|filename| data.merge! Text.new(filename).to_h }
|
174
192
|
return layout, content, data
|
175
193
|
end
|
176
194
|
end
|
metadata
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: clay
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 9
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 1
|
8
|
-
-
|
9
|
-
version: "1.
|
8
|
+
- 3
|
9
|
+
version: "1.3"
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Pavlo Kerestey
|
@@ -14,11 +14,13 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date:
|
17
|
+
date: 2011-01-02 00:00:00 +01:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
|
-
|
21
|
+
name: mustache
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
22
24
|
none: false
|
23
25
|
requirements:
|
24
26
|
- - ~>
|
@@ -28,12 +30,12 @@ dependencies:
|
|
28
30
|
- 0
|
29
31
|
- 11
|
30
32
|
version: "0.11"
|
31
|
-
name: mustache
|
32
|
-
requirement: *id001
|
33
|
-
prerelease: false
|
34
33
|
type: :runtime
|
34
|
+
version_requirements: *id001
|
35
35
|
- !ruby/object:Gem::Dependency
|
36
|
-
|
36
|
+
name: rdiscount
|
37
|
+
prerelease: false
|
38
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
37
39
|
none: false
|
38
40
|
requirements:
|
39
41
|
- - ">="
|
@@ -42,12 +44,12 @@ dependencies:
|
|
42
44
|
segments:
|
43
45
|
- 0
|
44
46
|
version: "0"
|
45
|
-
name: rdiscount
|
46
|
-
requirement: *id002
|
47
|
-
prerelease: false
|
48
47
|
type: :runtime
|
48
|
+
version_requirements: *id002
|
49
49
|
- !ruby/object:Gem::Dependency
|
50
|
-
|
50
|
+
name: rack
|
51
|
+
prerelease: false
|
52
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
51
53
|
none: false
|
52
54
|
requirements:
|
53
55
|
- - ">="
|
@@ -56,12 +58,12 @@ dependencies:
|
|
56
58
|
segments:
|
57
59
|
- 0
|
58
60
|
version: "0"
|
59
|
-
name: rack
|
60
|
-
requirement: *id003
|
61
|
-
prerelease: false
|
62
61
|
type: :runtime
|
62
|
+
version_requirements: *id003
|
63
63
|
- !ruby/object:Gem::Dependency
|
64
|
-
|
64
|
+
name: bundler
|
65
|
+
prerelease: false
|
66
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
65
67
|
none: false
|
66
68
|
requirements:
|
67
69
|
- - ~>
|
@@ -71,12 +73,12 @@ dependencies:
|
|
71
73
|
- 1
|
72
74
|
- 0
|
73
75
|
version: "1.0"
|
74
|
-
name: bundler
|
75
|
-
requirement: *id004
|
76
|
-
prerelease: false
|
77
76
|
type: :development
|
77
|
+
version_requirements: *id004
|
78
78
|
- !ruby/object:Gem::Dependency
|
79
|
-
|
79
|
+
name: rspec
|
80
|
+
prerelease: false
|
81
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
80
82
|
none: false
|
81
83
|
requirements:
|
82
84
|
- - ">="
|
@@ -85,12 +87,12 @@ dependencies:
|
|
85
87
|
segments:
|
86
88
|
- 0
|
87
89
|
version: "0"
|
88
|
-
name: rspec
|
89
|
-
requirement: *id005
|
90
|
-
prerelease: false
|
91
90
|
type: :development
|
91
|
+
version_requirements: *id005
|
92
92
|
- !ruby/object:Gem::Dependency
|
93
|
-
|
93
|
+
name: rake
|
94
|
+
prerelease: false
|
95
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
94
96
|
none: false
|
95
97
|
requirements:
|
96
98
|
- - ">="
|
@@ -99,10 +101,8 @@ dependencies:
|
|
99
101
|
segments:
|
100
102
|
- 0
|
101
103
|
version: "0"
|
102
|
-
name: rake
|
103
|
-
requirement: *id006
|
104
|
-
prerelease: false
|
105
104
|
type: :development
|
105
|
+
version_requirements: *id006
|
106
106
|
description: A sticky clay to automatically form a static website using Mustache templates and markdown files.
|
107
107
|
email:
|
108
108
|
- pavlo@kerestey.net
|