epub-directory 0.1.2 → 0.1.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
  SHA256:
3
- metadata.gz: c406d45c681ecba7fb8906b5ba646f1cf7645ac8f4652bddc56068ad4ede9dcc
4
- data.tar.gz: 318180ee56185bfee95517c04083ba67b87084fe035df30cfcc58f60d592f501
3
+ metadata.gz: 5d83e49433eee1d1357877c6c404a7ed2a93f1f9012c66a65d3529386bb94031
4
+ data.tar.gz: '086df1667ae891d439f111f845babab261b175bec614de5541e70bcacdebdac1'
5
5
  SHA512:
6
- metadata.gz: f2f94ac1b4129ad6f4005bc097267635d5de29ce2cc2c023be1d9e9cb4b16cd6dba85eb63ef6d80dce8804505f2f724e170df15cbf086dd058fc4d1613b0ea89
7
- data.tar.gz: 250c933657ad7a425856b2cc5e449ab57673dfb78192f5a8a30960ca69df25ea892e99edad8a49a16ae34957445766686fa0131013a63f12d681ffe81c14088b
6
+ metadata.gz: 9d4266ab4400740c4ac3e7ac6bc8eb498eb141b573baa56ee75589adac1f2cfa7f4ea859380694882375d9ff98b6036f386235e52033b3fc9ab53d0f12af6762
7
+ data.tar.gz: 2e350c916c92b079301a5ca7cf390b9005ab45b2fe389fc4611a416894b58b632cb96e0b49c1d39e66825d19be8c3c8e1e0436544d07a09c637d00492793b4ad
data/ChangeLog.md CHANGED
@@ -1,3 +1,7 @@
1
+ ### 0.1.3 / 2020-02-08
2
+
3
+ * Build index page
4
+
1
5
  ### 0.1.0 / 2018-10-21
2
6
 
3
7
  * Initial release:
data/README.md CHANGED
@@ -39,19 +39,18 @@ This command builds EPUB directory site to `build` directory.
39
39
 
40
40
  ## Copyright
41
41
 
42
- #
43
- # Copyright (c) 2018 Kitaiti Makoto
44
- #
45
- # EPUB Directory is free software: you can redistribute it and/or modify
46
- # it under the terms of the GNU Affero General Public License as published
47
- # by the Free Software Foundation, either version 3 of the License, or
48
- # (at your option) any later version.
49
- #
50
- # EPUB Directory is distributed in the hope that it will be useful,
51
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
52
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
53
- # GNU Affero General Public License for more details.
54
- #
55
- # You should have received a copy of the GNU Affero General Public License
56
- # along with EPUB Directory. If not, see <http://www.gnu.org/licenses/>.
57
- #
42
+
43
+ Copyright (c) 2018 Kitaiti Makoto
44
+
45
+ EPUB Directory is free software: you can redistribute it and/or modify
46
+ it under the terms of the GNU Affero General Public License as published
47
+ by the Free Software Foundation, either version 3 of the License, or
48
+ (at your option) any later version.
49
+
50
+ EPUB Directory is distributed in the hope that it will be useful,
51
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
52
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
53
+ GNU Affero General Public License for more details.
54
+
55
+ You should have received a copy of the GNU Affero General Public License
56
+ along with EPUB Directory. If not, see <http://www.gnu.org/licenses/>.
@@ -34,10 +34,10 @@ Gem::Specification.new do |gem|
34
34
  gem.add_runtime_dependency "haml"
35
35
  gem.add_runtime_dependency "rss-opds"
36
36
 
37
- gem.add_development_dependency 'bundler', '~> 1.10'
38
- gem.add_development_dependency 'rake', '~> 10.0'
39
- gem.add_development_dependency 'rubygems-tasks', '~> 0.2'
40
- gem.add_development_dependency 'yard', '~> 0.8'
37
+ gem.add_development_dependency 'bundler'
38
+ gem.add_development_dependency 'rake'
39
+ gem.add_development_dependency 'rubygems-tasks'
40
+ gem.add_development_dependency 'yard'
41
41
  gem.add_development_dependency "test-unit"
42
42
  gem.add_development_dependency "test-unit-notify"
43
43
  end
@@ -34,14 +34,19 @@ module EPUB
34
34
 
35
35
  def build
36
36
  DEST_DIR.mkpath
37
+ opfs = []
37
38
  Pathname.glob("#{SRC_DIR}/**/*.opf").each do |opf_path|
