bookery 0.0.2 → 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.
Files changed (64) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +20 -8
  3. data/.travis.yml +5 -0
  4. data/{LICENSE.txt → LICENSE} +0 -0
  5. data/README.md +26 -11
  6. data/Rakefile +2 -1
  7. data/bookery.gemspec +18 -14
  8. data/docs/config.md +61 -0
  9. data/docs/contributing.md +47 -0
  10. data/docs/editing.md +82 -0
  11. data/docs/project.md +77 -0
  12. data/lib/bookery.rb +27 -4
  13. data/lib/bookery/book.rb +13 -15
  14. data/lib/bookery/cli.rb +29 -12
  15. data/lib/bookery/config.rb +42 -0
  16. data/lib/bookery/factories/chapter_factory.rb +35 -0
  17. data/lib/bookery/factories/publisher_factory.rb +13 -0
  18. data/lib/bookery/processors/include_processor.rb +17 -0
  19. data/lib/bookery/project.rb +75 -0
  20. data/lib/bookery/publishers/html_publisher.rb +68 -0
  21. data/lib/bookery/version.rb +1 -1
  22. data/{bin → libexec}/bookery +1 -4
  23. data/templates/basic/Gemfile.tt +2 -0
  24. data/templates/basic/assets/css/base.css +7 -0
  25. data/templates/basic/assets/css/layout.css +23 -0
  26. data/templates/basic/assets/css/modules/code-block.css +132 -0
  27. data/templates/{book/assets → basic/assets/includes}/.empty_directory +0 -0
  28. data/templates/basic/assets/style.css +3 -0
  29. data/templates/basic/assets/templates/template.html.erb +30 -0
  30. data/templates/basic/book/en/001-first-chapter/01-chapter-file.md +9 -0
  31. data/templates/basic/config.yml +14 -0
  32. data/test/bookery/book_test.rb +32 -9
  33. data/test/bookery/cli_test.rb +25 -14
  34. data/test/bookery/config_test.rb +26 -0
  35. data/test/bookery/factories/chapter_factory_test.rb +24 -0
  36. data/test/bookery/factories/publisher_factory_test.rb +16 -0
  37. data/test/bookery/processor/include_processor_test.rb +38 -0
  38. data/test/bookery/project_test.rb +37 -0
  39. data/test/bookery/publishers/html_publisher_test.rb +78 -0
  40. data/test/data/project/Gemfile.tt +2 -0
  41. data/{templates/book/book/.empty_directory → test/data/project/assets/images/cover.png} +0 -0
  42. data/test/data/project/assets/includes/ruby/chapter2.rb +3 -0
  43. data/test/data/project/assets/style.css +1 -0
  44. data/test/data/project/assets/templates/template.html.erb +15 -0
  45. data/test/data/project/book/en/001-first-chapter/01-chapter-file.md +9 -0
  46. data/test/data/project/book/en/002-second-chapter/01-chapter-file.md +7 -0
  47. data/test/data/project/book/en/002-second-chapter/02-second-chapter-file.md +1 -0
  48. data/{templates/book/book/en/.empty_directory → test/data/project/book/es/.git-keep} +0 -0
  49. data/test/data/project/config.yml +19 -0
  50. data/test/test_helper.rb +3 -46
  51. metadata +107 -79
  52. data/Gemfile.lock +0 -64
  53. data/Guardfile +0 -9
  54. data/lib/bookery/chapter.rb +0 -30
  55. data/templates/book/Gemfile +0 -2
  56. data/templates/book/README.md +0 -3
  57. data/templates/book/config.yml +0 -5
  58. data/templates/sample/Gemfile +0 -2
  59. data/templates/sample/README.md +0 -3
  60. data/templates/sample/book/en/01-introduction/01-intro-to-book.md +0 -0
  61. data/templates/sample/book/en/02-second-chapter/01-first-things-first.md +0 -1
  62. data/templates/sample/book/en/02-second-chapter/02-before_intro.md +0 -1
  63. data/templates/sample/config.yml +0 -5
  64. data/test/bookery/chapter_test.rb +0 -21
@@ -0,0 +1,7 @@
1
+ # The Second Chapter
2
+
3
+ We can also include ruby like this:
4
+
5
+ ```ruby
6
+ includes::ruby/chapter2.rb
7
+ ```
@@ -0,0 +1 @@
1
+ # Another File in Chapter 2
@@ -0,0 +1,19 @@
1
+ ---
2
+ book:
3
+ title: The Testing book
4
+ authors:
5
+ - David Muto
6
+ - Jesus Christ
7
+ editors:
8
+ - Kevin Centeno
9
+ - Kevin Ackland
10
+ template: assets/templates/template.html.erb
11
+
12
+ es:
13
+ title: 'El libro Testing'
14
+
15
+ generator:
16
+ input: GFM
17
+ enable_coderay: true
18
+ coderay_css: class
19
+ coderay_line_numbers: inline
data/test/test_helper.rb CHANGED
@@ -1,54 +1,11 @@
1
1
  require 'simplecov'
