epuber 0.6.0 → 0.7.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 (207) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +5 -3
  3. data/README.md +3 -11
  4. data/bin/epuber +2 -3
  5. data/epuber.gemspec +3 -6
  6. data/lib/epuber/book/contributor.rb +1 -1
  7. data/lib/epuber/book/file_request.rb +1 -1
  8. data/lib/epuber/book/target.rb +1 -2
  9. data/lib/epuber/book/toc_item.rb +1 -2
  10. data/lib/epuber/book.rb +1 -2
  11. data/lib/epuber/checker/text_checker.rb +1 -1
  12. data/lib/epuber/checker.rb +1 -2
  13. data/lib/epuber/checker_transformer_base.rb +1 -0
  14. data/lib/epuber/command/build.rb +1 -2
  15. data/lib/epuber/command/compile.rb +1 -1
  16. data/lib/epuber/command/init.rb +1 -2
  17. data/lib/epuber/command/server.rb +1 -2
  18. data/lib/epuber/command.rb +1 -1
  19. data/lib/epuber/compiler/compilation_context.rb +1 -1
  20. data/lib/epuber/compiler/file_database.rb +3 -5
  21. data/lib/epuber/compiler/file_finders/abstract.rb +1 -1
  22. data/lib/epuber/compiler/file_finders/imaginary.rb +1 -2
  23. data/lib/epuber/compiler/file_finders/normal.rb +1 -1
  24. data/lib/epuber/compiler/file_resolver.rb +1 -1
  25. data/lib/epuber/compiler/file_stat.rb +0 -1
  26. data/lib/epuber/compiler/file_types/abstract_file.rb +1 -2
  27. data/lib/epuber/compiler/file_types/bade_file.rb +1 -2
  28. data/lib/epuber/compiler/file_types/coffee_script_file.rb +1 -2
  29. data/lib/epuber/compiler/file_types/container_xml_file.rb +1 -2
  30. data/lib/epuber/compiler/file_types/generated_file.rb +1 -2
  31. data/lib/epuber/compiler/file_types/ibooks_display_options_file.rb +1 -7
  32. data/lib/epuber/compiler/file_types/image_file.rb +1 -2
  33. data/lib/epuber/compiler/file_types/mime_type_file.rb +1 -2
  34. data/lib/epuber/compiler/file_types/nav_file.rb +1 -2
  35. data/lib/epuber/compiler/file_types/opf_file.rb +1 -2
  36. data/lib/epuber/compiler/file_types/source_file.rb +1 -2
  37. data/lib/epuber/compiler/file_types/static_file.rb +1 -2
  38. data/lib/epuber/compiler/file_types/stylus_file.rb +1 -2
  39. data/lib/epuber/compiler/file_types/xhtml_file.rb +2 -4
  40. data/lib/epuber/compiler/generator.rb +1 -1
  41. data/lib/epuber/compiler/meta_inf_generator.rb +1 -1
  42. data/lib/epuber/compiler/nav_generator.rb +1 -1
  43. data/lib/epuber/compiler/opf_generator.rb +1 -1
  44. data/lib/epuber/compiler/problem.rb +1 -2
  45. data/lib/epuber/compiler/xhtml_processor.rb +3 -1
  46. data/lib/epuber/compiler.rb +7 -11
  47. data/lib/epuber/config.rb +1 -2
  48. data/lib/epuber/dsl/attribute.rb +1 -1
  49. data/lib/epuber/dsl/attribute_support.rb +2 -2
  50. data/lib/epuber/dsl/object.rb +1 -1
  51. data/lib/epuber/dsl/tree_object.rb +1 -1
  52. data/lib/epuber/helper.rb +1 -1
  53. data/lib/epuber/lockfile.rb +1 -1
  54. data/lib/epuber/plugin.rb +1 -1
  55. data/lib/epuber/ruby_extensions/match_data.rb +1 -0
  56. data/lib/epuber/ruby_extensions/thread.rb +1 -0
  57. data/lib/epuber/server/handlers.rb +1 -1
  58. data/lib/epuber/server.rb +2 -2
  59. data/lib/epuber/templates.rb +2 -1
  60. data/lib/epuber/third_party/bower/bower.json +3 -3
  61. data/lib/epuber/third_party/bower/bower_components/cookies-js/bower.json +1 -1
  62. data/lib/epuber/third_party/bower/bower_components/cookies-js/dist/cookies.js +2 -3
  63. data/lib/epuber/third_party/bower/bower_components/cookies-js/dist/cookies.min.js +6 -6
  64. data/lib/epuber/third_party/bower/bower_components/jquery/AUTHORS.txt +278 -0
  65. data/lib/epuber/third_party/bower/bower_components/jquery/{MIT-LICENSE.txt → LICENSE.txt} +17 -2
  66. data/lib/epuber/third_party/bower/bower_components/jquery/README.md +65 -0
  67. data/lib/epuber/third_party/bower/bower_components/jquery/bower.json +2 -16
  68. data/lib/epuber/third_party/bower/bower_components/jquery/dist/jquery.js +2566 -1962
  69. data/lib/epuber/third_party/bower/bower_components/jquery/dist/jquery.min.js +4 -5
  70. data/lib/epuber/third_party/bower/bower_components/jquery/dist/jquery.min.map +1 -1
  71. data/lib/epuber/third_party/bower/bower_components/jquery/external/sizzle/LICENSE.txt +36 -0
  72. data/lib/epuber/third_party/bower/bower_components/jquery/{src → external}/sizzle/dist/sizzle.js +236 -160
  73. data/lib/epuber/third_party/bower/bower_components/jquery/external/sizzle/dist/sizzle.min.js +3 -0
  74. data/lib/epuber/third_party/bower/bower_components/jquery/external/sizzle/dist/sizzle.min.map +1 -0
  75. data/lib/epuber/third_party/bower/bower_components/jquery/src/ajax/jsonp.js +25 -14
  76. data/lib/epuber/third_party/bower/bower_components/jquery/src/ajax/load.js +20 -12
  77. data/lib/epuber/third_party/bower/bower_components/jquery/src/ajax/parseJSON.js +2 -2
  78. data/lib/epuber/third_party/bower/bower_components/jquery/src/ajax/parseXML.js +4 -5
  79. data/lib/epuber/third_party/bower/bower_components/jquery/src/ajax/script.js +16 -12
  80. data/lib/epuber/third_party/bower/bower_components/jquery/src/ajax/var/location.js +3 -0
  81. data/lib/epuber/third_party/bower/bower_components/jquery/src/ajax/var/nonce.js +2 -2
  82. data/lib/epuber/third_party/bower/bower_components/jquery/src/ajax/var/rquery.js +3 -3
  83. data/lib/epuber/third_party/bower/bower_components/jquery/src/ajax/xhr.js +73 -42
  84. data/lib/epuber/third_party/bower/bower_components/jquery/src/ajax.js +116 -57
  85. data/lib/epuber/third_party/bower/bower_components/jquery/src/attributes/attr.js +49 -48
  86. data/lib/epuber/third_party/bower/bower_components/jquery/src/attributes/classes.js +86 -67
  87. data/lib/epuber/third_party/bower/bower_components/jquery/src/attributes/prop.js +63 -32
  88. data/lib/epuber/third_party/bower/bower_components/jquery/src/attributes/support.js +6 -5
  89. data/lib/epuber/third_party/bower/bower_components/jquery/src/attributes/val.js +40 -24
  90. data/lib/epuber/third_party/bower/bower_components/jquery/src/attributes.js +2 -2
  91. data/lib/epuber/third_party/bower/bower_components/jquery/src/callbacks.js +114 -87
  92. data/lib/epuber/third_party/bower/bower_components/jquery/src/core/access.js +11 -6
  93. data/lib/epuber/third_party/bower/bower_components/jquery/src/core/init.js +27 -16
  94. data/lib/epuber/third_party/bower/bower_components/jquery/src/core/parseHTML.js +10 -8
  95. data/lib/epuber/third_party/bower/bower_components/jquery/src/core/ready.js +20 -14
  96. data/lib/epuber/third_party/bower/bower_components/jquery/src/core/var/rsingleTag.js +4 -3
  97. data/lib/epuber/third_party/bower/bower_components/jquery/src/core.js +77 -85
  98. data/lib/epuber/third_party/bower/bower_components/jquery/src/css/addGetHookIf.js +5 -3
  99. data/lib/epuber/third_party/bower/bower_components/jquery/src/css/adjustCSS.js +65 -0
  100. data/lib/epuber/third_party/bower/bower_components/jquery/src/css/curCSS.js +20 -17
  101. data/lib/epuber/third_party/bower/bower_components/jquery/src/css/defaultDisplay.js +16 -14
  102. data/lib/epuber/third_party/bower/bower_components/jquery/src/css/hiddenVisibleSelectors.js +9 -6
  103. data/lib/epuber/third_party/bower/bower_components/jquery/src/css/showHide.js +48 -0
  104. data/lib/epuber/third_party/bower/bower_components/jquery/src/css/support.js +86 -61
  105. data/lib/epuber/third_party/bower/bower_components/jquery/src/css/var/cssExpand.js +2 -2
  106. data/lib/epuber/third_party/bower/bower_components/jquery/src/css/var/getStyles.js +8 -5
  107. data/lib/epuber/third_party/bower/bower_components/jquery/src/css/var/isHidden.js +6 -3
  108. data/lib/epuber/third_party/bower/bower_components/jquery/src/css/var/rmargin.js +3 -3
  109. data/lib/epuber/third_party/bower/bower_components/jquery/src/css/var/rnumnonpx.js +2 -2
  110. data/lib/epuber/third_party/bower/bower_components/jquery/src/css/{swap.js → var/swap.js} +3 -7
  111. data/lib/epuber/third_party/bower/bower_components/jquery/src/css.js +107 -55
  112. data/lib/epuber/third_party/bower/bower_components/jquery/src/data/Data.js +93 -74
  113. data/lib/epuber/third_party/bower/bower_components/jquery/src/data/{accepts.js → var/acceptData.js} +4 -6
  114. data/lib/epuber/third_party/bower/bower_components/jquery/src/data/var/{data_user.js → dataPriv.js} +2 -2
  115. data/lib/epuber/third_party/bower/bower_components/jquery/src/data/var/{data_priv.js → dataUser.js} +2 -2
  116. data/lib/epuber/third_party/bower/bower_components/jquery/src/data.js +49 -40
  117. data/lib/epuber/third_party/bower/bower_components/jquery/src/deferred.js +34 -25
  118. data/lib/epuber/third_party/bower/bower_components/jquery/src/deprecated.js +27 -8
  119. data/lib/epuber/third_party/bower/bower_components/jquery/src/dimensions.js +9 -5
  120. data/lib/epuber/third_party/bower/bower_components/jquery/src/effects/Tween.js +14 -7
  121. data/lib/epuber/third_party/bower/bower_components/jquery/src/effects/animatedSelector.js +4 -4
  122. data/lib/epuber/third_party/bower/bower_components/jquery/src/effects.js +96 -115
  123. data/lib/epuber/third_party/bower/bower_components/jquery/src/event/ajax.js +11 -4
  124. data/lib/epuber/third_party/bower/bower_components/jquery/src/event/alias.js +11 -23
  125. data/lib/epuber/third_party/bower/bower_components/jquery/src/event/focusin.js +53 -0
  126. data/lib/epuber/third_party/bower/bower_components/jquery/src/event/support.js +3 -3
  127. data/lib/epuber/third_party/bower/bower_components/jquery/src/event/trigger.js +183 -0
  128. data/lib/epuber/third_party/bower/bower_components/jquery/src/event.js +168 -325
  129. data/lib/epuber/third_party/bower/bower_components/jquery/src/exports/amd.js +3 -3
  130. data/lib/epuber/third_party/bower/bower_components/jquery/src/exports/global.js +2 -8
  131. data/lib/epuber/third_party/bower/bower_components/jquery/src/intro.js +1 -1
  132. data/lib/epuber/third_party/bower/bower_components/jquery/src/jquery.js +5 -5
  133. data/lib/epuber/third_party/bower/bower_components/jquery/src/manipulation/_evalUrl.js +6 -4
  134. data/lib/epuber/third_party/bower/bower_components/jquery/src/manipulation/buildFragment.js +102 -0
  135. data/lib/epuber/third_party/bower/bower_components/jquery/src/manipulation/getAll.js +21 -0
  136. data/lib/epuber/third_party/bower/bower_components/jquery/src/manipulation/setGlobalEval.js +20 -0
  137. data/lib/epuber/third_party/bower/bower_components/jquery/src/manipulation/support.js +7 -6
  138. data/lib/epuber/third_party/bower/bower_components/jquery/src/manipulation/var/rcheckableType.js +3 -3
  139. data/lib/epuber/third_party/bower/bower_components/jquery/src/manipulation/var/rscriptType.js +3 -0
  140. data/lib/epuber/third_party/bower/bower_components/jquery/src/manipulation/var/rtagName.js +3 -0
  141. data/lib/epuber/third_party/bower/bower_components/jquery/src/manipulation/wrapMap.js +27 -0
  142. data/lib/epuber/third_party/bower/bower_components/jquery/src/manipulation.js +206 -305
  143. data/lib/epuber/third_party/bower/bower_components/jquery/src/offset.js +40 -29
  144. data/lib/epuber/third_party/bower/bower_components/jquery/src/outro.js +1 -0
  145. data/lib/epuber/third_party/bower/bower_components/jquery/src/queue/delay.js +6 -6
  146. data/lib/epuber/third_party/bower/bower_components/jquery/src/queue.js +23 -22
  147. data/lib/epuber/third_party/bower/bower_components/jquery/src/selector-native.js +107 -68
  148. data/lib/epuber/third_party/bower/bower_components/jquery/src/selector-sizzle.js +5 -5
  149. data/lib/epuber/third_party/bower/bower_components/jquery/src/selector.js +1 -1
  150. data/lib/epuber/third_party/bower/bower_components/jquery/src/serialize.js +28 -14
  151. data/lib/epuber/third_party/bower/bower_components/jquery/src/traversing/findFilter.js +13 -13
  152. data/lib/epuber/third_party/bower/bower_components/jquery/src/traversing/var/dir.js +20 -0
  153. data/lib/epuber/third_party/bower/bower_components/jquery/src/traversing/var/rneedsContext.js +2 -2
  154. data/lib/epuber/third_party/bower/bower_components/jquery/src/traversing/var/siblings.js +15 -0
  155. data/lib/epuber/third_party/bower/bower_components/jquery/src/traversing.js +32 -56
  156. data/lib/epuber/third_party/bower/bower_components/jquery/src/var/arr.js +2 -2
  157. data/lib/epuber/third_party/bower/bower_components/jquery/src/var/class2type.js +3 -2
  158. data/lib/epuber/third_party/bower/bower_components/jquery/src/var/concat.js +2 -2
  159. data/lib/epuber/third_party/bower/bower_components/jquery/src/var/document.js +3 -0
  160. data/lib/epuber/third_party/bower/bower_components/jquery/src/var/documentElement.js +5 -0
  161. data/lib/epuber/third_party/bower/bower_components/jquery/src/var/hasOwn.js +2 -2
  162. data/lib/epuber/third_party/bower/bower_components/jquery/src/var/indexOf.js +2 -2
  163. data/lib/epuber/third_party/bower/bower_components/jquery/src/var/pnum.js +3 -3
  164. data/lib/epuber/third_party/bower/bower_components/jquery/src/var/push.js +2 -2
  165. data/lib/epuber/third_party/bower/bower_components/jquery/src/var/rcssNum.js +7 -0
  166. data/lib/epuber/third_party/bower/bower_components/jquery/src/var/rnotwhite.js +3 -3
  167. data/lib/epuber/third_party/bower/bower_components/jquery/src/var/slice.js +2 -2
  168. data/lib/epuber/third_party/bower/bower_components/jquery/src/var/support.js +3 -2
  169. data/lib/epuber/third_party/bower/bower_components/jquery/src/var/toString.js +2 -2
  170. data/lib/epuber/third_party/bower/bower_components/jquery/src/wrap.js +19 -19
  171. data/lib/epuber/third_party/bower/bower_components/spin.js/{LICENSE.txt → LICENSE.md} +2 -1
  172. data/lib/epuber/third_party/bower/bower_components/spin.js/README.md +21 -21
  173. data/lib/epuber/third_party/bower/bower_components/spin.js/bower.json +0 -1
  174. data/lib/epuber/third_party/bower/bower_components/spin.js/jquery.spin.js +23 -24
  175. data/lib/epuber/third_party/bower/bower_components/spin.js/spin.js +153 -113
  176. data/lib/epuber/third_party/bower/bower_components/spin.js/spin.min.js +2 -0
  177. data/lib/epuber/third_party/bower/bower_components/uri.js/CHANGELOG.md +424 -0
  178. data/lib/epuber/third_party/bower/bower_components/uri.js/README.md +23 -308
  179. data/lib/epuber/third_party/bower/bower_components/uri.js/SECURITY.md +12 -0
  180. data/lib/epuber/third_party/bower/bower_components/uri.js/bower.json +2 -2
  181. data/lib/epuber/third_party/bower/bower_components/uri.js/contributing.md +0 -4
  182. data/lib/epuber/third_party/bower/bower_components/uri.js/src/IPv6.js +3 -6
  183. data/lib/epuber/third_party/bower/bower_components/uri.js/src/SecondLevelDomains.js +8 -4
  184. data/lib/epuber/third_party/bower/bower_components/uri.js/src/URI.fragmentQuery.js +21 -4
  185. data/lib/epuber/third_party/bower/bower_components/uri.js/src/URI.fragmentURI.js +1 -1
  186. data/lib/epuber/third_party/bower/bower_components/uri.js/src/URI.js +312 -69
  187. data/lib/epuber/third_party/bower/bower_components/uri.js/src/URI.min.js +85 -77
  188. data/lib/epuber/third_party/bower/bower_components/uri.js/src/URITemplate.js +28 -11
  189. data/lib/epuber/third_party/bower/bower_components/uri.js/src/jquery.URI.js +17 -18
  190. data/lib/epuber/third_party/bower/bower_components/uri.js/src/jquery.URI.min.js +6 -6
  191. data/lib/epuber/third_party/bower/bower_components/uri.js/src/punycode.js +63 -38
  192. data/lib/epuber/third_party/bower.rb +2 -0
  193. data/lib/epuber/transformer/text_transformer.rb +1 -2
  194. data/lib/epuber/transformer.rb +1 -2
  195. data/lib/epuber/user_interface.rb +1 -1
  196. data/lib/epuber/vendor/hash_binding.rb +1 -1
  197. data/lib/epuber/vendor/nokogiri_extensions.rb +24 -21
  198. data/lib/epuber/vendor/ruby_templater.rb +1 -2
  199. data/lib/epuber/vendor/size.rb +1 -0
  200. data/lib/epuber/vendor/version.rb +1 -1
  201. data/lib/epuber/version.rb +2 -1
  202. data/lib/epuber.rb +1 -1
  203. metadata +48 -30
  204. data/lib/epuber/third_party/bower/bower_components/jquery/src/sizzle/dist/sizzle.min.js +0 -3
  205. data/lib/epuber/third_party/bower/bower_components/jquery/src/sizzle/dist/sizzle.min.map +0 -1
  206. data/lib/epuber/third_party/bower/bower_components/jquery/src/var/strundefined.js +0 -3
  207. data/lib/epuber/vendor/globals_context.rb +0 -26
