hybook 0.0.4 → 0.1.0

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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 025a0e3edbb9f098e19a14d29ed4ebb6f1781eb2
4
+ data.tar.gz: 449d801c54f96935679c985fc85c2efb08134069
5
+ SHA512:
6
+ metadata.gz: 69439953a99d3b653817ebb0fd9d95867a089fb95ea0b0dff5b96fdc9102b1278fed945ba53f5f5672d8eb97448ca0e047409c6cf9bdfc89f59e3f191968388d
7
+ data.tar.gz: 6097c65f219ba93e8be0414d6fc9f47af5441115a3eb0efdfa50ab39fe7343c30020b2809bb46fb0e51a59e690427622c4e1c60ea934488fc6e7fa6ba1f802c1
File without changes
data/Manifest.txt CHANGED
@@ -1,11 +1,14 @@
1
- History.md
1
+ HISTORY.md
2
2
  Manifest.txt
3
3
  README.md
4
4
  Rakefile
5
5
  lib/hybook.rb
6
+ lib/hybook/builder/album.rb
7
+ lib/hybook/builder/book.rb
6
8
  lib/hybook/std/album.rb
7
9
  lib/hybook/type/album.rb
8
10
  lib/hybook/type/picture.rb
9
11
  lib/hybook/type/section.rb
10
12
  lib/hybook/version.rb
13
+ lib/hybook/writer/jekyll.rb
11
14
  templates/album.md
data/Rakefile CHANGED
@@ -15,10 +15,21 @@ Hoe.spec 'hybook' do
15
15
 
16
16
  # switch extension to .markdown for gihub formatting
17
17
  self.readme_file = 'README.md'
18
- self.history_file = 'History.md'
18
+ self.history_file = 'HISTORY.md'
19
19
 
20
20
  self.licenses = ['Public Domain']
21
21
 
22
+ self.extra_deps = [
23
+ ['props'], # settings / prop(ertie)s / env / INI
24
+ ['logutils'], # logging
25
+ ['textutils', '>= 0.9.4'], # e.g. >= 0.6 && <= 1.0 ## will include logutils, props
26
+ ['markdown'], # markdown helper (e.g. link_to etc.)
27
+
28
+ ## 3rd party
29
+ ['gli', '>= 2.9'],
30
+ ['activesupport']
31
+ ]
32
+
22
33
  self.spec_extras = {
23
34
  :required_ruby_version => '>= 1.9.2'
24
35
  }
data/lib/hybook.rb CHANGED
@@ -25,6 +25,16 @@ require 'hybook/type/section'
25
25
 
26
26
  require 'hybook/std/album'
27
27
 
28
+ ## builders
29
+
30
+ require 'hybook/builder/book'
31
+ require 'hybook/builder/album'
32
+
33
+ ## writers
34
+
35
+ require 'hybook/builder/jekyll'
36
+
37
+
28
38
 
29
39
  module HyBook
30
40
 
