epdiff 2.0.0.rc2 → 2.0.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
2
  SHA256:
3
- metadata.gz: 48f072768d70f69bb8390ee6fcb2b9261a2eee8df99084a7d162ec7cf0827ea5
4
- data.tar.gz: 97a0b665572c96e42f72d3a0c27f15cab7354814bac786b93d44163b76ca899f
3
+ metadata.gz: eade3ce9735f322e276d9979f95bac249e6f1c97652c7ed81751aab53040822e
4
+ data.tar.gz: 17f524806a498fce7443f82b720130d532151d7cc0480fae467dede02dcf927b
5
5
  SHA512:
6
- metadata.gz: '092f898933263c56d975e02cb50be1881e043817a79ddf7b54abf1c5a849ab0d259075048d03bab8ddf336a48b34a9dfb3b0efc5a38bb922a18949c9e358b4de'
7
- data.tar.gz: 0f3f84ecae7a44c54e5b263969c4e64cb558d73ca1c167d39dea2211ed4fa24fe76fa28ed1f230b3b2c6b7f327b5839e610730dea5baf45eeff5c6e71afc18c2
6
+ metadata.gz: d26b43c8660ce91b714fae6e4f9c9edaa1631d61b5f72ccad304179057e1923b3ac9d14ae80c4344fc70b0d754991a344f85103bdcc12f0cacab95775c598dae
7
+ data.tar.gz: 92a0d7cd8c8fee867a08b3fe390885903df627cb693431a10c67c6dcced232d390a397cec9021da48a7f8aed9e933614012ebf9682d03a5ebc96b570087e90d3
@@ -0,0 +1,28 @@
1
+ name: Ruby on Win
2
+
3
+ on:
4
+ push:
5
+ branches: [ master ]
6
+ pull_request:
7
+ branches: [ master ]
8
+
9
+ jobs:
10
+ test:
11
+
12
+ runs-on: windows-latest
13
+ strategy:
14
+ fail-fast: false
15
+ matrix:
16
+ ruby-version: ['2.5', '2.6', '2.7', '3.0']
17
+
18
+ steps:
19
+ - uses: actions/checkout@v2
20
+ - name: Set up Ruby
21
+ # To automatically get bug fixes and new Ruby versions for ruby/setup-ruby,
22
+ # change this to (see https://github.com/ruby/setup-ruby#versioning):
23
+ uses: ruby/setup-ruby@v1
24
+ with:
25
+ ruby-version: ${{ matrix.ruby-version }}
26
+ bundler-cache: true # runs 'bundle install' and caches installed gems automatically
27
+ - name: Run tests
28
+ run: bundle exec rake test # do not use rubucop on windows
@@ -0,0 +1,35 @@
1
+ # This workflow uses actions that are not certified by GitHub.
2
+ # They are provided by a third-party and are governed by
3
+ # separate terms of service, privacy policy, and support
4
+ # documentation.
5
+ # This workflow will download a prebuilt Ruby version, install dependencies and run tests with Rake
6
+ # For more information see: https://github.com/marketplace/actions/setup-ruby-jruby-and-truffleruby
7
+
8
+ name: Ruby
9
+
10
+ on:
11
+ push:
12
+ branches: [ master ]
13
+ pull_request:
14
+ branches: [ master ]
15
+
16
+ jobs:
17
+ test:
18
+
19
+ runs-on: ubuntu-latest
20
+ strategy:
21
+ matrix:
22
+ ruby-version: ['2.5', '2.6', '2.7', '3.0']
23
+
24
+ steps:
25
+ - uses: actions/checkout@v2
26
+ - name: Set up Ruby
27
+ # To automatically get bug fixes and new Ruby versions for ruby/setup-ruby,
28
+ # change this to (see https://github.com/ruby/setup-ruby#versioning):
29
+ # uses: ruby/setup-ruby@v1
30
+ uses: ruby/setup-ruby@473e4d8fe5dd94ee328fdfca9f8c9c7afc9dae5e
31
+ with:
32
+ ruby-version: ${{ matrix.ruby-version }}
33
+ bundler-cache: true # runs 'bundle install' and caches installed gems automatically
34
+ - name: Run tests
35
+ run: bundle exec rake
@@ -0,0 +1,31 @@
1
+ # inherit_from: .rubocop_todo.yml
2
+ AllCops:
3
+ NewCops: enable
4
+ TargetRubyVersion: 2.5
5
+
6
+ Gemspec/RequiredRubyVersion:
7
+ Enabled: false
8
+
9
+ Metrics/AbcSize:
10
+ Max: 30
11
+
12
+ Metrics/ClassLength:
13
+ CountComments: false
14
+ Max: 117
15
+
16
+ Metrics/CyclomaticComplexity:
17
+ Max: 10
18
+
19
+ Metrics/MethodLength:
20
+ CountComments: false
21
+ Max: 40
22
+
23
+ Metrics/PerceivedComplexity:
24
+ Max: 20
25
+
26
+ Style/Documentation:
27
+ Exclude:
28
+ - 'test/**/*'
29
+
30
+ Layout/LineLength:
31
+ Max: 120
data/Gemfile CHANGED
@@ -1,4 +1,6 @@
1
- source "http://rubygems.org"
1
+ # frozen_string_literal: true
2
+
3
+ source 'http://rubygems.org'
2
4
 
