xpub 0.0.2 → 0.0.3

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 877ab04ae6dcc87b84f58981a8b4f4cf4db2b13c
4
- data.tar.gz: 97eb7fb47e86d13a1771ad5adc36ed0e772e2c24
3
+ metadata.gz: 340f22ebfe3786f4c573a588ed8b06a387878963
4
+ data.tar.gz: 1f13447525369f0263468cc8f77f25b81c2d3892
5
5
  SHA512:
6
- metadata.gz: 37a38c380d0590f97bb65a496ad9da5eb35c189b652b86c24f2699ed7fbd298fb71a0d6e8f50c91d0b1c47d5935d6ce41c8e8c1eb20c220c654845f90e0e2c08
7
- data.tar.gz: 09a15c7aa078c85c4cf10309aa1c3e9ca5935883217a6bd54c8c78cbd4aa8c59cdf76f346396ca4b52a33d1392dbad2f0dd71159f0efd306320653e776a5c58b
6
+ metadata.gz: 31a0c70456c76295b43f1d8935fcda4c7d55af8d060a11c1b713558f98f32f9548bdd099d903b84406ed312ee4cb6ecd96c72c9e5cddf9cb93898dec4cec7cb8
7
+ data.tar.gz: 9014abe8a5e25cf605aa057007b6b61bcfd0af1412309e29a91b8179041c7e7c571c4d88472d9e3088e0da5ce72dede5861dd1aa007955662fac7c40bcb11ea0
data/bin/xpub CHANGED
@@ -10,6 +10,9 @@ require 'pathname'
10
10
  require 'shellwords'
11
11
  require 'erb'
12
12
  require 'time'
13
+ require 'singleton'
14
+ require 'dsl_accessor'
15
+ require 'levenshtein'
13
16
 
14
17
  require 'xpub/version.rb'
15
18
 
@@ -21,10 +24,13 @@ opt = OptionParser.new do |opt|
21
24
  opt.on_head('[cmd]',
22
25
  ' init Xpubファイルの生成',
23
26
  ' build ビルド',
24
- ' clean テンポラリフォルダと出力フォルダをクリア')
27
+ ' clean テンポラリフォルダと出力フォルダをクリア',
28
+ ' check ソースコードを検証'
29
+ )
25
30
  opt.on('-v', '出力を詳細にする') { |v| option[:v] = v }
26
31
  opt.on('--book=VALUE', 'ビルドするbookを指定する') { |v| option[:book] = v }
27
32
  opt.on('--builder=VALUE', 'ビルドするbuilderを指定する') { |v| option[:builder] = v }
33
+ opt.on('--checker=VALUE', 'チェックするcheckerを指定する') { |v| option[:checker] = v }
28
34
  opt.on('--pandoc-json-output', 'ビルド時にpandocのjsonを出力') { |v| option['pandoc-json-output'] = v }
29
35
  opt.permute!(ARGV)
30
36
  end
@@ -43,6 +49,7 @@ require "xpub/dsl/book"
43
49
  require "xpub/dsl/src_file"
44
50
  require "xpub/dsl/builder"
45
51
  require "xpub/dsl/page"
52
+ require "xpub/dsl/checker"
46
53
 
47
54
  if File.file?("#{curDir}/Xpub") && ARGV[0] != "init"
48
55
  load "#{curDir}/Xpub"
@@ -67,6 +74,9 @@ elsif ARGV[0] == "init"
67
74
  end
68
75
  puts "init...".color :green
69
76
  FileUtils.cp_r(Dir.glob(File.dirname(__FILE__) + "/../skel/*"),"./")
77
+ elsif ARGV[0] == "check"
78
+ puts "check...".color :green
79
+ Xpub::BookManager.instance.check option
70
80
  else
71
81
  puts opt.help
72
82
  exit
@@ -1,138 +1,34 @@
1
- require 'singleton'
2
-
3
1
  module Xpub
4
2
  class CallBook
5
3
  attr_reader :name, :src_files, :resource_files, :creators, :contributors, :identifiers
6
4
 