2
2
  SimpleCov.start do
3
3
  add_filter "/vendor/"
4
+ add_filter "/test/"
4
5
  end
5
6
 
6
7
  require 'minitest/autorun'
7
8
  require 'minitest/pride'
8
- require File.expand_path('../../lib/bookery', __FILE__)
9
+ require 'mocha/setup'
9
10
 
10
- require 'stringio'
11
-
12
- def capture(stream)
13
- begin
14
- stream = stream.to_s
15
- eval "$#{stream} = StringIO.new"
16
- yield
17
- result = eval("$#{stream}").string
18
- ensure
19
- eval("$#{stream} = #{stream.upcase}")
20
- end
21
-
22
- result
23
- end
24
-
25
- alias :silence :capture
26
-
27
- class AppTest < MiniTest::Unit::TestCase
28
- def template_name
29
- 'book'
30
- end
31
-
32
- def setup
33
- silence(:stdout) do
34
- args = ['new', destination_root, template_name]
35
- Bookery::CLI.start(args)
36
- end
37
- end
38
-
39
- def teardown
40
- ::FileUtils.rm_rf(destination_root)
41
- end
42
-
43
- def destination_root
44
- 'sandbox'
45
- end
46
-
47
- def assert_file(relative_path)
48
- assert File.exist?(File.join(destination_root, relative_path))
49
- end
50
-
51
- def assert_dir(relative_path)
52
- assert File.directory?(File.join(destination_root, relative_path))
53
- end
54
- end
11
+ require_relative '../lib/bookery'
metadata CHANGED
@@ -1,129 +1,129 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bookery
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
5
- prerelease:
4
+ version: 0.1.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - David Muto
9
8
  autorequire:
10
- bindir: bin
9
+ bindir: libexec
11
10
  cert_chain: []
12
- date: 2013-12-08 00:00:00.000000000 Z
11
+ date: 2014-01-03 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
- name: activesupport
14
+ name: thor
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - ~>
20
18
  - !ruby/object:Gem::Version
21
- version: '0'
19
+ version: 0.18.1
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - ~>
28
25
  - !ruby/object:Gem::Version
29
- version: '0'
26
+ version: 0.18.1
30
27
  - !ruby/object:Gem::Dependency
31
- name: i18n
28
+ name: kramdown
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - ~>
36
32
  - !ruby/object:Gem::Version
37
- version: '0'
33
+ version: 1.3.0
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - ~>
44
39
  - !ruby/object:Gem::Version
45
- version: '0'
40
+ version: 1.3.0
41
+ - !ruby/object:Gem::Dependency
42
+ name: coderay
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ~>
46
+ - !ruby/object:Gem::Version
47
+ version: 1.1.0
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: 1.1.0
46
55
  - !ruby/object:Gem::Dependency
47
56
  name: bundler
48
57
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
58
  requirements:
51
59
  - - ~>
52
60
  - !ruby/object:Gem::Version
53
- version: '1.3'
61
+ version: 1.3.5
54
62
  type: :development
55
63
  prerelease: false
56
64
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
65
  requirements:
59
66
  - - ~>
60
67
  - !ruby/object:Gem::Version
61
- version: '1.3'
68
+ version: 1.3.5
62
69
  - !ruby/object:Gem::Dependency
63
70
  name: rake
64
71
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
72
  requirements:
67
- - - ! '>='
73
+ - - ~>
68
74
  - !ruby/object:Gem::Version
69
- version: '0'
75
+ version: 10.1.1
70
76
  type: :development
71
77
  prerelease: false
72
78
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
79
  requirements:
75
- - - ! '>='
80
+ - - ~>
76
81
  - !ruby/object:Gem::Version
77
- version: '0'
82
+ version: 10.1.1
78
83
  - !ruby/object:Gem::Dependency
79
84
  name: minitest
80
85
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
86
  requirements:
83
- - - ! '>='
87
+ - - ~>
84
88
  - !ruby/object:Gem::Version
85
- version: '0'
89
+ version: 5.2.0
86
90
  type: :development
87
91
  prerelease: false
88
92
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
93
  requirements:
91
- - - ! '>='
94
+ - - ~>
92
95
  - !ruby/object:Gem::Version