3
5
  # Specify your gem's dependencies in epdiff.gemspec
4
6
  gemspec
data/Rakefile CHANGED
@@ -1 +1,20 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'bundler/gem_tasks'
4
+ require 'rake/testtask'
5
+
6
+ Rake::TestTask.new(:test) do |t|
7
+ t.libs << 'test'
8
+ t.libs << 'lib'
9
+ t.test_files = FileList['test/**/test_*.rb']
10
+ end
11
+
12
+ desc 'Check with rubocop'
13
+ task :rubocop do
14
+ require 'rubocop/rake_task'
15
+ RuboCop::RakeTask.new
16
+ rescue LoadError
17
+ warn 'rubocop not found'
18
+ end
19
+
20
+ task default: %i[test rubocop]
data/bin/epdiff CHANGED
@@ -1,4 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
4
  require 'epdiff'
4
- Epdiff.execute(*ARGV)
5
+ exit_code = Epdiff.execute(*ARGV)
6
+ exit(exit_code)
@@ -1,22 +1,27 @@
1
- # -*- encoding: utf-8 -*-
2
- $:.push File.expand_path("../lib", __FILE__)
3
- require "epdiff/version"
1
+ # frozen_string_literal: true
2
+
3
+ $LOAD_PATH.push File.expand_path('lib', __dir__)
4
+ require 'epdiff/version'
4
5
 
5
6
  Gem::Specification.new do |s|
6
- s.name = "epdiff"
7
+ s.name = 'epdiff'
7
8
  s.version = Epdiff::VERSION
8
- s.authors = ["takahashim"]
9
- s.email = ["maki@rubycolor.org"]
10
- s.homepage = ""
11
- s.summary = %q{diff command for EPUB files.}
12
- s.description = %q{diff command for EPUB files.}
9
+ s.authors = ['takahashim']
10
+ s.email = ['maki@rubycolor.org']
11
+ s.homepage = ''
12
+ s.summary = 'diff command for EPUB files.'
13
+ s.description = 'diff command for EPUB files.'
13
14
 
14
15
  s.files = `git ls-files`.split("\n")
15
16
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
16
- s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
17
- s.require_paths = ["lib"]
18
- s.add_runtime_dependency "rubyzip", "~> 2.3.0"
19
- s.add_runtime_dependency "pastel"
20
- s.add_runtime_dependency "tty-file"
21
- s.add_development_dependency "rake"
17
+ s.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
18
+ s.require_paths = ['lib']
19
+ s.add_runtime_dependency 'pastel'
20
+ s.add_runtime_dependency 'rubyzip', '~> 2.3.0'
21
+ s.add_runtime_dependency 'tty-file'
22
+ s.add_development_dependency 'rake'
23
+ s.add_development_dependency 'rubocop'
24
+ s.add_development_dependency 'rubocop-performance'
25
+ s.add_development_dependency 'rubocop-rake'
26
+ s.add_development_dependency 'test-unit'
22
27
  end
@@ -1,4 +1,6 @@
1
- require "epdiff/version"
1
+ # frozen_string_literal: true
2
+
3
+ require 'epdiff/version'
2
4
  require 'optparse'
3
5
  require 'tmpdir'
4
6
  require 'fileutils'
@@ -6,9 +8,9 @@ require 'zip'
6
8
  require 'pastel'
7
9
  require 'tty/file'
8
10
 
9
-
11
+ # EPUB diff class
10
12
  class Epdiff
11
- TEXT_EXT = %w(xhtml html xml opf css txt)
13
+ TEXT_EXT = %w[xhtml html xml opf css txt].freeze
12
14
 
13
15
  def self.execute(*args)
14
16
  new.execute(*args)
@@ -24,22 +26,22 @@ class Epdiff
24
26
 
25
27
  def unzip(filename, dir)
26
28
  Zip::InputStream.open(filename) do |zio|
