kindlegen 3.0.1 → 3.1.0

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
- SHA1:
3
- metadata.gz: db82ec9b6513f04b3265919d8dea63278deabacd
4
- data.tar.gz: a4f65d8568002721d6a5dd54cbbd9db85bb52641
2
+ SHA256:
3
+ metadata.gz: aa25bd7075e56327aa57252627e4a6942304a962119ccf1dcc6b60db0d6e468c
4
+ data.tar.gz: 91d23647cfbb87f27343e961d656eac991d8384b7873bc9fdd784ad3d5dc96ed
5
5
  SHA512:
6
- metadata.gz: 9f2d57d17bd1c916174e35444aecb13df59cc3abef1aaa8d66378914c983e2c9b5c5d5217ce98156f65ea2794c1f472cdb426ae591746fdbfc37b8f792bf46b6
7
- data.tar.gz: 2c04d1de10bcf8c741b2c2b3f9155ae44359176577074ef1925b6192f2b13d44e8413ead3b337ce36b52833fc29eecd745952cca99dbe74b2f2a9ab703b968a5
6
+ metadata.gz: 72280f6dae8e5082161340c186d27946149f3236fd65b00d5c7e016efd9844e203ed649db55c8021608b0c44c089ce638bee7ffd2e4622f394b90b25e55ba772
7
+ data.tar.gz: c24c8be58fd34494fe4d4b0b80e5caec846053ff604e7d9fa693ca0af8fae798d4e532e11b9a3c355b210cc64b36bc0f564afba577c5b4a47903acef31acdbe7
@@ -0,0 +1,19 @@
1
+ name: CI
2
+ on: [push, pull_request]
3
+
4
+ jobs:
5
+ build:
6
+ strategy:
7
+ matrix:
8
+ ruby: [2.4, 2.5, 2.6, 2.7]
9
+ # TODO: https://github.com/tdtds/kindlegen/issues/36
10
+ # Add macos-latest when kindlegen is fixed to work on Catalina
11
+ platform: [ubuntu-latest, windows-latest]
12
+ runs-on: ${{ matrix.platform }}
13
+ steps:
14
+ - uses: actions/checkout@v2
15
+ - uses: ruby/setup-ruby@v1
16
+ with:
17
+ ruby-version: ${{ matrix.ruby }}
18
+ - run: bundle install --jobs 4 --retry 3
19
+ - run: bundle exec rake build test
data/.gitignore CHANGED
@@ -2,6 +2,7 @@
2
2
  *.swp
3
3
  /pkg
4
4
  /.bundle
5
+ /.idea
5
6
  /vendor/bundle
6
7
  /Gemfile.lock
7
8
  /.ruby-version
data/README.md CHANGED
@@ -12,12 +12,15 @@ Require `kindlegen`, then run kindlegen commands.
12
12
 
13
13
  Returns the path of the kindlegen command.
14
14
 
15
- ### Kindlegen.run( *args )
15
+ ### Kindlegen.run(*args)
16
16
 
17
17
  Runs the kindlegen command with specified parameters.
18
18
 
19
19
  ### Example
20
20
  require 'kindlegen'
21
- Kindlegen.run("sample.opf", "-o", "sample.mobi")
22
-
23
-
21
+ stdout, stderr, status = Kindlegen.run("sample.opf", "-o", "sample.mobi")
22
+ if status == 0
23
+ puts stdout
24
+ else
25
+ $stderr.puts stderr
26
+ end
data/ext/Rakefile CHANGED
@@ -4,8 +4,8 @@
4
4
  #
5
5
  require 'rbconfig'
6
6
  require 'fileutils'
7
+ require 'open-uri'
7
8
 
8
- AMAZON = 'http://kindlegen.s3.amazonaws.com'
9
9
  BINDIR = '../bin'
10
10
 
11
11
  def create_default_task(target)
@@ -18,29 +18,42 @@ def create_default_task(target)
18
18
  end
19
19
 
20
20
  def create_task_for_unix(config)
21
+ require 'rubygems/package'
22
+ require 'zlib'
23
+
21
24
  tarball = config[:tarball]
22
- unzip = config[:unzip]
23
25
  target = config[:target]
24
- url = "#{AMAZON}/#{tarball}"
26
+ url = ENV['KINDLEGEN_TARBALL_URL'] || config[:url]
25
27
 
26
28
  create_default_task(target)
27
29
 
28
30
  file target => tarball do
29
- sh "#{unzip} #{tarball}"
30
- sh "chmod +x #{target}"
31
+ Gem::Package::TarReader.new(Zlib::GzipReader.open(tarball)) do |tar|
32
+ tar.each do |entry|
33
+ next unless entry.file?
34
+ next if File.exist?(entry.full_name)
35
+
36
+ dir = File.dirname(entry.full_name)
37
+ FileUtils.mkpath(dir) if dir != '.' && !File.exist?(dir)
38
+ File.open(entry.full_name, 'wb') do |f|
39
+ f.write(entry.read)
40
+ end
41
+ end
42
+ end
43
+ File.chmod(0o755, target)
31
44
  end
32
45
 
33
46
  file tarball do
34
- sh "curl #{url} -o #{tarball}"
47
+ curl(url, tarball)
35
48
  end
36
49
  end
37
50
 
38
- # curl for windows
39
51
  def curl(url, tarball)
40
52
  puts "open(#{url})"
41
53
  puts "save to #{tarball}"