@@ -0,0 +1,13 @@
1
+ # encoding: utf-8
2
+
3
+ ###
4
+ # album builder
5
+
6
+
7
+ class AlbumBuilder
8
+
9
+ ## move create_from_code from album here
10
+ # keep types "clean" e.g. only data struture
11
+
12
+ end
13
+
@@ -0,0 +1,95 @@
1
+ # encoding: utf-8
2
+
3
+ ###
4
+ # book builder
5
+ #
6
+ # - fix: build book structure in memory only (and use JekyllWriter to write/render to disk!!!)
7
+ # -- independent of jekyll (e.g. static site compiler)
8
+
9
+ #
10
+ #
11
+ # -- fix: use our own Page model or better Part / Section / etc. !!!!
12
+ # -- do NOT use TextUtils::Page --> use in writer/render when content gets mapped!!!
13
+
14
+ #
15
+ #
16
+ # fix: remove jekyll specific stuff
17
+ # -- move to jekyll writer
18
+
19
+ class BookBuilder
20
+
21
+ def inline?() @inline; end
22
+ def title() @title; end
23
+ def layout() @layout; end
24
+ def pages_dir() @pages_dir; end
25
+
26
+
27
+ def initialize( user_pages_dir, opts={} )
28
+
29
+ #
30
+ #
31
+ # fix: move user_pages_dir to opts ?? or remove
32
+ # only use for writer/renderer later
33
+
34
+ @pages_dir = user_pages_dir # add user_ to avoid conflict w/ attrib
35
+
36
+ @inline = opts[:inline ] == true ? true : false # all-in-one page version or multi-page?
37
+
38
+ @title = opts[:title] || 'Book Title Here'
39
+ @layout = opts[:layout] || 'book'
40
+
41
+
42
+ ## if @inline create all-in-one book(.html) page
43
+ if inline?
44
+ path = "#{pages_dir}/book.md"
45
+ puts "[book] create all-in-one book page (#{path})"
46
+
47
+ ## add frontmatter
48
+
49
+ page_opts = { frontmatter: {
50
+ layout: layout,
51
+ title: title,
52
+ permalink: '/book.html' } }
53
+
54
+ TextUtils::Page.create( path, page_opts ) do |page|
55
+ ## do nothing for now
56
+ end
57
+ end
58
+ end
59
+
60
+
61
+ ### fix: change to part/chapter/section/etc. ??
62
+
63
+ def page( name, opts={} )
64
+
65
+ # add fallbacks/defaults
66
+ opts[:title] ||= 'Page Title Here'
67
+ opts[:id] ||= TextUtils.slugify( @title ) ## add page/section counter to generated fallback id/anchor
68
+
69
+ if inline?
70
+ path = "#{pages_dir}/book.md"
71
+ puts "[book] update all-in-one book page -- #{name} (#{path})"
72
+
73
+ page_opts = {}.merge( opts ) ## for now pass along all opts; no built-in/auto-added opts -- in the future add page/section counter or similar, for example?
74
+ TextUtils::Page.update( path, page_opts ) do |page|
75
+ yield( page )
76
+ end
77
+ else
78
+ path = "#{pages_dir}/#{name}.md"
79
+ puts "[book] create page #{name} (#{path})"
80
+
81
+ page_opts = { frontmatter: {
82
+ layout: layout, # e.g. 'book'
83
+ title: opts[:title], # e.g. 'The Free Beer Book'
84
+ permalink: "/#{opts[:id]}.html" # e.g. '/index.html'
85
+ }}
86
+ page_opts = page_opts.merge( opts ) ## pass along all opts
87
+
88
+ TextUtils::Page.create( path, page_opts ) do |page|
89
+ yield( page )
90
+ end
91
+ end
92
+ end
93
+
94
+ end # class BookBuilder
95
+
@@ -12,6 +12,11 @@ class Album
12
12
  @sections = [] # sections (for pictures)
13
13
  end
14
14
 
15
+
16
+ ###
17
+ ## fix: move to album builder
18
+
19
+
15
20
  def self.create_from_folder( root, opts={} )
16
21
  dirs = Dir[ "#{root}/**/" ] ## get all folders n subfolder
17
22
  ## pp dirs
@@ -1,6 +1,4 @@
1
1
 
2
2
  module HyBook
3
- VERSION = '0.0.4'
3
+ VERSION = '0.1.0'
4
4
  end