27
- while entry = zio.get_next_entry
28
- if entry.file?
29
- entry_filename = File.join(dir, entry.name)
30
- FileUtils.mkdir_p File.dirname(entry_filename)
31
- File.binwrite(entry_filename, zio.read)
32
- end
29
+ while entry = zio.get_next_entry # rubocop:disable Lint/AssignmentInCondition
30
+ next unless entry.file?
31
+
32
+ entry_filename = File.join(dir, entry.name)
33
+ FileUtils.mkdir_p File.dirname(entry_filename)
34
+ File.binwrite(entry_filename, zio.read)
33
35
  end
34
36
  end
35
37
  end
36
38
 
37
- def show_diff(file1, file2, work_dir)
39
+ def show_diff(_file1, _file2, work_dir)
38
40
  Dir.chdir(work_dir) do
39
- files1 = Dir.glob("file1/**/*")
40
- files2 = Dir.glob("file2/**/*")
41
- files1_s = files1.map{|d| d.sub(%r{^file1/}, '')}
42
- files2_s = files2.map{|d| d.sub(%r{^file2/}, '')}
41
+ files1 = Dir.glob('file1/**/*')
42
+ files2 = Dir.glob('file2/**/*')
43
+ files1_s = files1.map { |d| d.sub(%r{^file1/}, '') }
44
+ files2_s = files2.map { |d| d.sub(%r{^file2/}, '') }
43
45
  files_common = files1_s & files2_s
44
46
  files_common.each do |path|
45
47
  if File.file?("file1/#{path}")
@@ -65,41 +67,40 @@ class Epdiff
65
67
 
66
68
  def text_file?(path)
67
69
  extname = File.extname(path).sub(/\A\./, '')
68
- if TEXT_EXT.include?(extname)
69
- extname
70
- else
71
- nil
72
- end
70
+ extname if TEXT_EXT.include?(extname)
73
71
  end
74
72
 
75
73
  def text_diff(_path, path1, path2)
76
- diff = @color ? TTY::File.diff(path1, path2, verbose: false) : TTY::File.diff(path1, path2, verbose: false, color: nil)
77
- if diff != "No differences found\n" && diff.strip != ""
78
- @exit_code = 1
79
- print diff
80
- end
74
+ diff = if @color
75
+ TTY::File.diff(path1, path2, verbose: false)
76
+ else
77
+ TTY::File.diff(path1, path2, verbose: false, color: nil)
78
+ end
79
+
80
+ return if diff == "No differences found\n" || diff.strip == ''
81
+
82
+ @exit_code = 1
83
+ print diff
81
84
  end
82
85
 
83
86
  def binary_diff(path, path1, path2)
84
87
  content1 = File.binread(path1)
85
88
  content2 = File.binread(path2)
86
- if content1 != content2
87
- @exit_code = 1
88
- message = "DIFF: #{path} has some differences.\n"
89
- print @color ? @cyan.call(message) : message
90
- end
89
+
90
+ return if content1 == content2
91
+
92
+ @exit_code = 1
93
+ message = "DIFF: #{path} has some differences.\n"
94
+ print @color ? @cyan.call(message) : message
91
95
  end
92
96
 
93
97
  def execute(*args)
94
-
95
98
  tmpdir = work_dir = nil
96
- diff_path = nil
97
- unzip_path = nil
98
99
 
99
- opts = OptionParser.new do |opts|
100
+ options = OptionParser.new do |opts|
100
101
  opts.banner = "Usage: epdiff [options] [filename] [filename]\n"
101
102
 
102
- opts.on('-t','--tmpdir DIR', 'Set tepmorary directory') do |dir|
103
+ opts.on('-t', '--tmpdir DIR', 'Set tepmorary directory') do |dir|
103
104
  tmpdir = dir
104
105
  end
105
106
 
@@ -119,35 +120,31 @@ class Epdiff
119
120
  end
120
121
 
121
122
  begin
122
-
123
- opts.parse!(args)
123
+ options.parse!(args)
124
124
 
125
125
  if args.size != 2
126
126
  # invalid option
127
- puts opts
127
+ puts options
128
128
  exit
129
129
  end
130
130
 
131
131
  work_dir = tmpdir || Dir.mktmpdir
132
132
 
133
133
  file1, file2 = *args
134
- FileUtils.mkdir_p(work_dir+"/file1")
135
- FileUtils.mkdir_p(work_dir+"/file2")
134
+ FileUtils.mkdir_p("#{work_dir}/file1")
135
+ FileUtils.mkdir_p("#{work_dir}/file2")
136
136
 
137
137
  unzip(file1, "#{work_dir}/file1")
138
138
  unzip(file2, "#{work_dir}/file2")
