epuber 0.7.4 → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (67) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -2
  3. data/README.md +2 -1
  4. data/epuber.gemspec +10 -12
  5. data/lib/epuber/book/contributor.rb +0 -1
  6. data/lib/epuber/book/file_request.rb +1 -1
  7. data/lib/epuber/book/target.rb +20 -23
  8. data/lib/epuber/book/toc_item.rb +2 -4
  9. data/lib/epuber/book.rb +19 -19
  10. data/lib/epuber/checker/bookspec_checker.rb +26 -0
  11. data/lib/epuber/checker/text_checker.rb +2 -1
  12. data/lib/epuber/checker.rb +16 -2
  13. data/lib/epuber/checker_transformer_base.rb +2 -5
  14. data/lib/epuber/command/build.rb +34 -24
  15. data/lib/epuber/command/init.rb +23 -23
  16. data/lib/epuber/command/server.rb +2 -2
  17. data/lib/epuber/command.rb +17 -20
  18. data/lib/epuber/compiler/compilation_context.rb +10 -8
  19. data/lib/epuber/compiler/file_database.rb +0 -2
  20. data/lib/epuber/compiler/file_finders/abstract.rb +33 -23
  21. data/lib/epuber/compiler/file_finders/imaginary.rb +40 -35
  22. data/lib/epuber/compiler/file_resolver.rb +77 -88
  23. data/lib/epuber/compiler/file_stat.rb +4 -4
  24. data/lib/epuber/compiler/file_types/abstract_file.rb +3 -4
  25. data/lib/epuber/compiler/file_types/bade_file.rb +12 -7
  26. data/lib/epuber/compiler/file_types/coffee_script_file.rb +1 -1
  27. data/lib/epuber/compiler/file_types/generated_file.rb +1 -1
  28. data/lib/epuber/compiler/file_types/image_file.rb +4 -2
  29. data/lib/epuber/compiler/file_types/nav_file.rb +0 -1
  30. data/lib/epuber/compiler/file_types/opf_file.rb +0 -1
  31. data/lib/epuber/compiler/file_types/source_file.rb +8 -3
  32. data/lib/epuber/compiler/file_types/xhtml_file.rb +67 -13
  33. data/lib/epuber/compiler/generator.rb +1 -2
  34. data/lib/epuber/compiler/meta_inf_generator.rb +1 -1
  35. data/lib/epuber/compiler/nav_generator.rb +5 -6
  36. data/lib/epuber/compiler/opf_generator.rb +22 -23
  37. data/lib/epuber/compiler/problem.rb +12 -21
  38. data/lib/epuber/compiler/xhtml_processor.rb +61 -31
  39. data/lib/epuber/compiler.rb +66 -19
  40. data/lib/epuber/config.rb +13 -7
  41. data/lib/epuber/dsl/attribute.rb +16 -17
  42. data/lib/epuber/dsl/attribute_support.rb +3 -3
  43. data/lib/epuber/dsl/object.rb +17 -15
  44. data/lib/epuber/dsl/tree_object.rb +2 -3
  45. data/lib/epuber/epubcheck.rb +15 -0
  46. data/lib/epuber/helper.rb +0 -1
  47. data/lib/epuber/lockfile.rb +7 -9
  48. data/lib/epuber/plugin.rb +1 -2
  49. data/lib/epuber/ruby_extensions/match_data.rb +1 -1
  50. data/lib/epuber/ruby_extensions/thread.rb +1 -0
  51. data/lib/epuber/server/base.styl +0 -1
  52. data/lib/epuber/server/basic.styl +1 -30
  53. data/lib/epuber/server/handlers.rb +1 -1
  54. data/lib/epuber/server.rb +67 -66
  55. data/lib/epuber/third_party/bower.rb +5 -5
  56. data/lib/epuber/transformer/text_transformer.rb +4 -2
  57. data/lib/epuber/transformer.rb +2 -2
  58. data/lib/epuber/user_interface.rb +49 -38
  59. data/lib/epuber/vendor/hash_binding.rb +9 -2
  60. data/lib/epuber/vendor/ruby_templater.rb +1 -5
  61. data/lib/epuber/vendor/version.rb +10 -10
  62. data/lib/epuber/version.rb +1 -1
  63. metadata +67 -69
  64. data/lib/epuber/server/fonts/AvenirNext/AvenirNext-Bold.ttf +0 -0
  65. data/lib/epuber/server/fonts/AvenirNext/AvenirNext-BoldItalic.ttf +0 -0
  66. data/lib/epuber/server/fonts/AvenirNext/AvenirNext-Italic.ttf +0 -0
  67. data/lib/epuber/server/fonts/AvenirNext/AvenirNext-Regular.ttf +0 -0