93
- version: '0'
96
+ version: 5.2.0
94
97
  - !ruby/object:Gem::Dependency
95
- name: guard-minitest
98
+ name: mocha
96
99
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
100
  requirements:
99
- - - ! '>='
101
+ - - ~>
100
102
  - !ruby/object:Gem::Version
101
- version: '0'
103
+ version: 0.14.0
102
104
  type: :development
103
105
  prerelease: false
104
106
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
107
  requirements:
107
- - - ! '>='
108
+ - - ~>
108
109
  - !ruby/object:Gem::Version
109
- version: '0'
110
+ version: 0.14.0
110
111
  - !ruby/object:Gem::Dependency
111
112
  name: simplecov
112
113
  requirement: !ruby/object:Gem::Requirement
113
- none: false
114
114
  requirements:
115
- - - ! '>='
115
+ - - ~>
116
116
  - !ruby/object:Gem::Version
117
- version: '0'
117
+ version: 0.8.2
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
121
  requirements:
123
- - - ! '>='
122
+ - - ~>
124
123
  - !ruby/object:Gem::Version
125
- version: '0'
126
- description: A gem (that, will) gives you the tools you need to write your own book
124
+ version: 0.8.2
125
+ description: "\n A gem that gives you the tools you need to write your own book\n
126
+ \ "
127
127
  email:
128
128
  - david.muto@gmail.com
129
129
  executables:
@@ -132,68 +132,96 @@ extensions: []
132
132
  extra_rdoc_files: []
133
133
  files:
134
134
  - .gitignore
135
+ - .travis.yml
135
136
  - Gemfile
136
- - Gemfile.lock
137
- - Guardfile
138
- - LICENSE.txt
137
+ - LICENSE
139
138
  - README.md
140
139
  - Rakefile
141
- - bin/bookery
142
140
  - bookery.gemspec
141
+ - docs/config.md
142
+ - docs/contributing.md
143
+ - docs/editing.md
144
+ - docs/project.md
143
145
  - lib/bookery.rb
144
146
  - lib/bookery/book.rb
145
- - lib/bookery/chapter.rb
146
147
  - lib/bookery/cli.rb
148
+ - lib/bookery/config.rb
149
+ - lib/bookery/factories/chapter_factory.rb
150
+ - lib/bookery/factories/publisher_factory.rb
151
+ - lib/bookery/processors/include_processor.rb
152
+ - lib/bookery/project.rb
153
+ - lib/bookery/publishers/html_publisher.rb
147
154
  - lib/bookery/version.rb
148
- - templates/book/Gemfile
149
- - templates/book/README.md
150
- - templates/book/assets/.empty_directory
151
- - templates/book/book/.empty_directory
152
- - templates/book/book/en/.empty_directory
153
- - templates/book/config.yml
154
- - templates/sample/Gemfile
155
- - templates/sample/README.md
156
- - templates/sample/book/en/01-introduction/01-intro-to-book.md
157
- - templates/sample/book/en/02-second-chapter/01-first-things-first.md
158
- - templates/sample/book/en/02-second-chapter/02-before_intro.md
159
- - templates/sample/config.yml
155
+ - libexec/bookery
156
+ - templates/basic/Gemfile.tt
157
+ - templates/basic/assets/css/base.css
158
+ - templates/basic/assets/css/layout.css
159
+ - templates/basic/assets/css/modules/code-block.css
160
+ - templates/basic/assets/includes/.empty_directory
161
+ - templates/basic/assets/style.css
162
+ - templates/basic/assets/templates/template.html.erb
163
+ - templates/basic/book/en/001-first-chapter/01-chapter-file.md
164
+ - templates/basic/config.yml
160
165
  - test/bookery/book_test.rb
161
- - test/bookery/chapter_test.rb
162
166
  - test/bookery/cli_test.rb
167
+ - test/bookery/config_test.rb
168
+ - test/bookery/factories/chapter_factory_test.rb
169
+ - test/bookery/factories/publisher_factory_test.rb
170
+ - test/bookery/processor/include_processor_test.rb
171
+ - test/bookery/project_test.rb
172
+ - test/bookery/publishers/html_publisher_test.rb
173
+ - test/data/project/Gemfile.tt
174
+ - test/data/project/assets/images/cover.png
175
+ - test/data/project/assets/includes/ruby/chapter2.rb
176
+ - test/data/project/assets/style.css
177
+ - test/data/project/assets/templates/template.html.erb
178
+ - test/data/project/book/en/001-first-chapter/01-chapter-file.md
179
+ - test/data/project/book/en/002-second-chapter/01-chapter-file.md
180
+ - test/data/project/book/en/002-second-chapter/02-second-chapter-file.md
181
+ - test/data/project/book/es/.git-keep
182
+ - test/data/project/config.yml
163
183
  - test/test_helper.rb
