epdiff 2.0.0.rc2 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
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