gepub 1.0.11 → 1.0.15

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
  SHA256:
3
- metadata.gz: 294cefe070bfd2c4a87e0fd46c45f10f08f75857045ad62ed02b83694ca9e9ae
4
- data.tar.gz: 1df169f042577cd0ae74db3565e92f7f70b0b87fd9bafd7de5e3802574ab1578
3
+ metadata.gz: 19218e13519e47532dee8d0a4f1c45a3acaa65dd105b4fcd1b09774f9f482bd6
4
+ data.tar.gz: abeb56bc8baa0d505f75af8403eb4e59a86aa386aeac83040c2dcf9fc2f5b45e
5
5
  SHA512:
6
- metadata.gz: 403d05c6d0a0d0121526d5ce92c8e95dfcb11aae052c84af6bec3303f8039b56852cc64fd4e1d171c715ad2b728a6eee2cee6043cedca2576999c7ccf1f35ae8
7
- data.tar.gz: 89e1b455c6d1653fc4ec60ada97da3da50d508260ce5309ca3ec3aceabecd528b1941723ac5a4e594ec0bb34ea99d7ef64a5c4c573f22d5dc7627ea9e8d4b3f0
6
+ metadata.gz: d1c20a5567c1033fceafbe660f8bc2b227b3a269125d1da4b58d2183fb13f24a4f7e56242100e37b662f03a17ebb744fc686151782ef2d8fb36c9d94ef39275b
7
+ data.tar.gz: 6dcf08c29ca933edba399cd1ffbb001196d8d8ef74cb62bcb8619135eddec743975b1654b5c3ce57342d91da7c8166949057591da1d3e429c1f326967544077e
@@ -0,0 +1,3 @@
1
+ # These are supported funding model platforms
2
+
3
+ github: skoji
@@ -0,0 +1,8 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: bundler
4
+ directory: "/"
5
+ schedule:
6
+ interval: daily
7
+ time: "20:00"
8
+ open-pull-requests-limit: 10
@@ -4,26 +4,19 @@ jobs:
4
4
  test:
5
5
  strategy:
6
6
  matrix:
7
- ruby: [2.4, 2.5, 2.6, 2.7, jruby]
7
+ ruby: [2.5, 2.6, 2.7, 3.0, jruby]
8
8
  platform: [ubuntu-latest, macos-latest, windows-latest]
9
- exclude:
10
- # TODO: https://github.com/sparklemotion/nokogiri/issues/1961
11
- # exclude windows with ruby 2.7 ; nokogiri is not supported for the present
12
- - ruby: 2.7
13
- platform: windows-latest
14
9
  runs-on: ${{ matrix.platform }}
15
10
  env:
16
11
  CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }}
17
12
  steps:
18
- - uses: actions/checkout@master
13
+ - uses: actions/checkout@v2
19
14
  - name: Set up Ruby
20
- uses: eregon/use-ruby-action@master
15
+ uses: ruby/setup-ruby@v1
21
16
  with:
22
17
  ruby-version: ${{ matrix.ruby }}
23
18
  - name: setup gems
24
- run: |
25
- gem install bundler
26
- bundle install
19
+ run: bundle install --jobs 4 --retry 3
27
20
  - name: run test and publish code coverage
28
21
  if: runner.os == 'Linux' && matrix.ruby == '2.7' && env.CC_TEST_REPORTER_ID != ''
29
22
  uses: paambaati/codeclimate-action@v2.3.0
data/.rubocop.yml ADDED
@@ -0,0 +1,6 @@
1
+ AllCops:
2
+ DisabledByDefault: true
3
+
4
+ Layout/IndentationStyle:
5
+ Enabled: true
6
+ EnforcedStyle: spaces
data/Gemfile CHANGED
@@ -5,4 +5,4 @@ gemspec
5
5
 
6
6
  # workarond : simplecov 0.18 with cc-reporter is broken
7
7
  # https://github.com/codeclimate/test-reporter/issues/418