164
184
  homepage: https://github.com/pseudomuto/bookery
165
185
  licenses:
166
186
  - MIT
187
+ metadata: {}
167
188
  post_install_message:
168
189
  rdoc_options: []
169
190
  require_paths:
170
191
  - lib
171
192
  required_ruby_version: !ruby/object:Gem::Requirement
172
- none: false
173
193
  requirements:
174
- - - ! '>='
194
+ - - '>='
175
195
  - !ruby/object:Gem::Version
176
196
  version: '0'
177
- segments:
178
- - 0
179
- hash: 3704780808993066549
180
197
  required_rubygems_version: !ruby/object:Gem::Requirement
181
- none: false
182
198
  requirements:
183
- - - ! '>='
199
+ - - '>='
184
200
  - !ruby/object:Gem::Version
185
201
  version: '0'
186
- segments:
187
- - 0
188
- hash: 3704780808993066549
189
202
  requirements: []
190
203
  rubyforge_project:
191
- rubygems_version: 1.8.23
204
+ rubygems_version: 2.0.14
192
205
  signing_key:
193
- specification_version: 3
206
+ specification_version: 4
194
207
  summary: A simple way to author your book
195
208
  test_files:
196
209
  - test/bookery/book_test.rb
197
- - test/bookery/chapter_test.rb
198
210
  - test/bookery/cli_test.rb
211
+ - test/bookery/config_test.rb
212
+ - test/bookery/factories/chapter_factory_test.rb
213
+ - test/bookery/factories/publisher_factory_test.rb
214
+ - test/bookery/processor/include_processor_test.rb
215
+ - test/bookery/project_test.rb
216
+ - test/bookery/publishers/html_publisher_test.rb
217
+ - test/data/project/Gemfile.tt
218
+ - test/data/project/assets/images/cover.png
219
+ - test/data/project/assets/includes/ruby/chapter2.rb
220
+ - test/data/project/assets/style.css
221
+ - test/data/project/assets/templates/template.html.erb
222
+ - test/data/project/book/en/001-first-chapter/01-chapter-file.md
223
+ - test/data/project/book/en/002-second-chapter/01-chapter-file.md
224
+ - test/data/project/book/en/002-second-chapter/02-second-chapter-file.md
225
+ - test/data/project/book/es/.git-keep
226
+ - test/data/project/config.yml
199
227
  - test/test_helper.rb
data/Gemfile.lock DELETED
@@ -1,64 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- bookery (0.0.2)
5
- activesupport
6
- i18n
7
-
8
- GEM
9
- remote: https://rubygems.org/
10
- specs:
11
- activesupport (3.2.16)
12
- i18n (~> 0.6, >= 0.6.4)
13
- multi_json (~> 1.0)
14
- celluloid (0.15.2)
15
- timers (~> 1.1.0)
16
- coderay (1.1.0)
17
- docile (1.1.1)
18
- ffi (1.9.3)
19
- formatador (0.2.4)
20
- guard (2.2.4)
21
- formatador (>= 0.2.4)
22
- listen (~> 2.1)
23
- lumberjack (~> 1.0)
24
- pry (>= 0.9.12)
25
- thor (>= 0.18.1)
26
- guard-minitest (2.1.2)
27
- guard (~> 2.0)
28
- minitest (>= 3.0)
29
- i18n (0.6.9)
30
- listen (2.3.1)
31
- celluloid (>= 0.15.2)
32
- rb-fsevent (>= 0.9.3)
33
- rb-inotify (>= 0.9)
34
- lumberjack (1.0.4)
35
- method_source (0.8.2)
36
- minitest (5.1.0)
37
- multi_json (1.8.2)
38
- pry (0.9.12.4)
39
- coderay (~> 1.0)
40
- method_source (~> 0.8)
41
- slop (~> 3.4)
42
- rake (10.1.0)
43
- rb-fsevent (0.9.3)
44
- rb-inotify (0.9.2)
45
- ffi (>= 0.5.0)
46
- simplecov (0.8.2)
47
- docile (~> 1.1.0)
48
- multi_json
49
- simplecov-html (~> 0.8.0)
50
- simplecov-html (0.8.0)
51
- slop (3.4.7)
52
- thor (0.18.1)
53
- timers (1.1.0)
54
-
55
- PLATFORMS
56
- ruby
57
-
58
- DEPENDENCIES
59
- bookery!
60
- bundler (~> 1.3)
61
- guard-minitest
62
- minitest
63
- rake
64
- simplecov