oaktree 0.4.5 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 53da84bf2ac0422a624dc4e9ce5bc18e7977bc46
4
- data.tar.gz: 0b49741b69b25e5a939746778dfe573b90f3949c
3
+ metadata.gz: 229aef0a85df9de79987d25b62296a1bd51f8460
4
+ data.tar.gz: e87221e7576984a9b4c49f1dea46fcd22d560852
5
5
  SHA512:
6
- metadata.gz: 5398d8e0d320641e4f11bc7bbea2c4b111c7db53de5e8df7dbc5f2dcd1c39d860699f15efafc795d9d23ac27ea5262492ac8afe38dc927377db4839bc54368bc
7
- data.tar.gz: b05ad2a1f049137864956baa37485622644c84d581d73457f59a1485949770bf2788ba36886f4593483d9f20201f1c530dfd3ebb9e3f7585cd7e47048e59fe7c
6
+ metadata.gz: 41ca025182163094fd4f5f4836594f1bd5591a02087871530e0a688a3706b0640ff2087666bdd31d455d190bc043d2a3e4cd2a687cdb4c1cd84200ae080e7c63
7
+ data.tar.gz: dee4745a3bb95210dacd66dae17595dcede8e9f7e7b1e57de6691649e96f53865c42359e32909d3dcd70c772ef2e8ce2955058d7da0114099f6032ffda6875b9
data/bin/oak CHANGED
@@ -245,8 +245,12 @@ def dispatch_command cmd, *args
245
245
  file = new_post(spec, title)
246
246
 
247
247
  if open_editor
248
- editor = ENV['EDITOR'] || 'open'
249
- %x["#{editor}" "#{file}"]
248
+ editor = ENV['EDITOR']
249
+ if editor
250
+ %x[#{editor} "#{file}"]
251
+ else
252
+ $stderr.puts("No EDITOR environment variable set")
253
+ end
250
254
  end
251
255
 
252
256
  when 'init', '-i'
@@ -40,6 +40,10 @@ class OakTree::PostData
40
40
  protected :source_path=, :public_path=, :title=, :link=, :content=,
41
41
  :last_read_time=, :hash=, :spec=, :permalink=, :source_name=
42
42
 
43
+ def metadata
44
+ @metadata
45
+ end
46
+
43
47
  # Loads a new post from the source file using the given Specification. The
44
48
  # source file should be the full filename of the source file, but without any
45
49
  # other path components.
@@ -47,6 +51,8 @@ class OakTree::PostData
47
51
  def initialize(source_name, spec)
48
52
  set_post_defaults
49
53
 
54
+ @metadata = {}
55
+
50
56
  self.spec = spec
51
57
 
52
58
  self.hash = nil
@@ -172,7 +178,7 @@ class OakTree::PostData
172
178
  if self.respond_to?(setter_sym, true)
173
179
  self.send setter_sym, value
174
180
  else
175
- raise "Invalid key/value for header: #{key} => #{value}."
181
+ @metadata[key.to_sym] = value
176
182
  end
177
183
  }
178
184
 
@@ -58,7 +58,7 @@ class OakTree
58
58
  }.select(&:published?)
59
59
 
60
60
  @posts = @postdata.select(&:post?)
61
- @sorted_posts = @posts.sort_by { |p| p.post_data.time }.reverse!
61
+ @sorted_posts = @posts.sort { |pl, pr| pl.post_data.time <=> pr.post_data.time }.reverse!
62
62
  @statics = @postdata.select(&:static?)
63
63
 
64
64
  @posts.freeze
@@ -66,7 +66,7 @@ class OakTree
66
66
 
67
67
  # build the archive
68
68
  @archive = []
69
- @posts.map { |post|
69
+ @posts.each { |post|
70
70
  data = post.post_data
71
71
  time = data.time
72
72
 
@@ -84,6 +84,24 @@ class OakTree
84
84
  @post.status
85
85
  end
86
86
 
87
+ def has_key?(key)
88
+ respond_to?(key) || @post.metadata.include?(key) || key.to_s.end_with?('?')
89
+ end
90
+
91
+ def [](key)
92
+ if respond_to?(key)
93
+ send(key)
94
+ elsif key.to_s.end_with?('?')
95
+ key = case key
96
+ when Symbol then key.to_s.chomp('?').to_sym
97
+ when String then key.to_s.chomp('?')
98
+ else raise "Not sure what has happened here"
99
+ end
100
+ respond_to?(key) || @post.metadata.include?(key)
101
+ else
102
+ @post.metadata[key]
103
+ end
104
+ end
87
105
  end # Post
88
106
 
89
107
  end # Template
metadata CHANGED
@@ -1,41 +1,41 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: oaktree
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.5
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Noel Raymond Cower
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2012-07-01 00:00:00.000000000 Z
11
+ date: 2013-10-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mustache
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0.99'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - '>='
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0.99'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: kramdown
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0.13'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '>='
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0.13'
41
41
  description: |
@@ -49,6 +49,10 @@ executables:
49
49
  extensions: []
50
50
  extra_rdoc_files: []
51
51
  files:
52
+ - COPYING
53
+ - README.md
54
+ - Rakefile
55
+ - bin/oak
52
56
  - lib/oaktree.rb
53
57
  - lib/oaktree/kramdown/oak_html.rb
54
58
  - lib/oaktree/post_data.rb
@@ -58,10 +62,6 @@ files:
58
62
  - lib/oaktree/template/blog.rb
59
63
  - lib/oaktree/template/post.rb
60
64
  - lib/oaktree/template/post_archive.rb
61
- - bin/oak
62
- - COPYING
63
- - README.md
64
- - Rakefile
65
65
  homepage: https://github.com/nilium/oaktree/
66
66
  licenses:
67
67
  - WTFPL-2
@@ -73,17 +73,17 @@ require_paths:
73
73
  - lib
74
74
  required_ruby_version: !ruby/object:Gem::Requirement
75
75
  requirements:
76
- - - '>='
76
+ - - ">="
77
77
  - !ruby/object:Gem::Version
78
78
  version: '0'
79
79
  required_rubygems_version: !ruby/object:Gem::Requirement
80
80
  requirements:
81
- - - '>='
81
+ - - ">="
82
82
  - !ruby/object:Gem::Version
83
83
  version: '0'
84
84
  requirements: []
85
85
  rubyforge_project:
86
- rubygems_version: 2.0.3
86
+ rubygems_version: 2.2.1
87
87
  signing_key:
88
88
  specification_version: 4
89
89
  summary: OakTree static HTML blog