hyla 1.0.1 → 1.0.2

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 (48) hide show
  1. checksums.yaml +8 -8
  2. data/README.adoc +44 -84
  3. data/bin/hyla +23 -7
  4. data/data/chm-status-weeks-0601-1001.html +913 -0
  5. data/documentation/image/access_local_file.png +0 -0
  6. data/documentation/image/email_send.png +0 -0
  7. data/{hyla_frog.jpg → documentation/image/hyla_frog.jpg} +0 -0
  8. data/documentation/introduction.adoc +433 -0
  9. data/hyla.gemspec +7 -5
  10. data/lib/hyla.rb +4 -2
  11. data/lib/hyla/commands/generate.rb +102 -76
  12. data/lib/hyla/commands/sendmail.rb +97 -0
  13. data/lib/hyla/commands/watch.rb +6 -4
  14. data/lib/hyla/configuration.rb +49 -26
  15. data/lib/hyla/project.rb +1 -1
  16. data/lib/resources/backends/slim/revealjs/document.html.slim +1 -1
  17. data/lib/resources/backends/slim/revealjs/section.html.slim +3 -3
  18. data/lib/resources/revealjs/plugin/notes/notes.html +252 -248
  19. data/lib/resources/styles/asciidoctor.css +1 -1
  20. data/lib/resources/styles/colony.css +1 -1
  21. data/lib/resources/styles/foundation-lime.css +1 -1
  22. data/lib/resources/styles/foundation-potion.css +1 -1
  23. data/lib/resources/styles/foundation.css +1 -1
  24. data/lib/resources/styles/github.css +3 -3
  25. data/lib/resources/styles/golo.css +3 -3
  26. data/lib/resources/styles/iconic.css +1 -1
  27. data/lib/resources/styles/maker.css +2 -2
  28. data/lib/resources/styles/readthedocs.css +1 -1
  29. data/lib/resources/styles/redhat.css +1 -654
  30. data/lib/resources/styles/riak.css +1 -1
  31. data/lib/resources/styles/rocket-panda.css +1 -1
  32. data/lib/resources/styles/rubygems.css +1 -1
  33. data/lib/templates/_config.yml +2 -2
  34. data/lib/templates/sample/slideshow_revealjs.adoc +240 -6
  35. metadata +79 -18
  36. data/Gemfile.lock +0 -77
  37. data/data/generated/A_Introduction_module/1_Chapter.adoc +0 -42
  38. data/data/generated/A_Introduction_module/2_Chapter.adoc +0 -31
  39. data/data/generated/A_Introduction_module/3_Chapter.adoc +0 -23
  40. data/data/generated/A_Introduction_module/A_Introduction_module_AllSlides.index +0 -9
  41. data/data/generated/B_Instruction_module/1_Chapter.adoc +0 -27
  42. data/data/generated/B_Instruction_module/B_Instruction_module_AllSlides.index +0 -7
  43. data/data/generated/C_Installation_module/1_Chapter.adoc +0 -14
  44. data/data/generated/C_Installation_module/2_Chapter.adoc +0 -17
  45. data/data/generated/C_Installation_module/C_Installation_module_AllSlides.index +0 -8
  46. data/data/generated/camel_AllSlides.index +0 -9
  47. data/lib/templates/book/GemFile +0 -5
  48. data/scenario.adoc +0 -152