139
139
 
140
140
  @exit_code = 0
141
141
  show_diff(file1, file2, work_dir)
142
- exit(@exit_code)
143
- rescue => e
142
+
143
+ @exit_code
144
+ rescue StandardError => e
144
145
  warn e
145
- puts opts
146
146
  ensure
147
- if work_dir && !tmpdir
148
- FileUtils.rm_rf(work_dir)
149
- end
147
+ FileUtils.rm_rf(work_dir) if work_dir && !tmpdir
150
148
  end
151
149
  end
152
-
153
150
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class Epdiff
2
- VERSION = "2.0.0.rc2"
4
+ VERSION = '2.0.0'
3
5
  end
@@ -0,0 +1,22 @@
1
+ --- file1/OEBPS/book.opf
2
+ +++ file2/OEBPS/book.opf
3
+ @@ -17,6 +17,7 @@
4
+ <item id="style-css" href="style.css" media-type="text/css"/>
5
+ <item id="titlepage-xhtml" href="titlepage.xhtml" media-type="application/xhtml+xml"/>
6
+ <item id="test1-xhtml" href="test1.xhtml" media-type="application/xhtml+xml"/>
7
+ + <item id="images-Hokusai_Setsubun_no_Oni-jpg" href="images/Hokusai_Setsubun_no_Oni.jpg" media-type="image/jpeg"/>
8
+ </manifest>
9
+ <spine page-progression-direction="ltr">
10
+ <itemref idref="book" linear="no"/>
11
+ --- file1/OEBPS/test1.xhtml
12
+ +++ file2/OEBPS/test1.xhtml
13
+ @@ -9,7 +9,7 @@
14
+ </head>
15
+ <body>
16
+ <h1><a id="h1"></a><span class="secno">第1章 </span>test1</h1>
17
+ -<p>this is a test EPUB file.</p>
18
+ +<p>this is a EPUB file to test <strong>epdiff</strong>.</p>
19
+ </body>
20
+ </html>
21
+ DIFF: OEBPS/images/Hokusai_Setsubun_no_Oni.jpg only exists in 2nd.
22
+ 
@@ -0,0 +1,21 @@
1
+ --- file1/OEBPS/book.opf
2
+ +++ file2/OEBPS/book.opf
3
+ @@ -17,6 +17,7 @@
4
+ <item id="style-css" href="style.css" media-type="text/css"/>
5
+ <item id="titlepage-xhtml" href="titlepage.xhtml" media-type="application/xhtml+xml"/>
6
+ <item id="test1-xhtml" href="test1.xhtml" media-type="application/xhtml+xml"/>
7
+ + <item id="images-Hokusai_Setsubun_no_Oni-jpg" href="images/Hokusai_Setsubun_no_Oni.jpg" media-type="image/jpeg"/>
8
+ </manifest>
9
+ <spine page-progression-direction="ltr">
10
+ <itemref idref="book" linear="no"/>
11
+ --- file1/OEBPS/test1.xhtml
12
+ +++ file2/OEBPS/test1.xhtml
13
+ @@ -9,7 +9,7 @@
14
+ </head>
15
+ <body>
16
+ <h1><a id="h1"></a><span class="secno">第1章 </span>test1</h1>
17
+ -<p>this is a test EPUB file.</p>
18
+ +<p>this is a EPUB file to test <strong>epdiff</strong>.</p>
19
+ </body>
20
+ </html>
21
+ DIFF: OEBPS/images/Hokusai_Setsubun_no_Oni.jpg only exists in 2nd.
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ base_dir = File.expand_path('..', __dir__)
4
+ lib_dir = File.join(base_dir, 'lib')
5
+ test_dir = File.join(base_dir, 'test')
6
+
7
+ $LOAD_PATH.unshift(lib_dir)
8
+
9
+ require 'test/unit'
10
+
11
+ argv = ARGV || ['--max-diff-target-string-size=10000']
12
+ exit Test::Unit::AutoRunner.run(true, test_dir, argv)
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'test_helper'
4
+ require 'epdiff'
5
+
6
+ class EpdiffTest < Test::Unit::TestCase
7
+ def setup; end
8
+
9
+ def teardown; end
10
+
11
+ def test_ezpdiff_execute_color
12
+ out = $stdout
13
+ $stdout = StringIO.new
14
+ begin
15
+ Epdiff.new.execute(File.join(fixtures_dir, 'book_orig.epub'),
16
+ File.join(fixtures_dir, 'book_image.epub'))
17
+ result = $stdout.string
18
+ ensure
19
+ $stdout = out
20
+ end
21
+ expected = File.read(File.join(fixtures_dir, 'sample_diff0.txt'))
22
+ assert_equal expected, result
23
+ end
24
+
25
+ def test_ezpdiff_execute_nocolor
26
+ out = $stdout
27
+ $stdout = StringIO.new
28
+ begin
29
+ Epdiff.new.execute('-C',
30
+ File.join(fixtures_dir, 'book_orig.epub'),
31
+ File.join(fixtures_dir, 'book_image.epub'))
32
+ result = $stdout.string
33
+ ensure
34
+ $stdout = out
35
+ end
36
+ expected = File.read(File.join(fixtures_dir, 'sample_diff1.txt'))
37
+ assert_equal expected, result
38
+ end
39
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ $LOAD_PATH.unshift(File.expand_path('../lib', __dir__))
4
+
5
+ require 'test/unit'
6
+
7
+ def fixtures_dir
8
+ File.join(__dir__, 'fixtures')
9
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: epdiff
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0.rc2
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - takahashim
@@ -10,6 +10,20 @@ bindir: bin
10
10
  cert_chain: []