5
+ dsl_accessor :title, :instance=>true, :default => "UNTITLED"
6
+ dsl_accessor :subtitle, :instance=>true
7
+ dsl_accessor :short, :instance=>true
8
+ dsl_accessor :collection, :instance=>true
9
+ dsl_accessor :edition, :instance=>true
10
+ dsl_accessor :extended, :instance=>true
11
+ dsl_accessor :publisher, :instance=>true
12
+ dsl_accessor :rights, :instance=>true
13
+ dsl_accessor :publication, :instance=>true
14
+ dsl_accessor :modification, :instance=>true
15
+ dsl_accessor :lang, :instance=>true, :default => "ja"
16
+ dsl_accessor :description, :instance=>true
17
+
7
18
  def initialize name
8
19
  @name = name
9
- @title = "UNTITLED"
10
- @subtitle = nil
11
- @short = nil
12
- @collection = nil
13
- @edition = nil
14
- @extended = nil
15
- @publisher = nil
16
- @rights = nil
17
- @publication = nil
18
- @modification = nil
19
- @lang = "ja"
20
20
  @creators = []
21
21
  @contributors = []
22
22
  @identifiers = []
23
- @description = nil
24
-
25
23
  @src_files = []
26
24
  @resource_files = []
27
25
  @builders = []
26
+ @checkers = []
28
27
  end
29
28
 
30
-
31
29
  def validate
32
30
  end
33
31
 
34
- def _set_or_get values
35
- # 引数が 2 つ以上ならエラー
36
- raise ArgumentError, "wrong number of arguments (#{ values.length} for 0..1)" if values.length > 1
37
- values.empty?
38
- end
39
-
40
- def title *values
41
- if _set_or_get values
42
- @title
43
- else
44
- @title = values[0]
45
- end
46
- end
47
-
48
- def subtitle *values
49
- if _set_or_get values
50
- @subtitle
51
- else
52
- @subtitle = values[0]
53
- end
54
- end
55
-
56
- def short *values
57
- if _set_or_get values
58
- @short
59
- else
60
- @short = values[0]
61
- end
62
- end
63
-
64
- def collection *values
65
- if _set_or_get values
66
- @collection
67
- else
68
- @collection = values[0]
69
- end
70
- end
71
-
72
- def edition *values
73
- if _set_or_get values
74
- @edition
75
- else
76
- @edition = values[0]
77
- end
78
- end
79
-
80
- def extended *values
81
- if _set_or_get values
82
- @extended
83
- else
84
- @extended = values[0]
85
- end
86
- end
87
-
88
- def publisher *values
89
- if _set_or_get values
90
- @publisher
91
- else
92
- @publisher = values[0]
93
- end
94
- end
95
-
96
- def rights *values
97
- if _set_or_get values
98
- @rights
99
- else
100
- @rights = values[0]
101
- end
102
- end
103
-
104
- def publication *values
105
- if _set_or_get values
106
- @publication
107
- else
108
- @publication = values[0]
109
- end
110
- end
111
-
112
- def modification *values
113
- if _set_or_get values
114
- @modification
115
- else
116
- @modification = values[0]
117
- end
118
- end
119
-
120
- def lang *values
121
- if _set_or_get values
122
- @lang
123
- else
124
- @lang = values[0]
125
- end
126
- end
127
-
128
- def description *values
129
- if _set_or_get values
130
- @description
131
- else
132
- @description = values[0]
133
- end
134
- end
135
-
136
32
  def build option
137
33
  puts "build #{@name} book.".color :green
138
34
  @builders.each { |b|
@@ -142,30 +38,25 @@ module Xpub
142
38
  }
143
39
  end
144
40
 
41
+ def check option
42
+ puts "check #{@name} book.".color :green
43
+ @checkers.each { |c|
44
+ if !option[:checker] || option[:checker] == c.name
45
+ c.check option
46
+ end
47
+ }
48
+ end
49
+
145
50
  class CallAuthor
146
51
  attr_reader :name
52
+ dsl_accessor :role, :instance=>true
147
53
 
148
54
  def initialize name
149
55
  @name = name
150
- @role = nil
151
56
  end
152
57
 
153
58
  def validate
154
59
  end