38
39
  make_destination_directory opf_path
39
40
  build_opf opf_path
40
41
  build_html opf_path
41
42
  build_opds opf_path
43
+
44
+ opfs << opf_path.to_path.sub(SRC_DIR.to_path, DEST_DIR.to_path)
42
45
  rescue => error
43
46
  warn "Error occurred while processing #{opf_path}"
47
+ raise if $DEBUG
44
48
  end
49
+ build_indices opfs
45
50
  end
46
51
 
47
52
  def make_destination_directory(opf_path)
@@ -78,11 +83,13 @@ module EPUB
78
83
  entry.updated = rendition.metadata.modified.to_s
79
84
  entry.title = rendition.metadata.title
80
85
  # TODO: Filter authors by refines
81
- rendition.metadata.creators.each do |creator|
86
+ creators = rendition.metadata.creators + rendition.metadata.metas.select {|meta| ["dc:publisher", "dcterms:creator"].include? meta.property}
87
+ creators.each do |creator|
82
88
  entry.authors.new_author do |author|
83
89
  author.name = creator.to_s
84
90
  end
85
91
  end
92
+ entry.author = "Unknown"
86
93
  entry.summary = rendition.metadata.description
87
94
  entry.links.new_link do |link|
88
95
  link.rel = RSS::OPDS::RELATIONS["acquisition"] # TODO: Arrange by info.toml
@@ -98,6 +105,21 @@ module EPUB
98
105
  raise NotImplementedError
99
106
  end
100
107
 
108
+ def build_indices(opfs)
109
+ dest_path = DEST_DIR/"index.html"
110
+ page_title = "EPUB Directory"
111
+ items = opfs.lazy.collect {|path|
112
+ {
113
+ "uri" => Pathname.new(path).sub_ext(".html").to_path.sub(DEST_DIR.to_path, ""),
114
+ "metadata" => EPUB::Parser::Publication.new(File.read(path)).parse.metadata
115
+ }
116
+ }
117
+ template_path = File.join(__dir__, "../../templates/index.haml")
118
+ engine = Haml::Engine.new(File.read(template_path))
119
+ engine.options[:format] = :html5
120
+ dest_path.write engine.render(binding)
121
+ end
122
+
101
123
  class Rendition
102
124
  class << self
103
125
  def add(rendition)
@@ -18,6 +18,6 @@
18
18
  module EPUB
19
19
  class Directory
20
20
  # epub-directory version
21
- VERSION = "0.1.2"
21
+ VERSION = "0.1.3"
22
22
  end
23
23
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: epub-directory
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - KITAITI Makoto
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-10-22 00:00:00.000000000 Z
11
+ date: 2020-02-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: epub-parser
@@ -70,58 +70,58 @@ dependencies:
70
70
  name: bundler
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - "~>"
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
- version: '1.10'
75
+ version: '0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - "~>"
80
+ - - ">="
81
81
  - !ruby/object:Gem::Version
82
- version: '1.10'
82
+ version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: rake
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - "~>"
87
+ - - ">="
88
88
  - !ruby/object:Gem::Version
89
- version: '10.0'
89
+ version: '0'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - "~>"
94
+ - - ">="
95
95
  - !ruby/object:Gem::Version
96
- version: '10.0'
96
+ version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: rubygems-tasks
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - "~>"
101
+ - - ">="
102
102
  - !ruby/object:Gem::Version
103
- version: '0.2'
103
+ version: '0'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - "~>"
108
+ - - ">="
109
109
  - !ruby/object:Gem::Version
110
- version: '0.2'
110
+ version: '0'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: yard
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - "~>"
115
+ - - ">="
116
116
  - !ruby/object:Gem::Version
117
- version: '0.8'
117
+ version: '0'
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - "~>"
122
+ - - ">="
123
123
  - !ruby/object:Gem::Version
124
- version: '0.8'
124
+ version: '0'
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: test-unit
127
127
  requirement: !ruby/object:Gem::Requirement
@@ -195,8 +195,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
195
195
  - !ruby/object:Gem::Version
196
196
  version: '0'
197
197
  requirements: []
198
- rubyforge_project:
199
- rubygems_version: 2.7.6
198
+ rubygems_version: 3.1.2
200
199
  signing_key:
201
200
  specification_version: 4
202
201
  summary: EPUB directory builder