@@ -2,20 +2,19 @@
2
2
  * URI.js - Mutating URLs
3
3
  * URI Template Support - http://tools.ietf.org/html/rfc6570
4
4
  *
5
- * Version: 1.15.2
5
+ * Version: 1.19.10
6
6
  *
7
7
  * Author: Rodney Rehm
8
8
  * Web: http://medialize.github.io/URI.js/
9
9
  *
10
10
  * Licensed under
11
11
  * MIT License http://www.opensource.org/licenses/mit-license
12
- * GPL v3 http://opensource.org/licenses/GPL-3.0
13
12
  *
14
13
  */
15
14
  (function (root, factory) {
16
15
  'use strict';
17
16
  // https://github.com/umdjs/umd/blob/master/returnExports.js
18
- if (typeof exports === 'object') {
17
+ if (typeof module === 'object' && module.exports) {
19
18
  // Node
20
19
  module.exports = factory(require('./URI'));
21
20
  } else if (typeof define === 'function' && define.amd) {
@@ -134,12 +133,14 @@
134
133
  // pattern to identify expressions [operator, variable-list] in template
135
134
  URITemplate.EXPRESSION_PATTERN = /\{([^a-zA-Z0-9%_]?)([^\}]+)(\}|$)/g;
136
135
  // pattern to identify variables [name, explode, maxlength] in variable-list
137
- URITemplate.VARIABLE_PATTERN = /^([^*:]+)((\*)|:(\d+))?$/;
136
+ URITemplate.VARIABLE_PATTERN = /^([^*:.](?:\.?[^*:.])*)((\*)|:(\d+))?$/;
138
137
  // pattern to verify variable name integrity
139
- URITemplate.VARIABLE_NAME_PATTERN = /[^a-zA-Z0-9%_]/;
138
+ URITemplate.VARIABLE_NAME_PATTERN = /[^a-zA-Z0-9%_.]/;
139
+ // pattern to verify literal integrity
140
+ URITemplate.LITERAL_PATTERN = /[<>{}"`^| \\]/;
140
141
 
141
142
  // expand parsed expression (expression, not template!)
142
- URITemplate.expand = function(expression, data) {
143
+ URITemplate.expand = function(expression, data, opts) {
143
144
  // container for defined options for the given operator
144
145
  var options = operators[expression.operator];
145
146
  // expansion type (include keys or not)
@@ -153,6 +154,9 @@
153
154
  for (i = 0; (variable = variables[i]); i++) {
154
155
  // fetch simplified data source
155
156
  d = data.get(variable.name);
157
+ if (d.type === 0 && opts && opts.strict) {
158
+ throw new Error('Missing expansion value for variable "' + variable.name + '"');
159
+ }
156
160
  if (!d.val.length) {
157
161
  if (d.type) {
158
162
  // empty variables (empty string)
@@ -163,6 +167,11 @@
163
167
  continue;
164
168
  }
165
169
 
170
+ if (d.type > 1 && variable.maxlength) {
171
+ // composite variable cannot specify maxlength
172
+ throw new Error('Invalid expression: Prefix modifier not applicable to variable "' + variable.name + '"');
173
+ }
174
+
166
175
  // expand the given variable
167
176
  buffer.push(URITemplate['expand' + type](
168
177
  d,
@@ -314,7 +323,7 @@
314
323
  };
315
324
 
316
325
  // expand template through given data map
317
- p.expand = function(data) {
326
+ p.expand = function(data, opts) {
318
327
  var result = '';
319
328
 
320
329
  if (!this.parts || !this.parts.length) {
@@ -334,7 +343,7 @@
334
343
  // literal string
335
344
  ? this.parts[i]
336
345
  // expression
337
- : URITemplate.expand(this.parts[i], data);
346
+ : URITemplate.expand(this.parts[i], data, opts);
338
347
  /*jshint laxbreak: false */
339
348
  }
340
349
 
@@ -347,12 +356,20 @@
347
356
  var ePattern = URITemplate.EXPRESSION_PATTERN;
348
357
  var vPattern = URITemplate.VARIABLE_PATTERN;
349
358
  var nPattern = URITemplate.VARIABLE_NAME_PATTERN;
359
+ var lPattern = URITemplate.LITERAL_PATTERN;
350
360
  // token result buffer
351
361
  var parts = [];
352
362
  // position within source template
353
363
  var pos = 0;
354
364
  var variables, eMatch, vMatch;
355
365
 
366
+ var checkLiteral = function(literal) {
367
+ if (literal.match(lPattern)) {
368
+ throw new Error('Invalid Literal "' + literal + '"');
369
+ }
370
+ return literal;
371
+ };
372
+
356
373
  // RegExp is shared accross all templates,
357
374
  // which requires a manual reset
358
375
  ePattern.lastIndex = 0;
@@ -362,11 +379,11 @@
362
379
  eMatch = ePattern.exec(expression);
363
380
  if (eMatch === null) {
364
381
  // push trailing literal
365
- parts.push(expression.substring(pos));
382
+ parts.push(checkLiteral(expression.substring(pos)));
366
383
  break;
367
384
  } else {
368
385
  // push leading literal
369
- parts.push(expression.substring(pos, eMatch.index));
386
+ parts.push(checkLiteral(expression.substring(pos, eMatch.index)));
370
387
  pos = eMatch.index + eMatch[0].length;
371
388
  }
372
389
 
@@ -408,7 +425,7 @@
408
425
  // template doesn't contain any expressions
409
426
  // so it is a simple literal string
410
427
  // this probably should fire a warning or something?
411
- parts.push(expression);
428
+ parts.push(checkLiteral(expression));
412
429
  }
413
430
 
414
431
  this.parts = parts;
@@ -2,22 +2,21 @@
2
2
  * URI.js - Mutating URLs
3
3
  * jQuery Plugin
4
4
  *
5
- * Version: 1.15.2
5
+ * Version: 1.19.10
6
6
  *
7
7
  * Author: Rodney Rehm
8
8
  * Web: http://medialize.github.io/URI.js/jquery-uri-plugin.html
9
9
  *
10
10
  * Licensed under
11
11
  * MIT License http://www.opensource.org/licenses/mit-license
12
- * GPL v3 http://opensource.org/licenses/GPL-3.0
13
12
  *
14
13
  */
15
14
  (function (root, factory) {
16
15
  'use strict';
17
16
  // https://github.com/umdjs/umd/blob/master/returnExports.js
18
- if (typeof exports === 'object') {
17
+ if (typeof module === 'object' && module.exports) {
19
18
  // Node
20
- module.exports = factory(require('jquery', './URI'));
19
+ module.exports = factory(require('jquery'), require('./URI'));
21
20
  } else if (typeof define === 'function' && define.amd) {
22
21
  // AMD. Register as an anonymous module.
23
22
  define(['jquery', './URI'], factory);
@@ -32,7 +31,7 @@
32
31
 
33
32
  var comparable = {};
34
33
  var compare = {
35
- // equals
34
+ // equals
36
35
  '=': function(value, target) {
37
36
  return value === target;
38
37
  },
@@ -52,7 +51,7 @@
52
51
  // add trailing slash so /dir/ will match the deep-end as well
53
52
  value += '/';
54
53
  }
55
-
54
+
56
55
  return !!(value + '').match(new RegExp(escapeRegEx(target), 'i'));
57
56
  },
58
57
  'equals:': function(uri, target) {
@@ -75,7 +74,7 @@
75
74
  // compensate ambiguous <input> that is not an image
76
75
  return undefined;
77
76
  }
78
-
77
+
79
78
  // NOTE: as we use a static mapping from element to attribute,
80
79
  // the HTML5 attribute issue should not come up again
81
80
  // https://github.com/medialize/URI.js/issues/69
@@ -95,7 +94,7 @@
95
94
  }
96
95
 
97
96
  // populate lookup table and register $.attr('uri:accessor') handlers
98
- $.each('authority directory domain filename fragment hash host hostname href password path pathname port protocol query resource scheme search subdomain suffix tld username'.split(' '), function(k, v) {
97
+ $.each('origin authority directory domain filename fragment hash host hostname href password path pathname port protocol query resource scheme search subdomain suffix tld username'.split(' '), function(k, v) {
99
98
  comparable[v] = true;
100
99
  $.attrHooks['uri:' + v] = generateAccessor(v);
101
100
  });
@@ -121,17 +120,17 @@
121
120
  var $this = this.first();
122
121
  var elem = $this.get(0);
123
122
  var property = getUriProperty(elem);
124
-
123
+
125
124
  if (!property) {
126
125
  throw new Error('Element "' + elem.nodeName + '" does not have either property: href, src, action, cite');
127
126
  }
128
-
127
+
129
128
  if (uri !== undefined) {
130
129
  var old = $this.data('uri');
131
130
  if (old) {
132
131
  return old.href(uri);
133
132
  }
134
-
133
+
135
134
  if (!(uri instanceof URI)) {
136
135
  uri = URI(uri || '');
137
136
  }
@@ -143,7 +142,7 @@
143
142
  uri = URI($this.attr(property) || '');
144
143
  }
145
144
  }
146
-
145
+
147
146
  uri._dom_element = elem;
148
147
  uri._dom_attribute = property;
149
148
  uri.normalize();
@@ -165,7 +164,7 @@
165
164
  this._string = URI.build(this._parts);
166
165
  this._deferred_build = false;
167
166
  }
168
-
167
+
169
168
  return this;
170
169
  };
171
170
 
@@ -174,12 +173,12 @@
174
173
  var pseudoArgs = /^([a-zA-Z]+)\s*([\^\$*]?=|:)\s*(['"]?)(.+)\3|^\s*([a-zA-Z0-9]+)\s*$/;
175
174
  function uriPseudo (elem, text) {
176
175
  var match, property, uri;
177
-
176
+
178
177
  // skip anything without src|href|action and bad :uri() syntax
179
178
  if (!getUriProperty(elem) || !text) {
180
179
  return false;
181
180
  }
182
-
181
+
183
182
  match = text.match(pseudoArgs);
184
183
 
185
184
  if (!match || (!match[5] && match[2] !== ':' && !compare[match[2]])) {
@@ -189,7 +188,7 @@
189
188
  }
190
189
 
191
190
  uri = $(elem).uri();
192
-
191
+
193
192
  if (match[5]) {
194
193
  return uri.is(match[5]);
195
194
  } else if (match[2] === ':') {
@@ -198,7 +197,7 @@
198
197
  // filers seem to fail silently
199
198
  return false;
200
199
  }
201
-
200
+
202
201
  return compare[property](uri, match[4]);
203
202
  } else {
204
203
  property = match[1].toLowerCase();
@@ -206,7 +205,7 @@
206
205
  // filers seem to fail silently
207
206
  return false;
208
207
  }
209
-
208
+
210
209
  return compare[match[2]](uri[property](), match[4], property);
211
210
  }
212
211
 
@@ -1,7 +1,7 @@
1
- /*! URI.js v1.15.2 http://medialize.github.io/URI.js/ */
1
+ /*! URI.js v1.19.10 http://medialize.github.io/URI.js/ */
2
2
  /* build contains: jquery.URI.js */
3
- (function(d,e){"object"===typeof exports?module.exports=e(require("jquery","./URI")):"function"===typeof define&&define.amd?define(["jquery","./URI"],e):e(d.jQuery,d.URI)})(this,function(d,e){function h(a){return a.replace(/([.*+?^=!:${}()|[\]\/\\])/g,"\\$1")}function k(a){var b=a.nodeName.toLowerCase();return"input"===b&&"image"!==a.type?void 0:e.domAttributes[b]}function p(a){return{get:function(b){return d(b).uri()[a]()},set:function(b,c){d(b).uri()[a](c);return c}}}function l(a,b){var c,e,f;if(!k(a)||
4
- !b)return!1;c=b.match(q);if(!c||!c[5]&&":"!==c[2]&&!g[c[2]])return!1;f=d(a).uri();if(c[5])return f.is(c[5]);if(":"===c[2])return e=c[1].toLowerCase()+":",g[e]?g[e](f,c[4]):!1;e=c[1].toLowerCase();return m[e]?g[c[2]](f[e](),c[4],e):!1}var m={},g={"=":function(a,b){return a===b},"^=":function(a,b){return!!(a+"").match(new RegExp("^"+h(b),"i"))},"$=":function(a,b){return!!(a+"").match(new RegExp(h(b)+"$","i"))},"*=":function(a,b,c){"directory"===c&&(a+="/");return!!(a+"").match(new RegExp(h(b),"i"))},
5
- "equals:":function(a,b){return a.equals(b)},"is:":function(a,b){return a.is(b)}};d.each("authority directory domain filename fragment hash host hostname href password path pathname port protocol query resource scheme search subdomain suffix tld username".split(" "),function(a,b){m[b]=!0;d.attrHooks["uri:"+b]=p(b)});var r=function(a,b){return d(a).uri().href(b).toString()};d.each(["src","href","action","uri","cite"],function(a,b){d.attrHooks[b]={set:r}});d.attrHooks.uri.get=function(a){return d(a).uri()};
6
- d.fn.uri=function(a){var b=this.first(),c=b.get(0),d=k(c);if(!d)throw Error('Element "'+c.nodeName+'" does not have either property: href, src, action, cite');if(void 0!==a){var f=b.data("uri");if(f)return f.href(a);a instanceof e||(a=e(a||""))}else{if(a=b.data("uri"))return a;a=e(b.attr(d)||"")}a._dom_element=c;a._dom_attribute=d;a.normalize();b.data("uri",a);return a};e.prototype.build=function(a){if(this._dom_element)this._string=e.build(this._parts),this._deferred_build=!1,this._dom_element.setAttribute(this._dom_attribute,
7
- this._string),this._dom_element[this._dom_attribute]=this._string;else if(!0===a)this._deferred_build=!0;else if(void 0===a||this._deferred_build)this._string=e.build(this._parts),this._deferred_build=!1;return this};var n,q=/^([a-zA-Z]+)\s*([\^\$*]?=|:)\s*(['"]?)(.+)\3|^\s*([a-zA-Z0-9]+)\s*$/;n=d.expr.createPseudo?d.expr.createPseudo(function(a){return function(b){return l(b,a)}}):function(a,b,c){return l(a,c[3])};d.expr[":"].uri=n;return d});
3
+ (function(d,e){"object"===typeof module&&module.exports?module.exports=e(require("jquery"),require("./URI")):"function"===typeof define&&define.amd?define(["jquery","./URI"],e):e(d.jQuery,d.URI)})(this,function(d,e){function k(a){return a.replace(/([.*+?^=!:${}()|[\]\/\\])/g,"\\$1")}function l(a){var b=a.nodeName.toLowerCase();if("input"!==b||"image"===a.type)return e.domAttributes[b]}function p(a){return{get:function(b){return d(b).uri()[a]()},set:function(b,c){d(b).uri()[a](c);return c}}}function m(a,
4
+ b){if(!l(a)||!b)return!1;var c=b.match(q);if(!c||!c[5]&&":"!==c[2]&&!h[c[2]])return!1;var g=d(a).uri();if(c[5])return g.is(c[5]);if(":"===c[2]){var f=c[1].toLowerCase()+":";return h[f]?h[f](g,c[4]):!1}f=c[1].toLowerCase();return n[f]?h[c[2]](g[f](),c[4],f):!1}var n={},h={"=":function(a,b){return a===b},"^=":function(a,b){return!!(a+"").match(new RegExp("^"+k(b),"i"))},"$=":function(a,b){return!!(a+"").match(new RegExp(k(b)+"$","i"))},"*=":function(a,b,c){"directory"===c&&(a+="/");return!!(a+"").match(new RegExp(k(b),
5
+ "i"))},"equals:":function(a,b){return a.equals(b)},"is:":function(a,b){return a.is(b)}};d.each("origin authority directory domain filename fragment hash host hostname href password path pathname port protocol query resource scheme search subdomain suffix tld username".split(" "),function(a,b){n[b]=!0;d.attrHooks["uri:"+b]=p(b)});var r=function(a,b){return d(a).uri().href(b).toString()};d.each(["src","href","action","uri","cite"],function(a,b){d.attrHooks[b]={set:r}});d.attrHooks.uri.get=function(a){return d(a).uri()};
6
+ d.fn.uri=function(a){var b=this.first(),c=b.get(0),g=l(c);if(!g)throw Error('Element "'+c.nodeName+'" does not have either property: href, src, action, cite');if(void 0!==a){var f=b.data("uri");if(f)return f.href(a);a instanceof e||(a=e(a||""))}else{if(a=b.data("uri"))return a;a=e(b.attr(g)||"")}a._dom_element=c;a._dom_attribute=g;a.normalize();b.data("uri",a);return a};e.prototype.build=function(a){if(this._dom_element)this._string=e.build(this._parts),this._deferred_build=!1,this._dom_element.setAttribute(this._dom_attribute,
7
+ this._string),this._dom_element[this._dom_attribute]=this._string;else if(!0===a)this._deferred_build=!0;else if(void 0===a||this._deferred_build)this._string=e.build(this._parts),this._deferred_build=!1;return this};var q=/^([a-zA-Z]+)\s*([\^\$*]?=|:)\s*(['"]?)(.+)\3|^\s*([a-zA-Z0-9]+)\s*$/;var t=d.expr.createPseudo?d.expr.createPseudo(function(a){return function(b){return m(b,a)}}):function(a,b,c){return m(a,c[3])};d.expr[":"].uri=t;return d});
@@ -1,12 +1,17 @@
1
- /*! http://mths.be/punycode v1.2.3 by @mathias */
1
+ /*! https://mths.be/punycode v1.4.0 by @mathias */
2
2
  ;(function(root) {
3
3
 
4
4
  /** Detect free variables */
5
- var freeExports = typeof exports == 'object' && exports;
5
+ var freeExports = typeof exports == 'object' && exports &&
6
+ !exports.nodeType && exports;
6
7
  var freeModule = typeof module == 'object' && module &&
7
- module.exports == freeExports && module;
8
+ !module.nodeType && module;
8
9
  var freeGlobal = typeof global == 'object' && global;
9
- if (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {
10
+ if (
11
+ freeGlobal.global === freeGlobal ||
12
+ freeGlobal.window === freeGlobal ||
13
+ freeGlobal.self === freeGlobal
14
+ ) {
10
15
  root = freeGlobal;
11
16
  }
12
17
 
@@ -32,8 +37,8 @@
32
37
 
33
38
  /** Regular expressions */
34
39
  regexPunycode = /^xn--/,
35
- regexNonASCII = /[^ -~]/, // unprintable ASCII chars + non-ASCII chars
36
- regexSeparators = /\x2E|\u3002|\uFF0E|\uFF61/g, // RFC 3490 separators
40
+ regexNonASCII = /[^\x20-\x7E]/, // unprintable ASCII chars + non-ASCII chars
41
+ regexSeparators = /[\x2E\u3002\uFF0E\uFF61]/g, // RFC 3490 separators
37
42
 
38
43
  /** Error messages */
39
44
  errors = {
@@ -59,7 +64,7 @@
59
64
  * @returns {Error} Throws a `RangeError` with the applicable error message.
60
65
  */
61
66
  function error(type) {
62
- throw RangeError(errors[type]);
67
+ throw new RangeError(errors[type]);
63
68
  }
64
69
 
65
70
  /**
@@ -72,23 +77,37 @@
72
77
  */
73
78
  function map(array, fn) {
74
79
  var length = array.length;
80
+ var result = [];
75
81
  while (length--) {
76
- array[length] = fn(array[length]);
82
+ result[length] = fn(array[length]);
77
83
  }
78
- return array;
84
+ return result;
79
85
  }
80
86
 
81
87
  /**
82
- * A simple `Array#map`-like wrapper to work with domain name strings.
88
+ * A simple `Array#map`-like wrapper to work with domain name strings or email
89
+ * addresses.
83
90
  * @private
84
- * @param {String} domain The domain name.
91
+ * @param {String} domain The domain name or email address.
85
92
  * @param {Function} callback The function that gets called for every
86
93
  * character.
87
94
  * @returns {Array} A new string of characters returned by the callback
88
95
  * function.
89
96
  */
90
97
  function mapDomain(string, fn) {
91
- return map(string.split(regexSeparators), fn).join('.');
98
+ var parts = string.split('@');
99
+ var result = '';
100
+ if (parts.length > 1) {
101
+ // In email addresses, only the domain name should be punycoded. Leave
102
+ // the local part (i.e. everything up to `@`) intact.
103
+ result = parts[0] + '@';
104
+ string = parts[1];
105
+ }
106
+ // Avoid `split(regex)` for IE8 compatibility. See #17.
107
+ string = string.replace(regexSeparators, '\x2E');
108
+ var labels = string.split('.');
109
+ var encoded = map(labels, fn).join('.');
110
+ return result + encoded;
92
111
  }
93
112
 
94
113
  /**
@@ -98,7 +117,7 @@
98
117
  * UCS-2 exposes as separate characters) into a single code point,
99
118
  * matching UTF-16.
100
119
  * @see `punycode.ucs2.encode`
101
- * @see <http://mathiasbynens.be/notes/javascript-encoding>
120
+ * @see <https://mathiasbynens.be/notes/javascript-encoding>
102
121
  * @memberOf punycode.ucs2
103
122
  * @name decode
104
123
  * @param {String} string The Unicode input string (UCS-2).
@@ -192,7 +211,7 @@
192
211
 
193
212
  /**
194
213
  * Bias adaptation function as per section 3.4 of RFC 3492.
195
- * http://tools.ietf.org/html/rfc3492#section-3.4
214
+ * https://tools.ietf.org/html/rfc3492#section-3.4
196
215
  * @private
197
216
  */
198
217
  function adapt(delta, numPoints, firstTime) {
@@ -228,7 +247,6 @@
228
247
  k,
229
248
  digit,
230
249
  t,
231
- length,
232
250
  /** Cached calculation results */
233
251
  baseMinusT;
234
252
 
@@ -308,8 +326,8 @@
308
326
  }
309
327
 
310
328
  /**
311
- * Converts a string of Unicode symbols to a Punycode string of ASCII-only
312
- * symbols.
329
+ * Converts a string of Unicode symbols (e.g. a domain name label) to a
330
+ * Punycode string of ASCII-only symbols.
313
331
  * @memberOf punycode
314
332
  * @param {String} input The string of Unicode symbols.
315
333
  * @returns {String} The resulting Punycode string of ASCII-only symbols.
@@ -422,17 +440,18 @@
422
440
  }
423
441
 
424
442
  /**
425
- * Converts a Punycode string representing a domain name to Unicode. Only the
426
- * Punycoded parts of the domain name will be converted, i.e. it doesn't
427
- * matter if you call it on a string that has already been converted to
428
- * Unicode.
443
+ * Converts a Punycode string representing a domain name or an email address
444
+ * to Unicode. Only the Punycoded parts of the input will be converted, i.e.
445
+ * it doesn't matter if you call it on a string that has already been
446
+ * converted to Unicode.
429
447
  * @memberOf punycode
430
- * @param {String} domain The Punycode domain name to convert to Unicode.
448
+ * @param {String} input The Punycoded domain name or email address to
449
+ * convert to Unicode.
431
450
  * @returns {String} The Unicode representation of the given Punycode
432
451
  * string.
433
452
  */
434
- function toUnicode(domain) {
435
- return mapDomain(domain, function(string) {
453
+ function toUnicode(input) {
454
+ return mapDomain(input, function(string) {
436
455
  return regexPunycode.test(string)
437
456
  ? decode(string.slice(4).toLowerCase())
438
457
  : string;
@@ -440,15 +459,18 @@
440
459
  }
441
460
 
442
461
  /**
443
- * Converts a Unicode string representing a domain name to Punycode. Only the
444
- * non-ASCII parts of the domain name will be converted, i.e. it doesn't
445
- * matter if you call it with a domain that's already in ASCII.
462
+ * Converts a Unicode string representing a domain name or an email address to
463
+ * Punycode. Only the non-ASCII parts of the domain name will be converted,
464
+ * i.e. it doesn't matter if you call it with a domain that's already in
465
+ * ASCII.
446
466
  * @memberOf punycode
447
- * @param {String} domain The domain name to convert, as a Unicode string.
448
- * @returns {String} The Punycode representation of the given domain name.
467
+ * @param {String} input The domain name or email address to convert, as a
468
+ * Unicode string.
469
+ * @returns {String} The Punycode representation of the given domain name or
470
+ * email address.
449
471
  */
450
- function toASCII(domain) {
451
- return mapDomain(domain, function(string) {
472
+ function toASCII(input) {
473
+ return mapDomain(input, function(string) {
452
474
  return regexNonASCII.test(string)
453
475
  ? 'xn--' + encode(string)
454
476
  : string;
@@ -464,11 +486,11 @@
464
486
  * @memberOf punycode
465
487
  * @type String
466
488
  */
467
- 'version': '1.2.3',
489
+ 'version': '1.3.2',
468
490
  /**
469
491
  * An object of methods to convert from JavaScript's internal character
470
492
  * representation (UCS-2) to Unicode code points, and back.
471
- * @see <http://mathiasbynens.be/notes/javascript-encoding>
493
+ * @see <https://mathiasbynens.be/notes/javascript-encoding>
472
494
  * @memberOf punycode
473
495
  * @type Object
474
496
  */
@@ -490,18 +512,21 @@
490
512
  typeof define.amd == 'object' &&
491
513
  define.amd
492
514
  ) {
493
- define(function() {
515
+ define('punycode', function() {
494
516
  return punycode;
495
517
  });
496
- } else if (freeExports && !freeExports.nodeType) {
497
- if (freeModule) { // in Node.js or RingoJS v0.8.0+
518
+ } else if (freeExports && freeModule) {
519
+ if (module.exports == freeExports) {
520
+ // in Node.js, io.js, or RingoJS v0.8.0+
498
521
  freeModule.exports = punycode;
499
- } else { // in Narwhal or RingoJS v0.7.0-
522
+ } else {
523
+ // in Narwhal or RingoJS v0.7.0-
500
524
  for (key in punycode) {
501
525
  punycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);
502
526
  }
503
527
  }
504
- } else { // in Rhino or a web browser
528
+ } else {
529
+ // in Rhino or a web browser
505
530
  root.punycode = punycode;
506
531
  }
507
532
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Epuber
2
4
  module ThirdParty
3
5
  class Bower
@@ -1,8 +1,7 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
2
 
3
3
  require_relative '../transformer'
4
4
 
5
-
6
5
  module Epuber
7
6
  class Transformer
8
7
  class TextTransformer < Transformer
@@ -1,8 +1,7 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
2
 
3
3
  require_relative 'checker_transformer_base'
4
4
 
5
-
6
5
  module Epuber
7
6
  class Transformer < CheckerTransformerBase
8
7
  require_relative 'transformer/text_transformer'
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
 
2
3
  require 'active_support/core_ext/object/try'
3
4
  require 'nokogiri'
@@ -5,7 +6,6 @@ require 'nokogiri'
5
6
  require_relative 'ruby_extensions/thread'
6
7
  require_relative 'command'
7
8
 
8
-
9
9
  module Epuber
10
10
  class UserInterface
11
11
  Location = Struct.new(:path, :lineno)
@@ -1,4 +1,4 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
2
 
3
3
  module Epuber
4
4
  class HashBinding
@@ -1,30 +1,33 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
2
 
3
3
  require 'nokogiri'
4
4
 
5
+ module Nokogiri
6
+ module XML
7
+ class Node
8
+ # @param [String] name
9
+ # @param [Hash, String] args
10
+ #
11
+ # @return [Nokogiri::XML::Node] new parent node
12
+ #
13
+ def surround_with_element(name, *args, &block)
14
+ new_parent = document.create_element(name, *args, &block)
15
+ old_parent = parent
5
16
 
6
- class Nokogiri::XML::Node
7
- # @param [String] name
8
- # @param [Hash, String] args
9
- #
10
- # @return [Nokogiri::XML::Node] new parent node
11
- #
12
- def surround_with_element(name, *args, &block)
13
- new_parent = document.create_element(name, *args, &block)
14
- old_parent = parent
17
+ self.parent = new_parent
15
18
 
16
- self.parent = new_parent
19
+ if old_parent.is_a?(Nokogiri::XML::Document)
20
+ old_parent.root = new_parent
21
+ else
22
+ old_parent.children = new_parent
23
+ end
17
24
 
18
- if old_parent.is_a?(Nokogiri::XML::Document)
19
- old_parent.root = new_parent
20
- else
21
- old_parent.children = new_parent
22
- end
25
+ new_parent
26
+ end
23
27
 
24
- new_parent
28
+ # @return [String] path to original file
29
+ #
30
+ attr_accessor :file_path
31
+ end
25
32
  end
26
-
27
- # @return [String] path to original file
28
- #
29
- attr_accessor :file_path
30
33
  end
@@ -1,10 +1,9 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
2
 
3
3
  # rubocop:disable Lint/Eval
4
4
 
5
5
  require_relative 'hash_binding'
6
6
 
7
-
8
7
  module Epuber
9
8
  class RubyTemplater
10
9
  # @return [String]
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
 
2
3
  module Epuber
3
4
  class Size
@@ -1,4 +1,4 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
2
 
3
3
  # Most of this code is taken from github.com/CocoaPods/Core/blob/master/lib/cocoapods-core/vendor/version.rb
4
4
 
@@ -1,6 +1,7 @@
1
+ # frozen_string_literal: true
1
2
 
2
3
  module Epuber
3
- VERSION = '0.6.0'
4
+ VERSION = '0.7.0'
4
5
 
5
6
  HOME_URL = 'https://github.com/epuber-io/epuber'
6
7
  end
data/lib/epuber.rb CHANGED
@@ -1,4 +1,4 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
2
 
3
3
  module Epuber
4
4
  require_relative 'epuber/version'