155
-
156
- def _set_or_get values
157
- # 引数が 2 つ以上ならエラー
158
- raise ArgumentError, "wrong number of arguments (#{ values.length} for 0..1)" if values.length > 1
159
- values.empty?
160
- end
161
-
162
- def role *values
163
- if _set_or_get values
164
- @role
165
- else
166
- @role = values[0]
167
- end
168
- end
169
60
  end
170
61
 
171
62
  def creator name, &block
@@ -188,37 +79,15 @@ module Xpub
188
79
 
189
80
  class CallIdentifier
190
81
  attr_reader :identifier
82
+ dsl_accessor :scheme, :instance=>true
83
+ dsl_accessor :type_value, :instance=>true
191
84
 
192
85
  def initialize identifier
193
86
  @identifier = identifier
194
- @scheme = nil
195
- @type_value = nil
196
87
  end
197
88
 
198
89
  def validate
199
90
  end
200
-
201
- def _set_or_get values
202
- # 引数が 2 つ以上ならエラー
203
- raise ArgumentError, "wrong number of arguments (#{ values.length} for 0..1)" if values.length > 1
204
- values.empty?
205
- end
206
-
207
- def scheme *values
208
- if _set_or_get values
209
- @scheme
210
- else
211
- @scheme = values[0]
212
- end
213
- end
214
-
215
- def type_value *values
216
- if _set_or_get values
217
- @type_value
218
- else
219
- @type_value = values[0]
220
- end
221
- end
222
91
  end
223
92
 
224
93
  def identifier identifier, &block
@@ -246,8 +115,8 @@ module Xpub
246
115
  @books = []
247
116
  end
248
117
 
249
- def add c
250
- @books << c
118
+ def add b
119
+ @books << b
251
120
  end
252
121
 
253
122
  def build option
@@ -257,5 +126,13 @@ module Xpub
257
126
  end
258
127
  }
259
128
  end
129
+
130
+ def check option
131
+ @books.each { |book|
132
+ if !option[:book] || option[:book] == book.name
133
+ book.check option
134
+ end
135
+ }
136
+ end
260
137
  end
261
138
  end
@@ -1,20 +1,13 @@
1
1
  module Xpub
2
2
  class CallBook
3
3
  class CallBuilder
4
- attr_reader :name, :theme, :output
4
+ attr_reader :name
5
+ dsl_accessor :theme, :instance=>true, :default => "default"
6
+ dsl_accessor :output, :instance=>true
5
7
 
6
8
  def initialize name, book
7
9
  @name = name
8
10
  @book = book
9
- @theme = "default"
10
- end
11
-
12
- def output output
13
- @output = output
14
- end
15
-
16
- def theme theme
17
- @theme = theme
18
11
  end
19
12
 
20
13
  def build
@@ -52,7 +45,6 @@ module Xpub
52
45
  end
53
46
 
54
47
  def cmd_exec cmd, args, option
55
-
56
48
  cmd_line = cmd + " " + args.map { |arg|
57
49
  Shellwords.shellescape(arg)
58
50
  }.join(" ")
@@ -70,49 +62,26 @@ module Xpub
70
62
  end
71
63
 
72
64
  class CallEpubBuilder < CallBuilder
65
+ dsl_accessor :template, :instance=>true, :default => "template.html"
66
+ dsl_accessor :filter, :instance=>true, :default => "pandoc-filter.rb"
67
+ dsl_accessor :stylesheet, :instance=>true, :default => "epub.css"
68
+ dsl_accessor :metadata, :instance=>true, :default => "metadata.dat"
69
+ dsl_accessor :page_progression_direction, :instance=>true, :default => "rtl"
70
+ dsl_accessor :cover_image, :instance=>true
71
+ dsl_accessor :pandoc_cmd, :instance=>true, :default => "pandoc"
72
+
73
73
  def initialize name, book
74
74
  @vars = []
75
75
  @meta = []
76
- @template = "template.html"
77
- @filter = "pandoc-filter.rb"
78
- @stylesheet = "epub.css"
79
- @metadata = "metadata.dat"
80
- @page_progression_direction = "rtl"
81
- @cover_image = nil
82
-
83
76
  if book.title != ""
84
77
  @vars << ["title", book.title]
85
78
  end
86
79
  super name, book
87
80
  end