42
- data = open(url, 'rb').read
43
- open(tarball, 'wb').write(data)
54
+ open(url) do |file|
55
+ IO.copy_stream(file, tarball)
56
+ end
44
57
  end
45
58
 
46
59
  # unzip for windows
@@ -49,17 +62,16 @@ def unzip(tarball)
49
62
  Zip::File.open(tarball).each do |entry|
50
63
  dir = File.dirname(entry.name)
51
64
  FileUtils.mkpath(dir) if dir != '.' && !File.exist?(dir)
52
- entry.extract unless File.exist?(entry.name)
65
+ entry.extract(dest_path=entry.name) unless File.exist?(entry.name)
53
66
  end
54
67
  end
55
68
 
56
69
  def create_task_for_windows(config)
57
- require 'open-uri'
58
70
  require 'zip'
59
71
 
60
72
  tarball = config[:tarball]
61
73
  target = config[:target]
62
- url = "#{AMAZON}/#{tarball}"
74
+ url = ENV['KINDLEGEN_TARBALL_URL'] || config[:url]
63
75
 
64
76
  create_default_task(target)
65
77
 
@@ -76,17 +88,18 @@ case RbConfig::CONFIG['host_os']
76
88
  when /mac|darwin/i
77
89
  create_task_for_unix(
78
90
  { tarball: 'KindleGen_Mac_i386_v2_9.zip',
79
- unzip: 'unzip',
80
- target: 'kindlegen' })
91
+ target: 'kindlegen',
92
+ url: 'https://web.archive.org/web/20200814013519/https://kindlegen.s3.amazonaws.com/KindleGen_Mac_i386_v2_9.zip' })
81
93
  when /linux|cygwin/i
82
94
  create_task_for_unix(
83
95
  { tarball: 'kindlegen_linux_2.6_i386_v2_9.tar.gz',
84
- unzip: 'tar -zx --no-same-owner -f',
85
- target: 'kindlegen' })
96
+ target: 'kindlegen',
97
+ url: 'https://web.archive.org/web/20150803131026/https://kindlegen.s3.amazonaws.com/kindlegen_linux_2.6_i386_v2_9.tar.gz' })
86
98
  when /mingw32|mswin32/i
87
99
  create_task_for_windows(
88
100
  { tarball: 'kindlegen_win32_v2_9.zip',
89
- target: 'kindlegen.exe' })
101
+ target: 'kindlegen.exe',
102
+ url: 'http://web.archive.org/web/20150407060917/http://kindlegen.s3.amazonaws.com/kindlegen_win32_v2_9.zip' })
90
103
  else
91
104
  STDERR.puts "Host OS unsupported!"
92
105
  exit(1)
data/kindlegen.gemspec CHANGED
@@ -6,7 +6,7 @@ Gem::Specification.new do |s|
6
6
  s.name = "kindlegen"
7
7
  s.version = Kindlegen::VERSION
8
8
  s.platform = Gem::Platform::RUBY
9
- s.required_ruby_version = '>= 2.0.0'
9
+ s.required_ruby_version = '>= 2.4.0'
10
10
 
11
11
  s.authors = ["TADA Tadashi"]
12
12
  s.email = ["t@tdtds.jp"]
@@ -23,9 +23,9 @@ Gem::Specification.new do |s|
23
23
  s.extensions = ['ext/Rakefile']
24
24
 
25
25
  s.add_dependency 'rubyzip'
26
+ s.add_dependency "rake"
26
27
 
27
28
  # specify any dependencies here; for example:
28
- s.add_development_dependency "rake"
29
29
  s.add_development_dependency "pry"
30
30
  s.add_development_dependency "test-unit"
31
31
  end
@@ -1,3 +1,3 @@
1
1
  module Kindlegen
2
- VERSION = '3.0.1' unless const_defined?(:VERSION)
2
+ VERSION = '3.1.0' unless const_defined?(:VERSION)
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kindlegen
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.1
4
+ version: 3.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - TADA Tadashi
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-12-20 00:00:00.000000000 Z
11
+ date: 2021-04-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rubyzip
@@ -31,7 +31,7 @@ dependencies:
31
31
  - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
- type: :development
34
+ type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
@@ -76,9 +76,9 @@ extensions:
76
76
  - ext/Rakefile
77
77
  extra_rdoc_files: []
78
78
  files:
79
+ - ".github/workflows/ci.yml"
79
80
  - ".gitignore"
80
81
  - ".tachikoma.yml"
81
- - ".travis.yml"
82
82
  - Gemfile
83
83
  - LICENSE
84
84
  - README.md
@@ -101,15 +101,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
101
101
  requirements:
102
102
  - - ">="
103
103
  - !ruby/object:Gem::Version
104
- version: 2.0.0
104
+ version: 2.4.0
105
105
  required_rubygems_version: !ruby/object:Gem::Requirement
106
106
  requirements:
107
107
  - - ">="
108
108
  - !ruby/object:Gem::Version
109
109
  version: '0'
110
110
  requirements: []
111
- rubyforge_project:
112
- rubygems_version: 2.6.8
111
+ rubygems_version: 3.1.6
113
112
  signing_key:
114
113
  specification_version: 4
115
114
  summary: Installing kindlegen command.
data/.travis.yml DELETED
@@ -1,9 +0,0 @@
1
- language: ruby
2
- sudo: false
3
- cache: bundler
4
- rvm:
5
- - 2.1.10
6
- - 2.2.6
7
- - 2.3.3
8
- # NOTE the build step is required to run the tests
9
- script: bundle exec rake build test