5
-
6
-
@@ -0,0 +1,13 @@
1
+ # encoding: utf-8
2
+
3
+ ###
4
+ # Jekyll book writer / renderer
5
+
6
+ class JekyllWriter
7
+
8
+ ## to be done
9
+ ## see BookBuilder - split code
10
+ ##
11
+
12
+ end # class JekyllWriter
13
+
metadata CHANGED
@@ -1,62 +1,155 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hybook
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
5
- prerelease:
4
+ version: 0.1.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Gerald Bauer
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2014-02-21 00:00:00.000000000 Z
11
+ date: 2014-03-31 00:00:00.000000000 Z
13
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: props
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ! '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ! '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: logutils
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ! '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: textutils
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ! '>='
46
+ - !ruby/object:Gem::Version
47
+ version: 0.9.4
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: 0.9.4
55
+ - !ruby/object:Gem::Dependency
56
+ name: markdown
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ! '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: gli
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ! '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '2.9'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ! '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '2.9'
83
+ - !ruby/object:Gem::Dependency
84
+ name: activesupport
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ! '>='
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ! '>='
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
14
97
  - !ruby/object:Gem::Dependency
15
98
  name: rdoc
16
- requirement: &20929368 !ruby/object:Gem::Requirement
17
- none: false
99
+ requirement: !ruby/object:Gem::Requirement
18
100
  requirements:
19
101
  - - ~>
20
102
  - !ruby/object:Gem::Version
21
103
  version: '4.0'
22
104
  type: :development
23
105
  prerelease: false
24
- version_requirements: *20929368
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ~>
109
+ - !ruby/object:Gem::Version
110
+ version: '4.0'
25
111
  - !ruby/object:Gem::Dependency
26
112
  name: hoe
27
- requirement: &20928900 !ruby/object:Gem::Requirement
28
- none: false
113
+ requirement: !ruby/object:Gem::Requirement
29
114
  requirements:
30
115
  - - ~>
31
116
  - !ruby/object:Gem::Version
32
- version: '3.7'
117
+ version: '3.6'
33
118
  type: :development
34
119
  prerelease: false
35
- version_requirements: *20928900
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ~>
123
+ - !ruby/object:Gem::Version
124
+ version: '3.6'
36
125
  description: hybook - hypertext book generator
37
126
  email: webslideshow@googlegroups.com
38
127
  executables: []
39
128
  extensions: []
40
129
  extra_rdoc_files:
41
- - History.md
130
+ - HISTORY.md
42
131
  - Manifest.txt
43
132
  - README.md
44
133
  - templates/album.md
45
134
  files:
46
- - History.md
135
+ - HISTORY.md
47
136
  - Manifest.txt
48
137
  - README.md
49
138
  - Rakefile
50
139
  - lib/hybook.rb
140
+ - lib/hybook/builder/album.rb
141
+ - lib/hybook/builder/book.rb
51
142
  - lib/hybook/std/album.rb
52
143
  - lib/hybook/type/album.rb
53
144
  - lib/hybook/type/picture.rb
54
145
  - lib/hybook/type/section.rb
55
146
  - lib/hybook/version.rb
147
+ - lib/hybook/writer/jekyll.rb
56
148
  - templates/album.md
57
149
  homepage: https://github.com/hybook/hybook
58
150
  licenses:
59
151
  - Public Domain
152
+ metadata: {}
60
153
  post_install_message:
61
154
  rdoc_options:
62
155
  - --main
@@ -64,21 +157,19 @@ rdoc_options:
64
157
  require_paths:
65
158
  - lib
66
159
  required_ruby_version: !ruby/object:Gem::Requirement
67
- none: false
68
160
  requirements:
69
161
  - - ! '>='
70
162
  - !ruby/object:Gem::Version
71
163
  version: 1.9.2
72
164
  required_rubygems_version: !ruby/object:Gem::Requirement
73
- none: false
74
165
  requirements:
75
166
  - - ! '>='
76
167
  - !ruby/object:Gem::Version
77
168
  version: '0'
78
169
  requirements: []
79
170
  rubyforge_project: hybook
80
- rubygems_version: 1.8.16
171
+ rubygems_version: 2.1.10
81
172
  signing_key:
82
- specification_version: 3
173
+ specification_version: 4
83
174
  summary: hybook - hypertext book generator
84
175
  test_files: []