@@ -8,7 +8,7 @@ require_relative 'command'
8
8
 
9
9
  module Epuber
10
10
  class UserInterface
11
- Location = Struct.new(:path, :lineno)
11
+ Location = Struct.new(:path, :lineno, :column, keyword_init: true)
12
12
 
13
13
  class << self
14
14
  # @return [Epuber::Command]
@@ -35,7 +35,10 @@ module Epuber
35
35
  def self.error(message, location: nil)
36
36
  _clear_processing_line_for_new_output do
37
37
  $stdout.puts(_format_message(:error, message, location: location))
38
- _print_backtrace(location.try(:backtrace_locations) || message.try(:backtrace_locations) || caller_locations, location: location) if current_command && current_command.verbose?
38
+ if current_command&.verbose?
39
+ _print_backtrace(location.try(:backtrace_locations) || message.try(:backtrace_locations) || caller_locations,
40
+ location: location)
41
+ end
39
42
  end
40
43
  end
41
44
 
@@ -48,10 +51,6 @@ module Epuber
48
51
  end
49
52
  end
50
53
 
51
-
52
-
53
-
54
-
55
54
  # @param [#to_s] problem some problem, object just have to know to convert self into string with method #to_s
56
55
  #
57
56
  def self.print_processing_problem(problem)
@@ -63,16 +62,16 @@ module Epuber
63
62
  # @param [String] info_text
64
63
  #
65
64
  def self.print_processing_debug_info(info_text)
66
- if current_command && current_command.verbose?
67
- _clear_processing_line_for_new_output do
68
- message = if @current_file.nil?
69
- "▸ #{info_text}"
70
- else
71
- "▸ #{@current_file.source_path}: #{info_text}"
72
- end
73
-
74
- $stdout.puts(message.ansi.send(_color_from_level(:debug)))
75
- end
65
+ return unless current_command&.verbose?
66
+
67
+ _clear_processing_line_for_new_output do
68
+ message = if @current_file.nil?
69
+ "▸ #{info_text}"
70
+ else
71
+ "▸ #{@current_file.source_path}: #{info_text}"
72
+ end
73
+
74
+ $stdout.puts(message.ansi.send(_color_from_level(:debug)))
76
75
  end
77
76
  end
78
77
 
@@ -107,14 +106,18 @@ module Epuber
107
106
  @current_file = nil
108
107
  end
109
108
 
109
+ def self.puts(message)
110
+ _clear_processing_line_for_new_output do
111
+ $stdout.puts(message)
112
+ end
113
+ end
114
+
110
115
  # @param [Compiler::FileTypes::AbstractFile] file
111
116
  # @param [String] step_name
112
117
  # @param [Fixnum] time
113
118
  #
114
119
  def self.print_step_processing_time(step_name, time = nil)
115
- if !current_command || !current_command.debug_steps_times
116
- return yield
117
- end
120
+ return yield if !current_command || !current_command.debug_steps_times
118
121
 
119
122
  remove_processing_file_line
120
123
 
@@ -137,8 +140,6 @@ module Epuber
137
140
  returned_value
138
141
  end
139
142
 
140
- private
141
-
142
143
  def self._clear_processing_line_for_new_output
143
144
  last_line = remove_processing_file_line
