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.
Files changed (2) hide show
  1. data/src/clay.rb +36 -18
  2. 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.2"
9
+ VERSION = "1.3"
10
10
 
11
11
  def self.init project_name
12
- print "Creating the folder structure... "
12
+ puts "Creating the folder structure... "
13
13
  project.init project_name
14
- puts "complete"
14
+ puts "OK."
15
15
  end
16
16
 
17
17
  def self.form
18
- print "Forming... "
18
+ puts "Forming... "
19
19
  project.check_consistency
20
20
  project.build
21
- puts "complete."
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
- publish_pages
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.\nMaybe it belongs to the public directory?"
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
- layout, raw_content, data = interpret file_content
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: 11
4
+ hash: 9
5
5
  prerelease: false
6
6
  segments:
7
7
  - 1
8
- - 2
9
- version: "1.2"
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: 2010-12-27 00:00:00 +01:00
17
+ date: 2011-01-02 00:00:00 +01:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
- version_requirements: &id001 !ruby/object:Gem::Requirement
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
- version_requirements: &id002 !ruby/object:Gem::Requirement
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
- version_requirements: &id003 !ruby/object:Gem::Requirement
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
- version_requirements: &id004 !ruby/object:Gem::Requirement
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
- version_requirements: &id005 !ruby/object:Gem::Requirement
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
- version_requirements: &id006 !ruby/object:Gem::Requirement
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