88
81
 
89
- def page_progression_direction param
90
- @page_progression_direction = param
91
- end
92
-
93
- def template param
94
- @template = param
95
- end
96
-
97
- def filter param
98
- @filter = param
99
- end
100
-
101
- def stylesheet param
102
- @stylesheet = param
103
- end
104
-
105
- def metadata param
106
- @metadata = param
107
- end
108
-
109
- def cover_image param
110
- @cover_image = param
111
- end
112
-
113
82
  def meta_option
114
83
  result = []
115
- @meta.concat([["page-progression-direction", @page_progression_direction]]).each { |m|
84
+ @meta.concat([["page-progression-direction", page_progression_direction]]).each { |m|
116
85
  result << "-M"
117
86
  result << "#{m[0]}=#{m[1]}"
118
87
  }
@@ -129,15 +98,15 @@ module Xpub
129
98
  end
130
99
 
131
100
  def template_option
132
- "--template=#{Dir::getwd}/theme/#{@theme}/#{@name}/#{@template}"
101
+ "--template=#{Dir::getwd}/theme/#{theme}/#{@name}/#{template}"
133
102
  end
134
103
 
135
104
  def filter_option
136
- "--filter=#{Dir::getwd}/theme/#{@theme}/#{@name}/#{@filter}"
105
+ "--filter=#{Dir::getwd}/theme/#{theme}/#{@name}/#{filter}"
137
106
  end
138
107
 
139
108
  def stylesheet_option
140
- "--epub-stylesheet=#{Dir::getwd}/theme/#{@theme}/#{@name}/#{@stylesheet}"
109
+ "--epub-stylesheet=#{Dir::getwd}/theme/#{theme}/#{@name}/#{stylesheet}"
141
110
  end
142
111
 
143
112
  def metadata_option
@@ -145,11 +114,11 @@ module Xpub
145
114
  end
146
115
 
147
116
  def metadata_path
148
- tmp_path("#{@book.name}.#{@metadata}")
117
+ tmp_path("#{@book.name}.#{metadata}")
149
118
  end
150
119
 
151
120
  def metadata_template_path
152
- "#{Dir::getwd}/theme/#{@theme}/#{@name}/#{@metadata}.erb"
121
+ "#{Dir::getwd}/theme/#{theme}/#{@name}/#{metadata}.erb"
153
122
  end
154
123
 
155
124
  def epub_path
@@ -164,10 +133,6 @@ module Xpub
164
133
  copy_to_tmp files
165
134
  end
166
135
 
167
- def pandoc_cmd
168
- "pandoc"
169
- end
170
-
171
136
  def pandoc_option option
172
137
  option = [
173
138
  "--epub-chapter-level=1",
@@ -180,8 +145,8 @@ module Xpub
180
145
  stylesheet_option,
181
146
  metadata_option
182
147
  ]
183
- if @cover_image
184
- option << "--epub-cover-image=" + src_path(@cover_image)
148
+ if cover_image
149
+ option << "--epub-cover-image=" + src_path(cover_image)
185
150
  end
186
151
  option
187
152
  end
@@ -208,12 +173,15 @@ module Xpub
208
173
  end
209
174
 
210
175
  class CallLatexBuilder < CallBuilder
211
- attr_reader :template
176
+ dsl_accessor :template, :instance=>true, :default => "template.tex"
177
+ dsl_accessor :filter, :instance=>true, :default => "pandoc-filter.rb"
178
+ dsl_accessor :extractbb_cmd, :instance=>true, :default => "extractbb"
179
+ dsl_accessor :pandoc_cmd, :instance=>true, :default => "pandoc"
180
+ dsl_accessor :latex_cmd, :instance=>true, :default => "uplatex"
181
+ dsl_accessor :dvipdfm_cmd, :instance=>true, :default => "dvipdfmx"
212
182
 
213
183
  def initialize name, book
214
184
  @vars = []
215
- @template = "template.tex"
216
- @filter = "pandoc-filter.rb"
217
185
  @hyoushi = []
218
186
  @urahyoushi = []
219
187
  super name, book
@@ -243,13 +211,6 @@ module Xpub
243
211
  @vars << [:postchaptername, param]
244
212
  end
245
213
 
246
- def template param
247
- @template = param
248
- end
249
-
250
- def filter param
251
- @filter = param
252
- end
253
214
 
254
215
  def vars_option
255
216
  result = []
@@ -261,11 +222,11 @@ module Xpub
261
222
  end
262
223
 
263
224
  def template_option
264
- "--template=#{Dir::getwd}/theme/#{@theme}/#{@name}/#{@template}"
225
+ "--template=#{Dir::getwd}/theme/#{theme}/#{@name}/#{template}"
265
226
  end
266
227
 
267
228
  def filter_option
268
- "--filter=#{Dir::getwd}/theme/#{@theme}/#{@name}/#{@filter}"
229
+ "--filter=#{Dir::getwd}/theme/#{theme}/#{@name}/#{filter}"
269
230
  end
270
231
 
271
232
  def tex_path
@@ -281,17 +242,13 @@ module Xpub
281
242
  end
282
243
 
283
244
  def pdf_path
284
- if @output
285
- output_path(@output) + '.pdf'
245
+ if output
246
+ output_path(output) + '.pdf'
286
247
  else
287
248
  output_path(@book.name) + '.pdf'
288
249
  end
289
250
  end
290
251
 
291
- def extractbb_cmd
292
- "extractbb"
293
- end
294
-
295
252
  def _build_resource files, option
296
253
  copy_to_tmp files
297
254
  files.each { |file|
@@ -306,10 +263,6 @@ module Xpub
306
263
  _build_resource @book.resource_files, option
307
264
  end
308
265
 
309
- def pandoc_cmd
310
- "pandoc"
311
- end
312
-
313
266
  def pandoc_option option
314
267
  [
315
268
  "--chapters",
@@ -321,14 +274,6 @@ module Xpub
321
274
  ]
322
275
  end
323
276
 
324
- def latex_cmd
325
- "uplatex"
326
- end
327
-
328
- def dvipdfm_cmd
329
- "dvipdfmx"
330
- end
331
-
332
277
  def build option
333
278
  FileUtils.mkdir_p(tmp_path "") unless FileTest.exist?(tmp_path "")
334
279
  if option['pandoc-json-output']
@@ -352,6 +297,7 @@ module Xpub
352
297
  end
353
298
  end
354
299
  end
300
+
355
301
  def epub_builder name, &block
356
302
  call = CallEpubBuilder.new name, self
357
303
  if block
@@ -0,0 +1,69 @@
1
+ module Xpub
2
+ class CallBook
3
+ class CallChecker
4
+ def initialize name, book
5
+ @name = name
6
+ @book = book
7
+ end
8
+
9
+ def validate
10
+ end
11
+
12
+ def _check option, pattern
13
+ words = {}
14
+ @book.src_files.each do |file|
15
+ f = open file.full_path
16
+ f.each_with_index do |line, index|
17
+ line.match(pattern) do |md|
18
+ if words[md[1]]
19
+ words[md[1]] << { :file => file.file, :line => (index + 1) }
20
+ else
21
+ words[md[1]] = [{ :file => file.file, :line => (index + 1) }]
22
+ end
23
+ end
24
+ end
25
+ f.close
26
+ end
27
+
28
+ words.sort.each do |word, infos|
29
+ if word
30
+ puts word.color :red
31
+ infos.each { |info|
32
+ puts " #{info[:file]}(#{info[:line]})"
33
+ }
34
+ end
35
+ end
36
+ end
37
+ end
38
+
39
+ class CallNumberChecker < CallChecker
40
+ def check option
41
+ _check option, /([0-9一二三四五六七八九十百千万億兆京〇零]+)/
42
+ end
43
+ end
44
+
45
+ class CallKanaChecker < CallChecker
46
+ def check option
47
+ _check option, /([\p{Katakana}ー-]+)/
48
+ end
49
+ end
50
+
51
+ def number_checker name, &block
52
+ call = CallNumberChecker.new name, self
53
+ if block
54
+ call.instance_eval &block
55
+ end
56
+ call.validate
57
+ @checkers << call
58
+ end
59
+
60
+ def kana_checker name, &block
61
+ call = CallKanaChecker.new name, self
62
+ if block
63
+ call.instance_eval &block
64
+ end
65
+ call.validate
66
+ @checkers << call
67
+ end
68
+ end
69
+ end
@@ -24,23 +24,9 @@ module Xpub
24
24
  end
25
25
 
26
26
  class CallImgPageLatexOp < CallLatexOp
27
- def initialize name, book, builder
28
- @topoffset = "0in"
29
- @leftoffset = "0in"
30
- super name, book, builder
31
- end
32
-
33
- def topoffset param
34
- @topoffset = param
35
- end
36
-
37
- def leftoffset param
38
- @leftoffset = param
39
- end
40
-
41
- def file param
42
- @file = param
43
- end
27
+ dsl_accessor :topoffset, :instance=>true, :default => "0in"
28
+ dsl_accessor :leftoffset, :instance=>true, :default => "0in"
29
+ dsl_accessor :file, :instance=>true
44
30
 
45
31
  def latex book, builder
46
32
  <<"EOS"
@@ -49,34 +35,23 @@ module Xpub
49
35
  \\vspace*{-1truein}
50
36
  \\vspace*{-\\hoffset}
51
37
  \\vspace*{-\\oddsidemargin}
52
- \\vspace*{#{@leftoffset}}
53
- \\noindent\\hspace*{-1in}\\hspace*{-\\voffset}\\hspace*{-\\topmargin}\\hspace*{-\\headheight}\\hspace*{-\\headsep}\\hspace*{#{@topoffset}}
54
- \\includegraphics[width=\\paperheight,height=\\paperwidth]{#{@file}}
38
+ \\vspace*{#{leftoffset}}
39
+ \\noindent\\hspace*{-1in}\\hspace*{-\\voffset}\\hspace*{-\\topmargin}\\hspace*{-\\headheight}\\hspace*{-\\headsep}\\hspace*{#{topoffset}}
40
+ \\includegraphics[width=\\paperheight,height=\\paperwidth]{#{file}}
55
41
  \\clearpage\n
56
42
  EOS
57
43
  end
58
44
  end
59
45
 
60
46
  class CallEmptyPageLatexOp < CallLatexOp
61
- def initialize name, book, builder
62
- @no_page_number = false
63
- super name, book, builder
64
- end
65
-
66
- def no_page_number
67
- @no_page_number = true
68
- end
47
+ dsl_accessor :no_page_number, :instance=>true, :default => false
69
48
 
70
49
  def latex book, builder
71
- (@no_page_number ? "\\thispagestyle{empty}" : "") + " \\clearpage\n"
50
+ (no_page_number ? "\\thispagestyle{empty}" : "") + " \\clearpage\n"
72
51
  end
73
52
  end
74
53
 
75
54
  class CallInnerTitlePageLatexOp < CallLatexOp
76
- def initialize name, book, builder
77
- super name, book, builder
78
- end
79
-
80
55
  def latex book, builder
81
56
  <<"EOS"
82
57
  \\makeatletter
@@ -1,3 +1,3 @@
1
1
  module Xpub
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -22,4 +22,5 @@ Gem::Specification.new do |spec|
22
22
  spec.add_development_dependency "rake", "~> 10.0"
23
23
 
24
24
  spec.add_dependency 'rainbow', '~> 2.0.0'
25
+ spec.add_dependency 'dsl_accessor', '~> 0.4.4'
25
26
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xpub
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yoshihisa AMAKATA
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-02-01 00:00:00.000000000 Z
11
+ date: 2015-02-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: 2.0.0
55
+ - !ruby/object:Gem::Dependency
56
+ name: dsl_accessor
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 0.4.4
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 0.4.4
55
69
  description: Xpub is EPUB and PDF publisher.
56
70
  email:
57
71
  - amakata@gmail.com
@@ -69,6 +83,7 @@ files:
69
83
  - lib/xpub.rb
70
84
  - lib/xpub/dsl/book.rb
71
85
  - lib/xpub/dsl/builder.rb
86
+ - lib/xpub/dsl/checker.rb
72
87
  - lib/xpub/dsl/page.rb
73
88
  - lib/xpub/dsl/src_file.rb
74
89
  - lib/xpub/version.rb