144
145
 
@@ -154,12 +155,12 @@ module Epuber
154
155
  #
155
156
  def self._color_from_level(level)
156
157
  case level
157
- when :error; :red
158
- when :warning; :yellow
159
- when :normal; :white
160
- when :debug; :blue
161
- else
162
- raise "Unknown output level #{level}"
158
+ when :error then :red
159
+ when :warning then :yellow
160
+ when :normal then :white
161
+ when :debug then :blue
162
+ else
163
+ raise "Unknown output level #{level}"
163
164
  end
164
165
  end
165
166
 
@@ -170,13 +171,13 @@ module Epuber
170
171
  def self._location_from_obj(obj)
171
172
  case obj
172
173
  when ::Thread::Backtrace::Location
173
- Location.new(obj.path, obj.lineno)
174
+ Location.new(path: obj.path, lineno: obj.lineno)
174
175
  when ::Nokogiri::XML::Node
175
- Location.new(obj.document.file_path, obj.line)
176
+ Location.new(path: obj.document.file_path, lineno: obj.line)
176
177
  when Location
177
178
  obj
178
179
  when Epuber::Compiler::FileTypes::AbstractFile
179
- Location.new(obj.source_path, nil)
180
+ Location.new(path: obj.source_path)
180
181
  end
181
182
  end
182
183
 
@@ -191,12 +192,22 @@ module Epuber
191
192
 
192
193
  comps = []
193
194
  comps << message.to_s
194
- if !location.nil? && !(message.is_a?(Epuber::Compiler::Problem) || message.is_a?(Epuber::Checker::TextChecker::MatchProblem))
195
- if location.lineno
196
- comps << " (in file #{location.path} line #{location.lineno})"
197
- else
198
- comps << " (in file #{location.path})"
199
- end
195
+ message_already_formatted = (
196
+ message.is_a?(Epuber::Compiler::Problem) || message.is_a?(Epuber::Checker::TextChecker::MatchProblem)
197
+ )
198
+ if !location.nil? && !message_already_formatted
199
+ path = location.path
200
+
201
+ # calculate relative path when path is absolute and in project
202
+ path = path[Config.instance.project_path.size + 1..-1] if path.start_with?(Config.instance.project_path)
203
+
204
+ line_parts = [
205
+ " (in file #{path}",
206
+ ]
207
+ line_parts << "line #{location.lineno}" if location.lineno
208
+ line_parts << "column #{location.column}" if location.column
209
+
210
+ comps << "#{line_parts.join(' ')})"
200
211
  end
201
212
 
202
213
  comps.join("\n").ansi.send(_color_from_level(level))
@@ -209,13 +220,13 @@ module Epuber
209
220
  #
210
221
  def self._format_backtrace(locations, location: nil)
211
222
  index = locations.index(location) || 0
212
- locations[index, locations.size].map { |loc| loc.to_s }
223
+ locations[index, locations.size].map(&:to_s)
213
224
  end
214
225
 
215
226
  # @param [Thread::Backtrace::Location] location location of the error
216
227
  #
217
228
  def self._print_backtrace(locations, location: nil)
218
- puts(_format_backtrace(locations, location: location)) if current_command.verbose?
229
+ $stdout.puts(_format_backtrace(locations, location: location)) if current_command.verbose?
219
230
  end
220
231
  end
221
232
 
@@ -8,19 +8,26 @@ module Epuber
8
8
  @vars = vars
9
9
  end
10
10
 
11
+ # @return [Boolean]
12
+ #
13
+ def respond_to_missing?(name, _include_private = false)
14
+ @vars.key?(name) || super
15
+ end
16
+
11
17
  # @param [String] name
12
18
  #
13
19
  def method_missing(name)
14
20
  raise NameError, "Not found value for key #{name}" unless @vars.key?(name)
21
+
15
22
  @vars[name]
16
23
  end
17
24
 
18
- # rubocop:disable Style/AccessorMethodName
25
+ # rubocop:disable Naming/AccessorMethodName
19
26
 