8
- gem 'simplecov', '~> 0.10', '< 0.18', require: false
8
+ gem 'simplecov', '~> 0.21', require: false
data/README.md CHANGED
@@ -5,7 +5,7 @@
5
5
  [![Test Coverage](https://api.codeclimate.com/v1/badges/acd6df07e071a4bbb399/test_coverage)](https://codeclimate.com/github/skoji/gepub/test_coverage)
6
6
  [![Gem Version](https://badge.fury.io/rb/gepub.svg)](http://badge.fury.io/rb/gepub)
7
7
 
8
- * http://rdoc.info/github/skoji/gepub/master/frames
8
+ * http://rdoc.info/github/skoji/gepub/main/frames
9
9
 
10
10
  ## DESCRIPTION:
11
11
 
@@ -103,9 +103,13 @@ epubname = File.join(File.dirname(__FILE__), 'example_test.epub')
103
103
  # auto-generated nav file will not appear on spine.
104
104
  book.generate_epub(epubname)
105
105
  ```
106
- * [examples in this repository](https://github.com/skoji/gepub/tree/master/examples/)
106
+ * [examples in this repository](https://github.com/skoji/gepub/tree/main/examples/)
107
107
 
108
108
  ## INSTALL:
109
109
 
110
110
  * gem install gepub
111
111
 
112
+ ## DONATE:
113
+
114
+ * Bitcoin Address: `1M69AwoxpgPZsp5KStLUEjP7so5dHVfDTH`
115
+
data/Rakefile CHANGED
@@ -14,7 +14,7 @@ end
14
14
 
15
15
  # also generates 'lib/gepub/book_add_item.rb'
16
16
  file 'lib/gepub/metadata_add.rb' => 'tools/generate_function.rb' do
17
- sh %Q(ruby tools/generate_function.rb)
17
+ sh %Q(ruby tools/generate_function.rb)
18
18
  end
19
19
 
20
20
  desc 'auto generate code'
data/gepub.gemspec CHANGED
@@ -16,8 +16,10 @@ Gem::Specification.new do |s|
16
16
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
17
17
  s.require_paths = ["lib"]
18
18
 
19
- s.add_runtime_dependency "nokogiri", ">= 1.8.2", "< 1.11"
20
- s.add_runtime_dependency "rubyzip", "> 1.1.1", "< 2.3"
19
+ s.add_runtime_dependency "nokogiri", ">= 1.8.2", "< 2.0"
20
+ s.add_runtime_dependency "rubyzip", "> 1.1.1", "< 2.4"
21
+ s.add_development_dependency "epubcheck-ruby"
21
22
  s.add_development_dependency "rake"
22
23
  s.add_development_dependency "rspec"
24
+ s.add_development_dependency "rubocop"
23
25
  end
@@ -3,6 +3,8 @@ require 'nokogiri'
3
3
  module GEPUB
4
4
  class Bindings
5
5
  include XMLUtil
6
+ include InspectMixin
7
+
6
8
  class MediaType
7
9
  attr_accessor :handler, :media_type
8
10
  def initialize(handler, media_type)
data/lib/gepub/book.rb CHANGED
@@ -79,6 +79,8 @@ module GEPUB
79
79
  # set page-proression-direction attribute to spine.
80
80
 
81
81
  class Book
82
+ include InspectMixin
83
+
82
84
  MIMETYPE='mimetype'
83
85
  MIMETYPE_CONTENTS='application/epub+zip'
84
86
  CONTAINER='META-INF/container.xml'
@@ -316,6 +318,9 @@ EOF
316
318
  # build nav
317
319
  builder = Nokogiri::XML::Builder.new {
318
320
  |doc|
321
+ unless version.to_f < 3.0
322
+ doc.doc.create_internal_subset('html', nil, nil )
323
+ end
319
324
  doc.html('xmlns' => "http://www.w3.org/1999/xhtml",'xmlns:epub' => "http://www.idpf.org/2007/ops") {
320
325
  doc.head {
321
326
  doc.title title
@@ -1,3 +1,5 @@
1
+ ## this file is automatically generated by tools/generate_function.rb . do not edit this code directly.
2
+
1
3
  module GEPUB
2
4
  class Book
3
5
  # add an item(i.e. html, images, audios, etc) to Book.
@@ -0,0 +1,26 @@
1
+ module GEPUB
2
+ module InspectMixin
3
+ def inspect
4
+ result = instance_variables.each
5
+ .with_object({}) { |name, h| h[name] = instance_variable_get(name) }
6
+ .reject { |name, value| value.nil? }
7
+ .map { |name, value|
8
+ case value
9
+ when true, false, Symbol, Numeric, Array, Hash
10
+ "#{name}=#{value.inspect}"
11
+ when String
12
+ if value.length > 80
13
+ "#{name}=(omitted)"
14
+ else
15
+ "#{name}=#{value.inspect}"
16
+ end
17
+ else
18
+ "#{name}=#<#{value.class.name}>"
19
+ end
20
+ }
21
+ .join(' ')
22
+
23
+ "#<#{self.class.name} " + result + '>'
24
+ end
25
+ end
26
+ end
data/lib/gepub/item.rb CHANGED
@@ -6,6 +6,8 @@ module GEPUB
6
6
  # #id, #id=, #set_id, #href, #href=, #set_href, #media_type, #media_type=, #set_media_type,
7
7
  # #fallback, #fallback=, #set_fallback, #media_overlay, #media_overlay=, #set_media_overlay
8
8
  class Item
9
+ include InspectMixin
10
+
9
11
  attr_accessor :content
10
12
  def self.create(parent, attributes = {})
11
13
  Item.new(attributes['id'], attributes['href'], attributes['media-type'], parent,
@@ -46,12 +48,14 @@ module GEPUB
46
48
  media_type
47
49
  end
48
50
 
49
- def [](x)
50
- @attributes[x]
51
+ # get +attribute+
52
+ def [](attribute)
53
+ @attributes[attribute]
51
54
  end
52
55
 
53
- def []=(x,y)
54
- @attributes[x] = y
56
+ # set +attribute+
57
+ def []=(attribute, value)
58
+ @attributes[attribute] = value
55
59
  end
56
60
 
57
61
  # add value to properties attribute.
@@ -106,9 +110,10 @@ module GEPUB
106
110
  else
107
111
  prefix = "#{ns_prefix}:"
108
112
  end
113
+ images = parsed.xpath("//#{prefix}img[starts-with(@src,'http')]")
109
114
  videos = parsed.xpath("//#{prefix}video[starts-with(@src,'http')]") + parsed.xpath("//#{prefix}video/#{prefix}source[starts-with(@src,'http')]")
110
115
  audios = parsed.xpath("//#{prefix}audio[starts-with(@src,'http')]") + parsed.xpath("//#{prefix}audio/#{prefix}source[starts-with(@src,'http')]")
111
- if videos.size > 0 || audios.size > 0
116
+ if images.size > 0 || videos.size > 0 || audios.size > 0
112
117
  self.add_property('remote-resources')
113
118
  end
114
119
  if parsed.xpath("//p:math", { 'p' => 'http://www.w3.org/1998/Math/MathML' }).size > 0
@@ -137,12 +142,19 @@ module GEPUB
137
142
  self
138
143
  end
139
144
 
140
- # add content form io or file to the item
145
+ # add content from io or file to the item
141
146
  def add_content(io_or_filename)
142
- io = io_or_filename
143
147
  if io_or_filename.class == String
144
- io = File.new(io_or_filename)
148
+ File.open(io_or_filename, mode='r') do |f|
149
+ add_content_io f
150
+ end
151
+ else
152
+ add_content_io io_or_filename
145
153
  end
154
+ self
155
+ end
156
+
157
+ def add_content_io(io)
146
158
  io.binmode
147
159
  @content = io.read
148
160
  if File.extname(self.href) =~ /x?html$/
@@ -3,6 +3,8 @@ require 'nokogiri'
3
3
  module GEPUB
4
4
  class Manifest
5
5
  include XMLUtil
6
+ include InspectMixin
7
+
6
8
  attr_accessor :opf_version
7
9
  def self.parse(manifest_xml, opf_version = '3.0', id_pool = Package::IDPool.new)
8
10
  Manifest.new(opf_version, id_pool) {
data/lib/gepub/meta.rb CHANGED
@@ -16,12 +16,14 @@ module GEPUB
16
16
  @parent.register_meta(self) unless @parent.nil?
17
17
  end
18
18
 
19
- def [](x)
20
- @attributes[x]
19
+ # get +attribute+
20
+ def [](attribute)
21
+ @attributes[attribute]
21
22
  end
22
23
 
23
- def []=(x,y)
24
- @attributes[x] = y
24
+ # set +attribute+
25
+ def []=(attribute, value)
26
+ @attributes[attribute] = value
25
27
  end
26
28
 
27
29
  def refiner_list(name)
@@ -18,6 +18,8 @@ module GEPUB
18
18
  end
19
19
  end
20
20
  include XMLUtil, DSLUtil
21
+ include InspectMixin
22
+
21
23
  attr_accessor :opf_version
22
24
  # parse metadata element. metadata_xml should be Nokogiri::XML::Node object.
23
25
  def self.parse(metadata_xml, opf_version = '3.0', id_pool = Package::IDPool.new)
@@ -1,5 +1,7 @@
1
+ ## this file is automatically generated by tools/generate_function.rb . do not edit this code directly.
2
+
1
3
  module GEPUB
2
- class Metadata
4
+ class Metadata
3
5
  CONTENT_NODE_LIST = ['identifier', 'title', 'language', 'contributor', 'creator', 'coverage', 'date','description','format','publisher','relation','rights','source','subject','type'].each {
4
6
  |node|
5
7
  define_method(node + '_list') { @content_nodes[node].dup.sort_as_meta }
@@ -14,7 +16,7 @@ module GEPUB
14
16
 
15
17
  define_method(node, ->(content=UNASSIGNED, deprecated_id=nil, id:nil,
16
18
  title_type: nil,identifier_type: nil,display_seq: nil,file_as: nil,group_position: nil,role: nil,
17
- lang: nil, alternates: {}) {
19
+ lang: nil, alternates: {}) {
18
20
  if unassigned?(content)
19
21
  get_first_node(node)
20
22
  else
@@ -48,7 +50,7 @@ module GEPUB
48
50
 
49
51
  def add_title(content, deprecated_id = nil, deprecated_title_type = nil, id: nil,
50
52
  title_type: nil,identifier_type: nil,display_seq: nil,file_as: nil,group_position: nil,role: nil,
51
- lang: nil, alternates: {})
53
+ lang: nil, alternates: {})
52
54
  if deprecated_id
53
55
  warn 'second argument for add_title is deprecated. use id: instead'
54
56
  id = deprecated_id
@@ -58,15 +60,15 @@ module GEPUB
58
60
  title_type = deprecated_title_type
59
61
  end
60
62
  meta = add_metadata('title', content, id: id,
61
- title_type: title_type,identifier_type: identifier_type,display_seq: display_seq,file_as: file_as,group_position: group_position,role: role,
62
- lang: lang, alternates: alternates)
63
+ title_type: title_type,identifier_type: identifier_type,display_seq: display_seq,file_as: file_as,group_position: group_position,role: role,
64
+ lang: lang, alternates: alternates)
63
65
  yield meta if block_given?
64
66
  meta
65
67
  end
66
68
 
67
69
  def add_person(name, content, deprecated_id = nil, deprecated_role = nil, id: nil,
68
- title_type: nil,identifier_type: nil,display_seq: nil,file_as: nil,group_position: nil,role: nil,
69
- lang: nil, alternates: {})
70
+ title_type: nil,identifier_type: nil,display_seq: nil,file_as: nil,group_position: nil,role: nil,
71
+ lang: nil, alternates: {})
70
72
  if deprecated_id
71
73
  warn 'second argument for add_person is deprecated. use id: instead'
72
74
  id = deprecated_id
@@ -76,15 +78,15 @@ module GEPUB
76
78
  role = deprecated_role
77
79
  end
78
80
  meta = add_metadata(name, content, id: id,
79
- title_type: title_type,identifier_type: identifier_type,display_seq: display_seq,file_as: file_as,group_position: group_position,role: role,
80
- lang: lang, alternates: alternates)
81
+ title_type: title_type,identifier_type: identifier_type,display_seq: display_seq,file_as: file_as,group_position: group_position,role: role,
82
+ lang: lang, alternates: alternates)
81
83
  yield meta if block_given?
82
84
  meta
83
85
  end
84
86
 
85
87
  def add_creator(content, deprecated_id = nil, deprecated_role = nil, id: nil,
86
88
  title_type: nil,identifier_type: nil,display_seq: nil,file_as: nil,group_position: nil,role: nil,
87
- lang: nil, alternates: {})
89
+ lang: nil, alternates: {})
88
90
  if deprecated_id
89
91
  warn 'second argument for add_creator is deprecated. use id: instead'
90
92
  id = deprecated_id
@@ -93,17 +95,17 @@ module GEPUB
93
95
  warn 'third argument for add_creator is deprecated. use role: instead'
94
96
  role = deprecated_role
95
97
  end
96
- role = 'aut' if role.nil?
98
+ role = 'aut' if role.nil?
97
99
  meta = add_person('creator', content, id: id,
98
- title_type: title_type,identifier_type: identifier_type,display_seq: display_seq,file_as: file_as,group_position: group_position,role: role,
99
- lang: lang, alternates: alternates)
100
+ title_type: title_type,identifier_type: identifier_type,display_seq: display_seq,file_as: file_as,group_position: group_position,role: role,
101
+ lang: lang, alternates: alternates)
100
102
  yield meta if block_given?
101
103
  meta
102
104
  end
103
105
 
104
106
  def add_contributor(content, deprecated_id = nil, deprecated_role = nil, id: nil,
105
107
  title_type: nil,identifier_type: nil,display_seq: nil,file_as: nil,group_position: nil,role: nil,
106
- lang: nil, alternates: {})
108
+ lang: nil, alternates: {})
107
109
  if deprecated_id
108
110
  warn 'second argument for add_contributor is deprecated. use id: instead'
109
111
  id = deprecated_id
@@ -113,30 +115,30 @@ module GEPUB
113
115
  role = deprecated_role
114
116
  end
115
117
  meta = add_person('contributor', content, id: id,
116
- title_type: title_type,identifier_type: identifier_type,display_seq: display_seq,file_as: file_as,group_position: group_position,role: role,
117
- lang: lang, alternates: alternates)
118
+ title_type: title_type,identifier_type: identifier_type,display_seq: display_seq,file_as: file_as,group_position: group_position,role: role,
119
+ lang: lang, alternates: alternates)
118
120
  yield meta if block_given?
119
121
  meta
120
122
  end
121
123
 
122
- def add_metadata(name, content, id: nil, itemclass: Meta,
123
- title_type: nil,identifier_type: nil,display_seq: nil,file_as: nil,group_position: nil,role: nil,
124
- lang: nil, alternates: {}
125
- )
126
- meta = add_metadata_internal(name, content, id: id, itemclass: itemclass)
124
+ def add_metadata(name, content, id: nil, itemclass: Meta,
125
+ title_type: nil,identifier_type: nil,display_seq: nil,file_as: nil,group_position: nil,role: nil,
126
+ lang: nil, alternates: {}
127
+ )
128
+ meta = add_metadata_internal(name, content, id: id, itemclass: itemclass)
127
129
  [{ value: title_type, name: 'title-type'},{ value: identifier_type, name: 'identifier-type'},{ value: display_seq, name: 'display-seq'},{ value: file_as, name: 'file-as'},{ value: group_position, name: 'group-position'},{ value: role, name: 'role'}].each do |refiner|
128
- if refiner[:value]
129
- meta.refine(refiner[:name], refiner[:value])
130
- end
131
- end
132
- if lang
133
- meta.lang = lang
134
- end
135
- if alternates
136
- meta.add_alternates alternates
137
- end
130
+ if refiner[:value]
131
+ meta.refine(refiner[:name], refiner[:value])
132
+ end
133
+ end
134
+ if lang
135
+ meta.lang = lang
136
+ end
137
+ if alternates
138
+ meta.add_alternates alternates
139
+ end
138
140
  yield meta if block_given?
139
- meta
140
- end
141
- end
141
+ meta
142
+ end
143
+ end
142
144
  end
data/lib/gepub/package.rb CHANGED
@@ -6,6 +6,8 @@ module GEPUB
6
6
  # Holds data in opf file.
7
7
  class Package
8
8
  include XMLUtil, DSLUtil
9
+ include InspectMixin
10
+
9
11
  extend Forwardable
10
12
  attr_accessor :path, :metadata, :manifest, :spine, :bindings, :epub_backward_compat, :contents_prefix, :prefixes
11
13
  def_delegators :@manifest, :item_by_href
@@ -142,15 +144,16 @@ module GEPUB
142
144
  })
143
145
  }
144
146
 
145
- def [](x)
146
- @attributes[x]
147
+ # get +attribute+
148
+ def [](attribute)
149
+ @attributes[attribute]
147
150
  end
148
151
 
149
- def []=(k,v)
150
- @attributes[k] = v
152
+ # set +attribute+
153
+ def []=(attribute, value)
154
+ @attributes[attribute] = value
151
155
  end
152
156
 
153
-
154
157
  def identifier(identifier=UNASSIGNED)
155
158
  if unassigned?(identifier)
156
159
  @metadata.identifier_by_id(unique_identifier)
data/lib/gepub/spine.rb CHANGED
@@ -3,6 +3,8 @@ require 'nokogiri'
3
3
  module GEPUB
4
4
  class Spine
5
5
  include XMLUtil
6
+ include InspectMixin
7
+
6
8
  attr_accessor :opf_version
7
9
  class Itemref
8
10
  def self.create(parent, attributes = {})
@@ -26,14 +28,16 @@ module GEPUB
26
28
  define_method(methodbase) { @attributes[name] }
27
29
  }
28
30
 
29
- def [](x)
30
- @attributes[x]
31
+ # get +attribute+
32
+ def [](attribute)
33
+ @attributes[attribute]
31
34
  end
32
35
 
33
- def []=(x,y)
34
- @attributes[x] = y
36
+ # set +attribute+
37
+ def []=(attribute, value)
38
+ @attributes[attribute] = value
35
39
  end
36
-
40
+
37
41
  def add_property(property)
38
42
  (@attributes['properties'] ||=[]) << property
39
43
  end
data/lib/gepub/version.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  module GEPUB
2
2
  # GEPUB gem version
3
- VERSION = "1.0.11"
3
+ VERSION = "1.0.15"
4
4
  end
data/lib/gepub.rb CHANGED
@@ -4,6 +4,7 @@ end if RUBY_VERSION < "2.7" && !(defined? ruby2_keywords)
4
4
  require 'gepub/version'
5
5
  require 'gepub/dsl_util'
6
6
  require 'gepub/xml_util'
7
+ require 'gepub/inspect_mixin'
7
8
  require 'gepub/meta'
8
9
  require 'gepub/datemeta'
9
10
  require 'gepub/meta_array'
@@ -1,3 +1,4 @@
1
+ require_relative '../lib/gepub/inspect_mixin.rb'
1
2
  require_relative '../lib/gepub/item.rb'
2
3
  attrs = GEPUB::Item::ATTRIBUTES.select do |attr|
3
4
  attr != 'href'
@@ -9,6 +10,8 @@ attrs << "property"
9
10
  attrs_arguments_string = attrs.map { |attr| "#{attr}: nil" }.join(',')
10
11
  attrs_internal_string = "{ " + attrs.map { |attr| "#{attr}: #{attr}"}.join(',') + " }"
11
12
  File.write(File.join(File.dirname(__FILE__), "../lib/gepub/book_add_item.rb"), <<EOF)
13
+ ## this file is automatically generated by tools/generate_function.rb . do not edit this code directly.
14
+
12
15
  module GEPUB
13
16
  class Book
14
17
  # add an item(i.e. html, images, audios, etc) to Book.
@@ -35,7 +38,7 @@ require_relative '../lib/gepub/dsl_util.rb'
35
38
  require_relative '../lib/gepub/meta.rb'
36
39
 
37
40
  refiners = GEPUB::Meta::REFINERS.map do |refiner|
38
- refiner.sub('-', '_')
41
+ refiner.sub('-', '_')
39
42
  end
40
43
 
41
44
  refiners_arguments_string = refiners.map { |refiner| "#{refiner}: nil" }.join(',')
@@ -46,8 +49,10 @@ meta_attr_arguments_string = "lang: nil, alternates: {}"
46
49
  meta_attr_arguments_set_string = "lang: lang, alternates: alternates"
47
50
 
48
51
  File.write(File.join(File.dirname(__FILE__), "../lib/gepub/metadata_add.rb"), <<EOF)
52
+ ## this file is automatically generated by tools/generate_function.rb . do not edit this code directly.
53
+
49
54
  module GEPUB
50
- class Metadata
55
+ class Metadata
51
56
  CONTENT_NODE_LIST = ['identifier', 'title', 'language', 'contributor', 'creator', 'coverage', 'date','description','format','publisher','relation','rights','source','subject','type'].each {
52
57
  |node|
53
58
  define_method(node + '_list') { @content_nodes[node].dup.sort_as_meta }
@@ -62,7 +67,7 @@ module GEPUB
62
67
 
63
68
  define_method(node, ->(content=UNASSIGNED, deprecated_id=nil, id:nil,
64
69
  #{refiners_arguments_string},
65
- #{meta_attr_arguments_string}) {
70
+ #{meta_attr_arguments_string}) {
66
71
  if unassigned?(content)
67
72
  get_first_node(node)
68
73
  else
@@ -96,7 +101,7 @@ module GEPUB
96
101
 
97
102
  def add_title(content, deprecated_id = nil, deprecated_title_type = nil, id: nil,
98
103
  #{refiners_arguments_string},
99
- #{meta_attr_arguments_string})
104
+ #{meta_attr_arguments_string})
100
105
  if deprecated_id
101
106
  warn 'second argument for add_title is deprecated. use id: instead'
102
107
  id = deprecated_id
@@ -106,15 +111,15 @@ module GEPUB
106
111
  title_type = deprecated_title_type
107
112
  end
108
113
  meta = add_metadata('title', content, id: id,
109
- #{refiners_arguments_set_string},
110
- #{meta_attr_arguments_set_string})
114
+ #{refiners_arguments_set_string},
115
+ #{meta_attr_arguments_set_string})
111
116
  yield meta if block_given?
112
117
  meta
113
118
  end
114
119
 
115
120
  def add_person(name, content, deprecated_id = nil, deprecated_role = nil, id: nil,
116
- #{refiners_arguments_string},
117
- #{meta_attr_arguments_string})
121
+ #{refiners_arguments_string},
122
+ #{meta_attr_arguments_string})
118
123
  if deprecated_id
119
124
  warn 'second argument for add_person is deprecated. use id: instead'
120
125
  id = deprecated_id
@@ -124,15 +129,15 @@ module GEPUB
124
129
  role = deprecated_role
125
130
  end
126
131
  meta = add_metadata(name, content, id: id,
127
- #{refiners_arguments_set_string},
128
- #{meta_attr_arguments_set_string})
132
+ #{refiners_arguments_set_string},
133
+ #{meta_attr_arguments_set_string})
129
134
  yield meta if block_given?
130
135
  meta
131
136
  end
132
137
 
133
138
  def add_creator(content, deprecated_id = nil, deprecated_role = nil, id: nil,
134
139
  #{refiners_arguments_string},
135
- #{meta_attr_arguments_string})
140
+ #{meta_attr_arguments_string})
136
141
  if deprecated_id
137
142
  warn 'second argument for add_creator is deprecated. use id: instead'
138
143
  id = deprecated_id
@@ -141,17 +146,17 @@ module GEPUB
141
146
  warn 'third argument for add_creator is deprecated. use role: instead'
142
147
  role = deprecated_role
143
148
  end
144
- role = 'aut' if role.nil?
149
+ role = 'aut' if role.nil?
145
150
  meta = add_person('creator', content, id: id,
146
- #{refiners_arguments_set_string},
147
- #{meta_attr_arguments_set_string})
151
+ #{refiners_arguments_set_string},
152
+ #{meta_attr_arguments_set_string})
148
153
  yield meta if block_given?
149
154
  meta
150
155
  end
151
156
 
152
157
  def add_contributor(content, deprecated_id = nil, deprecated_role = nil, id: nil,
153
158
  #{refiners_arguments_string},
154
- #{meta_attr_arguments_string})
159
+ #{meta_attr_arguments_string})
155
160
  if deprecated_id
156
161
  warn 'second argument for add_contributor is deprecated. use id: instead'
157
162
  id = deprecated_id
@@ -161,32 +166,32 @@ module GEPUB
161
166
  role = deprecated_role
162
167
  end
163
168
  meta = add_person('contributor', content, id: id,
164
- #{refiners_arguments_set_string},
165
- #{meta_attr_arguments_set_string})
169
+ #{refiners_arguments_set_string},
170
+ #{meta_attr_arguments_set_string})
166
171
  yield meta if block_given?
167
172
  meta
168
173
  end
169
174
 
170
- def add_metadata(name, content, id: nil, itemclass: Meta,
171
- #{refiners_arguments_string},
172
- #{meta_attr_arguments_string}
173
- )
174
- meta = add_metadata_internal(name, content, id: id, itemclass: itemclass)
175
+ def add_metadata(name, content, id: nil, itemclass: Meta,
176
+ #{refiners_arguments_string},
177
+ #{meta_attr_arguments_string}
178
+ )
179
+ meta = add_metadata_internal(name, content, id: id, itemclass: itemclass)
175
180
  #{refiners_string}.each do |refiner|
176
- if refiner[:value]
177
- meta.refine(refiner[:name], refiner[:value])
178
- end
179
- end
180
- if lang
181
- meta.lang = lang
182
- end
183
- if alternates
184
- meta.add_alternates alternates
185
- end
181
+ if refiner[:value]
182
+ meta.refine(refiner[:name], refiner[:value])
183
+ end
184
+ end
185
+ if lang
186
+ meta.lang = lang
187
+ end
188
+ if alternates
189
+ meta.add_alternates alternates
190
+ end
186
191
  yield meta if block_given?
187
- meta
188
- end
189
- end
192
+ meta
193
+ end
194
+ end
190
195
  end
191
196
  EOF
192
197
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gepub
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.11
4
+ version: 1.0.15
5
5
  platform: ruby
6
6
  authors:
7
7
  - KOJIMA Satoshi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-02-24 00:00:00.000000000 Z
11
+ date: 2021-10-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -19,7 +19,7 @@ dependencies:
19
19
  version: 1.8.2
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
- version: '1.11'
22
+ version: '2.0'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -29,7 +29,7 @@ dependencies:
29
29
  version: 1.8.2
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
- version: '1.11'
32
+ version: '2.0'
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: rubyzip
35
35
  requirement: !ruby/object:Gem::Requirement
@@ -39,7 +39,7 @@ dependencies:
39
39
  version: 1.1.1
40
40
  - - "<"
41
41
  - !ruby/object:Gem::Version
42
- version: '2.3'
42
+ version: '2.4'
43
43
  type: :runtime
44
44
  prerelease: false
45
45
  version_requirements: !ruby/object:Gem::Requirement
@@ -49,7 +49,21 @@ dependencies:
49
49
  version: 1.1.1
50
50
  - - "<"
51
51
  - !ruby/object:Gem::Version
52
- version: '2.3'
52
+ version: '2.4'
53
+ - !ruby/object:Gem::Dependency
54
+ name: epubcheck-ruby
55
+ requirement: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ version: '0'
60
+ type: :development
61
+ prerelease: false
62
+ version_requirements: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - ">="
65
+ - !ruby/object:Gem::Version
66
+ version: '0'
53
67
  - !ruby/object:Gem::Dependency
54
68
  name: rake
55
69
  requirement: !ruby/object:Gem::Requirement
@@ -78,6 +92,20 @@ dependencies:
78
92
  - - ">="
79
93
  - !ruby/object:Gem::Version
80
94
  version: '0'
95
+ - !ruby/object:Gem::Dependency
96
+ name: rubocop
97
+ requirement: !ruby/object:Gem::Requirement
98
+ requirements:
99
+ - - ">="
100
+ - !ruby/object:Gem::Version
101
+ version: '0'
102
+ type: :development
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ requirements:
106
+ - - ">="
107
+ - !ruby/object:Gem::Version
108
+ version: '0'
81
109
  description: gepub is a generic EPUB parser/generator. Generates and parse EPUB2 and
82
110
  EPUB3
83
111
  email:
@@ -89,9 +117,12 @@ extensions: []
89
117
  extra_rdoc_files: []
90
118
  files:
91
119
  - ".gitattributes"
120
+ - ".github/FUNDING.yml"
121
+ - ".github/dependabot.yml"
92
122
  - ".github/workflows/gempush.yml"
93
123
  - ".github/workflows/test.yml"
94
124
  - ".gitignore"
125
+ - ".rubocop.yml"
95
126
  - Gemfile
96
127
  - LICENSE.txt
97
128
  - README.md
@@ -112,6 +143,7 @@ files:
112
143
  - lib/gepub/builder_mixin.rb
113
144
  - lib/gepub/datemeta.rb
114
145
  - lib/gepub/dsl_util.rb
146
+ - lib/gepub/inspect_mixin.rb
115
147
  - lib/gepub/item.rb
116
148
  - lib/gepub/manifest.rb
117
149
  - lib/gepub/meta.rb
@@ -146,7 +178,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
146
178
  - !ruby/object:Gem::Version
147
179
  version: '0'
148
180
  requirements: []
149
- rubygems_version: 3.0.3
181
+ rubygems_version: 3.0.3.1
150
182
  signing_key:
151
183
  specification_version: 4
152
184
  summary: a generic EPUB library for Ruby.