epuber 0.5.7 → 0.7.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (208) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +5 -2
  3. data/README.md +20 -26
  4. data/bin/epuber +2 -3
  5. data/epuber.gemspec +10 -12
  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 -2
  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 +6 -6
  46. data/lib/epuber/compiler.rb +7 -11
  47. data/lib/epuber/config.rb +3 -4
  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 +3 -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_priv.js → dataPriv.js} +2 -2
  115. data/lib/epuber/third_party/bower/bower_components/jquery/src/data/var/{data_user.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 +77 -46
  204. data/lib/epuber/ruby_extensions/string.rb +0 -16
  205. data/lib/epuber/third_party/bower/bower_components/jquery/src/sizzle/dist/sizzle.min.js +0 -3
  206. data/lib/epuber/third_party/bower/bower_components/jquery/src/sizzle/dist/sizzle.min.map +0 -1
  207. data/lib/epuber/third_party/bower/bower_components/jquery/src/var/strundefined.js +0 -3
  208. 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.5.7'
4
+ VERSION = '0.7.1'
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'