Binary file
@@ -0,0 +1,433 @@
1
+ :toc:
2
+ :data-uri:
3
+ :linkattrs:
4
+ :sectanchors:
5
+ :setlinks:
6
+
7
+ toc::[]
8
+
9
+ == Introduction
10
+
11
+ image:https://raw.github.com/cmoulliard/hyla/master/documentation/image/hyla_frog.jpg[Hyla, 100, 100, role="left"] **Hyla** is a Ruby command line tool to create a new
12
+ documentation/training/blog/static web site project, add artefacts (articles, blog, audio, video, content, code source, ...), render it in HTML, SlideShow, ... using asciidoc(tor) as markup language.
13
+
14
+ Until now, hyla looks like asciidoctor client but is is more similar to Jekyll on the principle but here we support 'asciidoc, asciidoctor' formats and not markdown.
15
+
16
+ The tool allows to :
17
+
18
+ - Generate slideshow presentations (deckJs, RevealJS) - https://twitter.com/cmoulliard/status/421587832159756288,
19
+ - Setup a blank project,
20
+ - Setup a project from template (book, training, training-exercises, documentation/training content, ...
21
+ - Create a documentation/training project (including directories + files) from a Table of Content
22
+ - Generate a one HTML file (= sum of all the asciidoc files) for slideshow (or trainer presentation) using index files (= file containing links to include other files)
23
+ - Render html content from asciidoc (http://asciidoctor.org/docs/user-manual)
24
+ - Render html using different styles
25
+ - Watch files (LiveReload - WebSocket) and render them if a modification has been detected or file added
26
+ ...
27
+
28
+ It is not a replacement or a concurrent of 'awestruct'. Idea is to package in hyla css styles, backends, samples (article, image, table, audio, video, book, report)
29
+ and collection of templates (blog, static web site, awestruct, training, documentation = collection of modules, ... ) to boost process to develop documentation,
30
+ training content (reason why hyla will assist you to create from a Table of content the structure of directories + asciidoc files (a file = a chapter =a module)),
31
+ blog web, book, articles, static web site site ... without the need to install git projects (everything is packaged in one tool like jekyll).
32
+
33
+ Reason / Motivation about the packaging : many end users are not developers/engineers and they enjoy to have one tool to use and not a procedure they should clone git repo, build, copy resources manually
34
+ to finally build a documentation/training/blog ....
35
+
36
+ hyla should be released regularly and will contain last releases of styles/backends/awestructs ...
37
+ hyla will reuse stylesheets created from 'asciidoctor-stylesheet-factory' and 'asciidoctor-backends' for HTML5, RevealJS, DeckJS, DockBook ...
38
+ hyla will include 'awestruct'
39
+
40
+ The Hyla project name comes from an arboreal http://en.wikipedia.org/wiki/Hyla[frog] living in equatorial regions of Europe, Asia or Americas. Its name was inspired by the companion of Hercule (Hylas) in Greek mythology.
41
+
42
+ == Prerequisites
43
+
44
+ - https://github.com/sstephenson/ruby-build#readme[rbenv-build] which let you to deploy a pre-compiled version of Ruby
45
+ - https://github.com/sstephenson/rbenv[rbenv] to manage different versions of Ruby
46
+ - https://www.ruby-lang.org/en/[Ruby] 1.9.3-p484
47
+ - http://guides.rubygems.org/[RubyGems] to install Ruby Applications
48
+ - http://feedback.livereload.com/knowledgebase/articles/86242-how-do-i-install-and-use-the-browser-extensions-[How do I install and use the browser extensions for LiveReload].
49
+ Be sure to enable the option “Allow access to file URLs” checkbox in Tools > Extensions > LiveReload after installation of Chrome Extension.
50
+
51
+ image::image/access_local_file.png[Access Local File,600,150]
52
+
53
+ == Installation
54
+
55
+ Use `gem install` command to deploy Hyla :
56
+
57
+ $ gem install hyla -y -v 1.0.x
58
+
59
+ NOTE : The option `-y` will tell to rubyGems to deploy the gem but also the dependencies required
60
+
61
+ NOTE : The option `-v` tells to gem installer to deploy a specific version / release. The release number will depend on the version available (1.0.1, 1.0.2, ...)
62
+
63
+ An alternative is to create a Gemfile and add this line :
64
+
65
+ gem 'hyla'
66
+
67
+ And then execute:
68
+
69
+ $ bundle
70
+
71
+ **Or** install it yourself as:
72
+
73
+ $ gem install hyla -v 1.0.1
74
+
75
+ == For Developer's only
76
+
77
+ Clone Git project locally, move to Hyla directory and execute the following commands
78
+ gem build hyla.gemspec
79
+ gem install hyla-1.0.x.gem
80
+
81
+ == To publish Hyla to Gem Repo
82
+
83
+ gem build hyla.gemspec
84
+ gem install hyla-1.0.x.gem
85
+ gem push hyla-1.0.x.gem
86
+
87
+ == Usage
88
+
89
+ Open a terminal and move to the folder where you would like to create a new project or develop an existing. As Hyla is command line tool, it will be used with one of the following commands :
90
+
91
+ create Creates a new file from asciidoc artefacts for an existing project
92
+ generate Generate modules and asciidoc files from an asciidoc Table Of Content file
93
+ help Display global or [command] help documentation.
94
+ new Creates a new Hyla project using a template or blank to the PATH specified
95
+ serve Serve locally your site
96
+ watch Watch directories for any change, add or file deleted and render document (HTML5)
97
+
98
+ More info about options and commands available can be find by running the `command line tool`
99
+
100
+ hyla --help
101
+
102
+ == Scenario
103
+
104
+ ==== 1. Delete Temp directory
105
+
106
+ rm -rf ~/hyla/MyBlankProject/
107
+ rm -rf ~/hyla/MyBookProject
108
+ rm -rf ~/hyla/MyPdfProject/
109
+ rm -rf ~/hyla/MyTocProject/
110
+ rm -rf ~/hyla/MyTrainingProject/
111
+ rm -rf ~/hyla/MyTrainingExercisesProject/
112
+ rm -rf ~/hyla/MyDeckSlideShow/
113
+ rm -rf ~/hyla/MyRevealSlideShow/
114
+
115
+ ==== 2. Install Gem Hyla
116
+
117
+ gem install hyla -v _version_
118
+
119
+ where _version_ could be 1.0.1
120
+
121
+ == 1. Blank Project & Artefacts
122
+
123
+ Using hyla we will create a new project (= directory) and add artefacts (article, audio, video, image, source, table)
124
+
125
+ == 1. Create a Blank Project (with or without --force option)
126
+
127
+ hyla new --blank ~/hyla/MyBlankProject
128
+ hyla new --blank ~/hyla/MyBlankProject --force
129
+
130
+ == 2. Create a Blank Project without _config.yaml config file, add artefact
131
+
132
+ - Clean and create a MyBlankProject (= directory) using --force option
133
+
134
+ cd ~/hyla
135
+ rm -rf MyBlankProject/
136
+ hyla new --blank MyBlankProject --force
137
+
138
+ - Create Asciidoc files from samples (book, article, image, audio, ...)
139
+
140
+ hyla create --t asciidoc --a article --d ~/hyla/MyBlankProject
141
+ hyla create --t asciidoc --a book --d ~/hyla/MyBlankProject
142
+ hyla create --t asciidoc --a image --d ~/hyla/MyBlankProject
143
+ hyla create --t asciidoc --a audio --d ~/hyla/MyBlankProject
144
+ hyla create --t asciidoc --a video --d ~/hyla/MyBlankProject
145
+ hyla create --t asciidoc --a source --d ~/hyla/MyBlankProject
146
+ hyla create --t asciidoc --a table --d ~/hyla/MyBlankProject
147
+
148
+ == 3. Create a Blank Project using _config.yaml config file, add artefacts
149
+
150
+ - Clean and create a MyBlankProject (= directory) using --force option
151
+
152
+ cd ~/hyla
153
+ rm -rf MyBlankProject/
154
+ hyla new --blank MyBlankProject --force
155
+ cd MyBlankProject
156
+
157
+ - Create Asciidoc files from samples (book, article, image, audio, ...)
158
+
159
+ hyla create --a article
160
+ hyla create --a book
161
+ hyla create --a image
162
+ hyla create --a audio
163
+ hyla create --a video
164
+ hyla create --a source
165
+ hyla create --a table
166
+
167
+ === 4. Generate HTML Content of an existing project (asciidoc 2 html)
168
+
169
+ hyla generate --r adoc2html --s ~/hyla/MyBlankProject/ --d ~/hyla/MyBlankProject/generated_content
170
+
171
+ === 5. Generate HTML Content of an existing project (asciidoc 2 html) with a different style
172
+
173
+ Styles available : liberation, asciidoctor, colony, foundation, foundation-lime, foundation-potion, github, golo, iconic, maker, readthedocs, riak, rocket-panda, rubygems
174
+
175
+ hyla generate --r adoc2html --s ~/hyla/MyBlankProject/ --d ~/hyla/MyBlankProject/generated_content --style liberation
176
+ hyla generate --r adoc2html --s ~/hyla/MyBlankProject/ --d ~/hyla/MyBlankProject/generated_content --style github
177
+ hyla generate --r adoc2html --s ~/hyla/MyBlankProject/ --d ~/hyla/MyBlankProject/generated_content --style foundation
178
+
179
+ === 6. Generate HTML Content within project
180
+
181
+ hyla generate --r adoc2html --s . --d generated_content
182
+
183
+ === 7. Generate HTML Content within project & using Config File
184
+
185
+ As destination directory is not longer '.' (which is the case when we add artefacts using `hyla create` command, then we must change the destination directory to `generated_content`. the original file is
186
+ still available as it will backup by ruby
187
+
188
+ ruby -i.bak -pe 'sub(%r{destination: .},"destination: generated_content")' _config.yml
189
+ hyla generate
190
+ hyla generate --style foundation
191
+
192
+
193
+ == 2. Project from Template
194
+
195
+ === 1. Create a project using a template (training)
196
+
197
+ cd ~/hyla
198
+ hyla new --t training MyTrainingProject
199
+
200
+ // TODO Refactor Training Exercises Template
201
+ hyla new --t training-exercises MyTrainingExercisesProject
202
+
203
+ // TODO - Add images
204
+ hyla new --t book MyBookProject
205
+
206
+ === 2. Generate content and watch it
207
+
208
+ cd ~/hyla/MyTrainingProject
209
+ ruby -i.bak -pe 'sub(%r{destination: .},"destination: generated_content")' _config.yml
210
+ hyla generate
211
+
212
+ hyla watch --s ~/hyla/MyTrainingProject/ --d ~/hyla/MyTrainingProject/generated_content
213
+
214
+ == 3. Table Of Content To asciidoc
215
+
216
+ === 1. Generate an asciidoctor project from a Table of Content
217
+
218
+ The entry point of a Documention site, Training, Publication or Book will consist most of the time to create
219
+ a Table Of Content which is a collection of modules with chapters that we will develop. As this process to elaborate
220
+ the structure of the project will consume lot of time/effort, Hyla will simplify your life as it allows from a TOC file
221
+
222
+
223
+ = A. Introduction module
224
+ >> This is the module 'A. Introduction'
225
+ == 1. Chapter
226
+ This is a chapter about ...
227
+ == 2. Chapter
228
+ This is a Chapter about ...
229
+ === 2.1. Section
230
+ ...
231
+ = B. Instruction module
232
+ >> This is the module 'B. Instruction module'
233
+ == 1. Chapter
234
+ This is a Chapter about ...`
235
+
236
+ to generate a collection of folders (= modules) containing files which represent the chapters (== Titles of the TOC ).
237
+ For each module (= Module), an index file is also created including the files listed in a module. That can be serve to generate a
238
+ slideshow presentation using as backend (DeckJS, DZSlides, ...) later on.
239
+
240
+ - Delete existing project
241
+
242
+ cd ~/hyla
243
+ rm -rf MyTocProject/
244
+
245
+ - Generate asciidoc files from a Table Of Content (= collection of folders and files) and next HTML
246
+
247
+ hyla generate --r toc2adoc --p my-project --d ~/hyla/MyTocProject/ --toc ~/MyProjects/hyla/data/toc.adoc
248
+ hyla generate --r adoc2html --s ~/hyla/MyTocProject/ --d ~/hyla/MyTocProject/generated_content
249
+
250
+ Example about what is generated
251
+
252
+ >> Project Name : my-project <<
253
+ >> Directory created : ~/hyla/MyTocProject/A_Introduction_module <<
254
+ = File created : 1_Chapter
255
+ = File created : 2_Chapter
256
+ = File created : 3_Chapter
257
+ >> Directory created : ~/Temp/MyTocProject/B_Instruction_module <<
258
+ = File created : 1_Chapter
259
+ >> Directory created : /Temp/MyTocProject/C_Installation_module <<
260
+ = File created : 1_Chapter
261
+ = File created : 2_Chapter
262
+
263
+
264
+ - Watch asciidoc files and generate new HTML content when a modification is detected
265
+
266
+ While you develop asciidoc(tor) documents, it is interesting to consult the files rendered in HTML. Hyla supports such option with LiverReload
267
+ as a WebSocket server is exposed for the browser. To watch files and let's asciidoctor to render them, simply open a terminal and provide as
268
+ parameter the source directory containing the files to be watched.
269
+
270
+ hyla watch --s ~/hyla/MyTocProject/ --d ~/hyla/MyTocProject/generated_content
271
+
272
+ === 2. Generate an asciidoctor project from a Table of Content using YAML config file and watch content
273
+
274
+ rm -rf ~/hyla/MyTocProject
275
+ cd ~/hyla
276
+ hyla new --blank MyTocProject
277
+ cd MyTocProject
278
+ hyla generate --r toc2adoc
279
+
280
+ # Change destination in config files or pass info as option
281
+ # cd ../MyTocProject/
282
+ # subl _config.yml
283
+ hyla generate --r adoc2html
284
+
285
+ hyla watch --s ~/hyla/MyTocProject/ --d generated_content
286
+
287
+ === 3. Generate a DeckJS Slideshow for a module
288
+
289
+ cd ~/hyla/MyTocProject
290
+ hyla generate --backend deckjs --s A_Introduction_module/ --d A_Introduction_module/generated_content --r index2slide
291
+
292
+ === 4. Generate a DeckJS Slideshow for a Project (all the TOC)
293
+
294
+ cd ~/hyla/MyTocProject
295
+ hyla generate --backend deckjs --s . --d generated_content --r index2slide --trace
296
+
297
+ == 5. Server content locally - HTTP Server
298
+
299
+ To simplify your life, a simple HTTP Server can be started by Hyla and will allow to consult/browse HTML files generated. In this case, start this
300
+ Hyla command in another Terminal
301
+
302
+ hyla serve -P 4000 -H localhost -b /hyla/ --out_dir ~/hyla/MyTrainingProject/generated_content/
303
+
304
+ == 6. Generate a Slideshow
305
+
306
+ === 1. DeckJS
307
+
308
+ rm -rf ~/hyla/MyDeckSlideShow
309
+ cd ~/hyla
310
+ hyla new --blank MyDeckSlideShow
311
+
312
+ hyla create --t slideshow --a deckjs --d MyDeckSlideShow
313
+ hyla generate --backend deckjs --s ~/hyla/MyDeckSlideShow --d ~/hyla/MyDeckSlideShow/generated_content --r adoc2slide
314
+
315
+ === 2. Different DeckJS Style options
316
+
317
+ hyla generate --backend deckjs --s ~/hyla/MyDeckSlideShow --d ~/hyla/MyDeckSlideShow/generated_content --r index2slide --a deckjs_theme=swiss,deckjs_transition=fade
318
+ hyla generate --backend deckjs --s ~/hyla/MyDeckSlideShow --d ~/hyla/MyDeckSlideShow/generated_content --r index2slide --a deckjs_theme=web-2.0,deckjs_transition=horizontal-slide
319
+
320
+ === 3. RevealJS
321
+
322
+ rm -rf ~/hyla/MyRevealSlideShow
323
+ cd ~/hyla
324
+ hyla new --blank MyRevealSlideShow
325
+
326
+ hyla create --t slideshow --a revealjs --d MyRevealSlideShow
327
+
328
+ cd MyRevealSlideShow
329
+
330
+ hyla generate --backend revealjs --s . --d generated_content --r adoc2slide
331
+
332
+ open http://localhost:4000/hyla/slideshow_revealjs.html &
333
+
334
+ hyla serve -P 4000 -H localhost -b /hyla/ --out_dir ~/hyla/MyRevealSlideShow/generated_content/
335
+
336
+ == 7. Generate a PDF
337
+
338
+ A PDF document can be created using the rendering option `html2pdf`. To render the HTML file, Hyla uses the following Ruby
339
+ libraries https://github.com/pdfkit/pdfkit[pdfkit] and https://github.com/wkhtmltopdf/wkhtmltopdf[wkhtmltopdf].
340
+
341
+ - Clean and create a MyPdfProject (= directory)
342
+
343
+ cd ~/hyla
344
+ rm -rf MyPdfroject/
345
+ hyla new --blank MyPdfProject --force
346
+ cd MyPdfProject
347
+
348
+ - Create 2 Asciidoc files from samples (book, image)
349
+
350
+ hyla create --a book
351
+ hyla create --a image
352
+
353
+ - Change destination firm local '.' to 'generated_content'
354
+
355
+ ruby -i.bak -pe 'sub(%r{destination: .},"destination: generated_content")' _config.yml
356
+
357
+ - Generate HTML content using foundation stylesheet
358
+
359
+ hyla generate --style foundation
360
+
361
+ - We change the rendering from adoc2html to html2pdf
362
+
363
+ ruby -i.bak -pe 'sub(%r{rendering: adoc2html},"rendering: html2pdf")' _config.yml
364
+
365
+ - Source directory & Destination directory
366
+
367
+ ruby -i.bak -pe 'sub(%r{source: .},"source: ./generated_content")' _config.yml
368
+ ruby -i.bak -pe 'sub(%r{destination: generated_content},"destination: ./generated_content/pdf")' _config.yml
369
+
370
+ - We will generate the PDF file for the image and book
371
+
372
+ hyla generate -f asciidoc_book.html
373
+ hyla generate -f asciidoc_image.html
374
+
375
+ - Result can be opened and viewed
376
+
377
+ open generated_content/pdf/asciidoc_book.pdf
378
+ open generated_content/pdf/asciidoc_image.pdf
379
+
380
+ == 7. Send Email
381
+
382
+ An email can be created using as attachment an HTML file based on the information, parameters provided into the
383
+ _config.yaml file. These parameters will allow to populate the email message and add as attachment the HTML
384
+ file generated from an asciidoc file.
385
+
386
+ email_attributes:
387
+ from: "Charles Moulliard <ch007m@gmail.com>"
388
+ to: 'cmoulliard@apache.com'
389
+ subject: "This is a beautiful HTML document created by Asciidoctor and Hyla Tool"
390
+ # GMAIL
391
+ smtp_server: 'smtp.gmail.com'
392
+ port: '587'
393
+ enable_starttls: 'true'
394
+ user: 'your_gmail_user'
395
+ password: 'your_gmail_password!'
396
+
397
+ Two new options are required to process the request on the command line or using _config.yaml file
398
+
399
+ location: ./generated_content
400
+ file: name_of_html_file
401
+
402
+ - Create a Blank project
403
+
404
+ cd ~/hyla
405
+ rm -rf MyEmailProject/
406
+ hyla new --blank MyEmailProject --force
407
+ cd MyEmailProject
408
+
409
+ - Edit the _config.yaml file and add the parameters required (see previously)
410
+
411
+ - Change destination firm local '.' to 'generated_content'
412
+
413
+ ruby -i.bak -pe 'sub(%r{destination: .},"destination: generated_content")' _config.yml
414
+
415
+ - Generate HTML content using foundation stylesheet
416
+
417
+ hyla generate --style asciidoctor
418
+
419
+ - Send email to the SMTP server defined
420
+
421
+ hyla sendmail
422
+
423
+ - Consult the message received in your mailbox
424
+
425
+ image::image/email_send.png[]
426
+
427
+
428
+
429
+
430
+
431
+
432
+
433
+
data/hyla.gemspec CHANGED
@@ -23,16 +23,18 @@ Gem::Specification.new do |s|
23
23
  s.add_development_dependency 'rdoc', '~> 3.11'
24
24
 
25
25
  # Ruby command-line executables
26
- s.add_runtime_dependency 'commander', '~> 4.1.3'
27
- s.add_runtime_dependency 'asciidoctor', '~> 0.1.4'
26
+ s.add_runtime_dependency 'commander', '~> 4.1', '>= 4.1.3'
27
+ s.add_runtime_dependency 'asciidoctor', '~> 0.1', '>= 0.1.4'
28
28
  s.add_runtime_dependency 'em-websocket', '~> 0.5'
29
29
  s.add_runtime_dependency 'multi_json', '~> 1.8'
30
30
  s.add_runtime_dependency 'tilt'
31
31
  s.add_runtime_dependency 'haml'
32
32
  s.add_runtime_dependency 'slim'
33
- s.add_runtime_dependency 'guard', '~> 1.8.3'
34
- s.add_runtime_dependency 'listen', '~> 1.3.1'
35
- s.add_runtime_dependency 'safe_yaml', '~> 1.0.0'
33
+ s.add_runtime_dependency 'guard', '~> 1.8', '>= 1.8.3'
34
+ s.add_runtime_dependency 'listen', '~> 1.3', '>= 1.3.1'
35
+ s.add_runtime_dependency 'safe_yaml', '~> 1.0', '>= 1.0.0'
36
+ s.add_runtime_dependency 'mail', '~> 2.5', '>= 2.5.4'
37
+ s.add_runtime_dependency 'pdfkit', '~> 0.5', '>= 0.5.4'
36
38
 
37
39
  # Colorize Text Terminal
38
40
  s.add_runtime_dependency 'colorator', '~> 0.1'