11
11
  date: 2021-01-25 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: pastel
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: rubyzip
15
29
  requirement: !ruby/object:Gem::Requirement
@@ -25,7 +39,7 @@ dependencies:
25
39
  - !ruby/object:Gem::Version
26
40
  version: 2.3.0
27
41
  - !ruby/object:Gem::Dependency
28
- name: pastel
42
+ name: tty-file
29
43
  requirement: !ruby/object:Gem::Requirement
30
44
  requirements:
31
45
  - - ">="
@@ -39,13 +53,13 @@ dependencies:
39
53
  - !ruby/object:Gem::Version
40
54
  version: '0'
41
55
  - !ruby/object:Gem::Dependency
42
- name: tty-file
56
+ name: rake
43
57
  requirement: !ruby/object:Gem::Requirement
44
58
  requirements:
45
59
  - - ">="
46
60
  - !ruby/object:Gem::Version
47
61
  version: '0'
48
- type: :runtime
62
+ type: :development
49
63
  prerelease: false
50
64
  version_requirements: !ruby/object:Gem::Requirement
51
65
  requirements:
@@ -53,7 +67,49 @@ dependencies:
53
67
  - !ruby/object:Gem::Version
54
68
  version: '0'
55
69
  - !ruby/object:Gem::Dependency
56
- name: rake
70
+ name: rubocop
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rubocop-performance
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: rubocop-rake
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: test-unit
57
113
  requirement: !ruby/object:Gem::Requirement
58
114
  requirements:
59
115
  - - ">="
@@ -74,7 +130,10 @@ executables:
74
130
  extensions: []
75
131
  extra_rdoc_files: []
76
132
  files:
133
+ - ".github/workflows/ruby-win.yml"
134
+ - ".github/workflows/ruby.yml"
77
135
  - ".gitignore"
136
+ - ".rubocop.yml"
78
137
  - Gemfile
79
138
  - LICENSE
80
139
  - README.md
@@ -83,6 +142,14 @@ files:
83
142
  - epdiff.gemspec
84
143
  - lib/epdiff.rb
85
144
  - lib/epdiff/version.rb
145
+ - test/fixtures/book_image.epub
146
+ - test/fixtures/book_new.epub
147
+ - test/fixtures/book_orig.epub
148
+ - test/fixtures/sample_diff0.txt
149
+ - test/fixtures/sample_diff1.txt
150
+ - test/run_test.rb
151
+ - test/test_epdiff.rb
152
+ - test/test_helper.rb
86
153
  homepage: ''
87
154
  licenses: []
88
155
  metadata: {}
@@ -97,12 +164,20 @@ required_ruby_version: !ruby/object:Gem::Requirement
97
164
  version: '0'
98
165
  required_rubygems_version: !ruby/object:Gem::Requirement
99
166
  requirements:
100
- - - ">"
167
+ - - ">="
101
168
  - !ruby/object:Gem::Version
102
- version: 1.3.1
169
+ version: '0'
103
170
  requirements: []
104
171
  rubygems_version: 3.2.3
105
172
  signing_key:
106
173
  specification_version: 4
107
174
  summary: diff command for EPUB files.
108
- test_files: []
175
+ test_files:
176
+ - test/fixtures/book_image.epub
177
+ - test/fixtures/book_new.epub
178
+ - test/fixtures/book_orig.epub
179
+ - test/fixtures/sample_diff0.txt
180
+ - test/fixtures/sample_diff1.txt
181
+ - test/run_test.rb
182
+ - test/test_epdiff.rb
183
+ - test/test_helper.rb