20
27
  def get_binding
21
28
  binding
22
29
  end
23
30
 
24
- # rubocop:enable Style/AccessorMethodName
31
+ # rubocop:enable Naming/AccessorMethodName
25
32
  end
26
33
  end
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # rubocop:disable Lint/Eval
4
-
5
3
  require_relative 'hash_binding'
6
4
 
7
5
  module Epuber
@@ -62,9 +60,7 @@ module Epuber
62
60
  def render
63
61
  hash_binding = HashBinding.new(locals)
64
62
  eval_string = %(%(#{source_text}))
65
- eval(eval_string, hash_binding.get_binding)
63
+ eval(eval_string, hash_binding.get_binding) # rubocop:disable Security/Eval
66
64
  end
67
65
  end
68
66
  end
69
-
70
- # rubocop:enable Lint/Eval
@@ -2,7 +2,7 @@
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
 
5
- def is_number(other)
5
+ def number?(other)
6
6
  other.is_a?(Numeric) || other.is_a?(Integer) || other.is_a?(Float)
7
7
  end
8
8
 
@@ -10,7 +10,7 @@ module Epuber
10
10
  class Version
11
11
  include Comparable
12
12
 
13
- VERSION_RE ||= /\A[0-9]+(\.[0-9a-zA-Z]+)*\z/
13
+ VERSION_RE ||= /\A[0-9]+(\.[0-9a-zA-Z]+)*\z/.freeze
14
14
 
15
15
  # True if the +version+ string matches RubyGems' requirements.
16
16
  #
@@ -18,15 +18,13 @@ module Epuber
18
18
  version.to_s =~ VERSION_RE
19
19
  end
20
20
 
21
- attr_reader :version, :segments
21
+ attr_reader :version
22
22
 
23
23
 
24
24
  # @param [String, Numeric] version input primitive value for version
25
25
  #
26
26
  def initialize(version)
27
- unless self.class.correct?(version)
28
- raise StandardError, "Malformed version number string #{version}"
29
- end
27
+ raise StandardError, "Malformed version number string #{version}" unless self.class.correct?(version)
30
28
 
31
29
  @version = version.to_s.strip
32
30
  end
@@ -42,7 +40,7 @@ module Epuber
42
40
  # @return [String]
43
41
  #
44
42
  def to_s
45
- "#{segments.join('.')}"
43
+ segments.join('.').to_s
46
44
  end
47
45
 
48
46
  # Compares this version with +other+ returning -1, 0, or 1 if the
@@ -53,6 +51,7 @@ module Epuber
53
51
  #
54
52
  def <=>(other)
55
53
  return unless other.is_a?(Version) || other.is_a?(String) || other.is_a?(Float) || other.is_a?(Integer)
54
+
56
55
  other = other.is_a?(Version) ? other : Version.new(other)
57
56
 
58
57
  return 0 if @version == other.version
@@ -67,12 +66,13 @@ module Epuber
67
66
  i = 0
68
67
 
69
68
  while i <= limit
70
- lhs, rhs = lhsegments[i] || 0, rhsegments[i] || 0
69
+ lhs = lhsegments[i] || 0
70
+ rhs = rhsegments[i] || 0
71
71
  i += 1
72
72
 
73
73
  next if lhs == rhs
74
- return -1 if lhs.is_a?(String) && is_number(rhs)
75
- return 1 if is_number(lhs) && rhs.is_a?(String)
74
+ return -1 if lhs.is_a?(String) && number?(rhs)
75
+ return 1 if number?(lhs) && rhs.is_a?(String)
76
76
 
77
77
  return lhs <=> rhs
78
78
  end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Epuber
4
- VERSION = '0.7.4'
4
+ VERSION = '0.8.0'
5
5
 
6
6
  HOME_URL = 'https://github.com/epuber-io/epuber'
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: epuber
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.4
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Roman Kříž
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-10-27 00:00:00.000000000 Z
11
+ date: 2023-11-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -45,27 +45,21 @@ dependencies:
45
45
  - !ruby/object:Gem::Version
46
46
  version: '2.7'
47
47
  - !ruby/object:Gem::Dependency
48
- name: nokogiri
48
+ name: claide
49
49
  requirement: !ruby/object:Gem::Requirement
50
50
  requirements:
51
51
  - - "~>"
52
52
  - !ruby/object:Gem::Version
53
- version: '1.8'
54
- - - ">="
55
- - !ruby/object:Gem::Version
56
- version: 1.8.2
53
+ version: '1.0'
57
54
  type: :runtime
58
55
  prerelease: false
59
56
  version_requirements: !ruby/object:Gem::Requirement
60
57
  requirements:
61
58
  - - "~>"
62
59
  - !ruby/object:Gem::Version
63
- version: '1.8'
64
- - - ">="
65
- - !ruby/object:Gem::Version
66
- version: 1.8.2
60
+ version: '1.0'
67
61
  - !ruby/object:Gem::Dependency
68
- name: mime-types
62
+ name: listen
69
63
  requirement: !ruby/object:Gem::Requirement
70
64
  requirements:
71
65
  - - "~>"
@@ -79,33 +73,39 @@ dependencies:
79
73
  - !ruby/object:Gem::Version
80
74
  version: '3.0'
81
75
  - !ruby/object:Gem::Dependency
82
- name: claide
76
+ name: mime-types
83
77
  requirement: !ruby/object:Gem::Requirement
84
78
  requirements:
85
79
  - - "~>"
86
80
  - !ruby/object:Gem::Version
87
- version: '1.0'
81
+ version: '3.0'
88
82
  type: :runtime
89
83
  prerelease: false
90
84
  version_requirements: !ruby/object:Gem::Requirement
91
85
  requirements:
92
86
  - - "~>"
93
87
  - !ruby/object:Gem::Version
94
- version: '1.0'
88
+ version: '3.0'
95
89
  - !ruby/object:Gem::Dependency
96
- name: listen
90
+ name: nokogiri
97
91
  requirement: !ruby/object:Gem::Requirement
98
92
  requirements:
99
93
  - - "~>"
100
94
  - !ruby/object:Gem::Version
101
- version: '3.0'
95
+ version: '1.8'
96
+ - - ">="
97
+ - !ruby/object:Gem::Version
98
+ version: 1.8.2
102
99
  type: :runtime
103
100
  prerelease: false
104
101
  version_requirements: !ruby/object:Gem::Requirement
105
102
  requirements:
106
103
  - - "~>"
107
104
  - !ruby/object:Gem::Version
108
- version: '3.0'
105
+ version: '1.8'
106
+ - - ">="
107
+ - !ruby/object:Gem::Version
108
+ version: 1.8.2
109
109
  - !ruby/object:Gem::Dependency
110
110
  name: os
111
111
  requirement: !ruby/object:Gem::Requirement
@@ -140,20 +140,6 @@ dependencies:
140
140
  - - "<"
141
141
  - !ruby/object:Gem::Version
142
142
  version: '4.0'
143
- - !ruby/object:Gem::Dependency
144
- name: sinatra-websocket
145
- requirement: !ruby/object:Gem::Requirement
146
- requirements:
147
- - - "~>"
148
- - !ruby/object:Gem::Version
149
- version: '0.3'
150
- type: :runtime
151
- prerelease: false
152
- version_requirements: !ruby/object:Gem::Requirement
153
- requirements:
154
- - - "~>"
155
- - !ruby/object:Gem::Version
156
- version: '0.3'
157
143
  - !ruby/object:Gem::Dependency
158
144
  name: sinatra-contrib
159
145
  requirement: !ruby/object:Gem::Requirement
@@ -174,6 +160,20 @@ dependencies:
174
160
  - - "<"
175
161
  - !ruby/object:Gem::Version
176
162
  version: '4.0'
163
+ - !ruby/object:Gem::Dependency
164
+ name: sinatra-websocket
165
+ requirement: !ruby/object:Gem::Requirement
166
+ requirements:
167
+ - - "~>"
168
+ - !ruby/object:Gem::Version
169
+ version: '0.3'
170
+ type: :runtime
171
+ prerelease: false
172
+ version_requirements: !ruby/object:Gem::Requirement
173
+ requirements:
174
+ - - "~>"
175
+ - !ruby/object:Gem::Version
176
+ version: '0.3'
177
177
  - !ruby/object:Gem::Dependency
178
178
  name: thin
179
179
  requirement: !ruby/object:Gem::Requirement
@@ -243,25 +243,25 @@ dependencies:
243
243
  - !ruby/object:Gem::Version
244
244
  version: '6.0'
245
245
  - !ruby/object:Gem::Dependency
246
- name: epuber-stylus
246
+ name: bade
247
247
  requirement: !ruby/object:Gem::Requirement
248
248
  requirements:
249
249
  - - "~>"
250
250
  - !ruby/object:Gem::Version
251
- version: '1.1'
251
+ version: '0.3'
252
252
  - - ">="
253
253
  - !ruby/object:Gem::Version
254
- version: 1.1.1
254
+ version: 0.3.1
255
255
  type: :runtime
256
256
  prerelease: false
257
257
  version_requirements: !ruby/object:Gem::Requirement
258
258
  requirements:
259
259
  - - "~>"
260
260
  - !ruby/object:Gem::Version
261
- version: '1.1'
261
+ version: '0.3'
262
262
  - - ">="
263
263
  - !ruby/object:Gem::Version
264
- version: 1.1.1
264
+ version: 0.3.1
265
265
  - !ruby/object:Gem::Dependency
266
266
  name: coffee-script
267
267
  requirement: !ruby/object:Gem::Requirement
@@ -277,87 +277,87 @@ dependencies:
277
277
  - !ruby/object:Gem::Version
278
278
  version: '2.4'
279
279
  - !ruby/object:Gem::Dependency
280
- name: bade
280
+ name: epuber-stylus
281
281
  requirement: !ruby/object:Gem::Requirement
282
282
  requirements:
283
283
  - - "~>"
284
284
  - !ruby/object:Gem::Version
285
- version: '0.3'
285
+ version: '1.1'
286
286
  - - ">="
287
287
  - !ruby/object:Gem::Version
288
- version: 0.3.1
288
+ version: 1.1.1
289
289
  type: :runtime
290
290
  prerelease: false
291
291
  version_requirements: !ruby/object:Gem::Requirement
292
292
  requirements:
293
293
  - - "~>"
294
294
  - !ruby/object:Gem::Version
295
- version: '0.3'
295
+ version: '1.1'
296
296
  - - ">="
297
297
  - !ruby/object:Gem::Version
298
- version: 0.3.1
298
+ version: 1.1.1
299
299
  - !ruby/object:Gem::Dependency
300
- name: rspec
300
+ name: fakefs
301
301
  requirement: !ruby/object:Gem::Requirement
302
302
  requirements:
303
- - - "~>"
303
+ - - ">="
304
304
  - !ruby/object:Gem::Version
305
- version: '3.2'
305
+ version: '1.3'
306
+ - - "<"
307
+ - !ruby/object:Gem::Version
308
+ version: '3.0'
306
309
  type: :development
307
310
  prerelease: false
308
311
  version_requirements: !ruby/object:Gem::Requirement
309
312
  requirements:
310
- - - "~>"
313
+ - - ">="
311
314
  - !ruby/object:Gem::Version
312
- version: '3.2'
315
+ version: '1.3'
316
+ - - "<"
317
+ - !ruby/object:Gem::Version
318
+ version: '3.0'
313
319
  - !ruby/object:Gem::Dependency
314
- name: rubocop
320
+ name: rake
315
321
  requirement: !ruby/object:Gem::Requirement
316
322
  requirements:
317
323
  - - "~>"
318
324
  - !ruby/object:Gem::Version
319
- version: '1.14'
325
+ version: '13.0'
320
326
  type: :development
321
327
  prerelease: false
322
328
  version_requirements: !ruby/object:Gem::Requirement
323
329
  requirements:
324
330
  - - "~>"
325
331
  - !ruby/object:Gem::Version
326
- version: '1.14'
332
+ version: '13.0'
327
333
  - !ruby/object:Gem::Dependency
328
- name: rake
334
+ name: rspec
329
335
  requirement: !ruby/object:Gem::Requirement
330
336
  requirements:
331
337
  - - "~>"
332
338
  - !ruby/object:Gem::Version
333
- version: '13.0'
339
+ version: '3.2'
334
340
  type: :development
335
341
  prerelease: false
336
342
  version_requirements: !ruby/object:Gem::Requirement
337
343
  requirements:
338
344
  - - "~>"
339
345
  - !ruby/object:Gem::Version
340
- version: '13.0'
346
+ version: '3.2'
341
347
  - !ruby/object:Gem::Dependency
342
- name: fakefs
348
+ name: rubocop
343
349
  requirement: !ruby/object:Gem::Requirement
344
350
  requirements:
345
- - - ">="
346
- - !ruby/object:Gem::Version
347
- version: '1.3'
348
- - - "<"
351
+ - - "~>"
349
352
  - !ruby/object:Gem::Version
350
- version: '3.0'
353
+ version: '1.14'
351
354
  type: :development
352
355
  prerelease: false
353
356
  version_requirements: !ruby/object:Gem::Requirement
354
357
  requirements:
355
- - - ">="
356
- - !ruby/object:Gem::Version
357
- version: '1.3'
358
- - - "<"
358
+ - - "~>"
359
359
  - !ruby/object:Gem::Version
360
- version: '3.0'
360
+ version: '1.14'
361
361
  description:
362
362
  email:
363
363
  - samnung@gmail.com
@@ -378,6 +378,7 @@ files:
378
378
  - lib/epuber/book/target.rb
379
379
  - lib/epuber/book/toc_item.rb
380
380
  - lib/epuber/checker.rb
381
+ - lib/epuber/checker/bookspec_checker.rb
381
382
  - lib/epuber/checker/text_checker.rb
382
383
  - lib/epuber/checker_transformer_base.rb
383
384
  - lib/epuber/command.rb
@@ -418,6 +419,7 @@ files:
418
419
  - lib/epuber/dsl/attribute_support.rb
419
420
  - lib/epuber/dsl/object.rb
420
421
  - lib/epuber/dsl/tree_object.rb
422
+ - lib/epuber/epubcheck.rb
421
423
  - lib/epuber/helper.rb
422
424
  - lib/epuber/lockfile.rb
423
425
  - lib/epuber/plugin.rb
@@ -432,10 +434,6 @@ files:
432
434
  - lib/epuber/server/basic.styl
433
435
  - lib/epuber/server/book_content.styl
434
436
  - lib/epuber/server/default_cover.png
435
- - lib/epuber/server/fonts/AvenirNext/AvenirNext-Bold.ttf
436
- - lib/epuber/server/fonts/AvenirNext/AvenirNext-BoldItalic.ttf
437
- - lib/epuber/server/fonts/AvenirNext/AvenirNext-Italic.ttf
438
- - lib/epuber/server/fonts/AvenirNext/AvenirNext-Regular.ttf
439
437
  - lib/epuber/server/handlers.rb
440
438
  - lib/epuber/server/keyboard_control.coffee
441
439
  - lib/epuber/server/pages/book.bade
@@ -615,7 +613,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
615
613
  - !ruby/object:Gem::Version
616
614
  version: '0'
617
615
  requirements: []
618
- rubygems_version: 3.4.21
616
+ rubygems_version: 3.4.22
619
617
  signing_key:
620
618
  specification_version: 4
621
619
  summary: Epuber is simple tool to compile and pack source files into EPUB format.