webcomics 1.0.7 → 1.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
2
  SHA1:
3
- metadata.gz: acc162cea31a18739e9d28f85e36b301632667e3
4
- data.tar.gz: 0cd91dcb5ac11bdca46f9dbe52bb0653b313483e
3
+ metadata.gz: e7f24b4b88e65cdbb40396fedae879b6ad3f7c98
4
+ data.tar.gz: a7ff820f56bdb16d30d5e9b4b392dfdf51d6a88a
5
5
  SHA512:
6
- metadata.gz: 69a88a539c423e2d88f4d608dfc4ef1049f919a6fd7e3eda177033fa41fca1fb618fadb2434bb8ad86eda51e190228365ed6f8680f5ff8542c4f6da058bad2c3
7
- data.tar.gz: 669b0f4e92db6069ab8f8f843861c844774fa98b6e9d6edbd1438552c20341eeab42d2fce7b8d913efb7775ba158022826d57378f1365d816dacbbe4a06dd287
6
+ metadata.gz: eb23e4c9ebfa39f4b0956ab23184154d25dda7545d4a4fee321d8e283879d209f52d5ed593e62df9d4ad3f75acdb8700248d998dc7b7b68d43c7d092d46bc38e
7
+ data.tar.gz: 0c5527550e1013089a2179e94c8b88285ecea6839a5128bf20643e986b852f4c2af61ae9b326ec4d4d9568213a67534144688ee44fea353210ab310728e2bb7e
data/lib/comics_cbz.rb ADDED
@@ -0,0 +1,55 @@
1
+ require 'zip'
2
+
3
+ module WebComics
4
+ class CBZ < ComicsDir
5
+ attr_accessor :cbz
6
+
7
+ def self.cbz_or_zip?(file)
8
+ if File.extname(file) == ".cbz" || File.extname(file) == ".zip"
9
+ return true
10
+ else
11
+ return false
12
+ end
13
+ end
14
+
15
+ def list_cbz_files
16
+ files_list = []
17
+ list_files.each do |cbz|
18
+ files_list.push(cbz) if CBZ.cbz_or_zip?(cbz)
19
+ end
20
+
21
+ files_list
22
+ end
23
+
24
+ def list_pages_inside(xml_ignore = true)
25
+ files_list = []
26
+ Zip::File.open("#{@series}/#{@cbz}") do |cbz|
27
+ cbz.each do |pages|
28
+ files_list.push(pages.name)
29
+ end
30
+ end
31
+
32
+ return CBZ.ignore_xml(files_list) if xml_ignore
33
+
34
+ files_list
35
+ end
36
+
37
+ def extract(index = 0)
38
+ @page = nil
39
+ Zip::File.open("#{@series}/#{@cbz}") do |cbz|
40
+ @page = cbz.extract(list_pages_inside[index], list_pages_inside[index])
41
+ end
42
+
43
+ @page
44
+ end
45
+
46
+ def self.ignore_xml(list)
47
+ files_list = []
48
+ list.each do |entry|
49
+ files_list.push(entry) if File.extname(entry) != ".xml"
50
+ end
51
+
52
+ files_list
53
+ end
54
+ end
55
+ end
data/lib/comics_db.rb CHANGED
@@ -1,7 +1,24 @@
1
- require "fileutils"
1
+ module WebComics
2
+ class ComicsDB
3
+ attr_accessor :db_record
4
+ attr_accessor :assets
2
5
 
6
+ def exists?
7
+ asset_names = []
8
+
9
+ Dir.entries(@assets).each do |a|
10
+ asset_names.push(a) if a == @db_record
11
+ end
12
+
13
+ !asset_names.empty?
14
+ end
15
+ end
16
+ end
17
+
18
+ # This class is kept here for backwards compadibity with older versions.
3
19
  class ComicsDB
4
20
  def self.exists?(db_table, assets)
21
+ warn "[DEPRECATION] `ComicsDB.exists?(db_table, assets) is deprecated. Please use `WebComics::ComicsDB.exists?` instead."
5
22
  asset_names = []
6
23
 
7
24
  Dir.entries(assets).each do |a|
data/lib/comics_dir.rb CHANGED
@@ -1,10 +1,90 @@
1
+ module WebComics
2
+ class ComicsDir
3
+ attr_accessor :series
1
4
 
5
+ def self.comics_entries(dir)
6
+ entries = Dir.entries(dir)
7
+ entries.delete(".")
8
+ entries.delete("..")
9
+
10
+ entries
11
+ end
12
+
13
+ def self.trim(entries)
14
+ trimed_entries = []
15
+ entries.each do |e|
16
+ trimed_entries.push(File.basename(e, ".*"))
17
+ end
18
+
19
+ trimed_entries
20
+ end
21
+
22
+ def directory?
23
+ File.directory?(@series)
24
+ end
25
+
26
+ def list_directories
27
+ dirs_list = []
28
+ ComicsDir.comics_entries(@series).each do |d|
29
+ dirs_list.push(d) if File.directory?("#{@series}/#{d}")
30
+ end
31
+
32
+ dirs_list
33
+ end
34
+
35
+ def file?
36
+ File.file?(@series)
37
+ end
38
+
39
+ def list_files
40
+ files_list = []
41
+ ComicsDir.comics_entries(@series).each do |d|
42
+ files_list.push(d) if File.file?("#{@series}/#{d}")
43
+ end
44
+
45
+ files_list
46
+ end
47
+
48
+ def filter_alphanum_dirs
49
+ alphanum_dirs = []
50
+ list_directories.each do |d|
51
+ alphanum_dirs.push(d) if d =~ /[0-9]/ && d =~ /[a-z]/ || d =~ /[A-Z]/
52
+ end
53
+
54
+ alphanum_dirs
55
+ end
56
+
57
+ def filter_alpha_dirs
58
+ alpha_dirs = []
59
+ list_directories.each do |d|
60
+ alpha_dirs.push(d) if d =~ /[a-z]/ || d =~ /[A-Z]/
61
+ alpha_dirs.delete_if { |d| d =~ /[0-9]/ }
62
+ end
63
+
64
+ alpha_dirs
65
+ end
66
+
67
+ def filter_num_dirs
68
+ num_dirs = []
69
+ list_directories.each do |d|
70
+ num_dirs.push(d) if d =~ /[0-9]/
71
+ num_dirs.delete_if { |d| d =~ /[a-z]/ || d =~ /[A-Z]/ }
72
+ end
73
+
74
+ num_dirs
75
+ end
76
+ end
77
+ end
78
+
79
+ # This class is kept here for backwards compadibity with older versions.
2
80
  class ComicsDir
3
81
  def initialize(series)
82
+ warn "[DEPRECATION] `ComicsDir.new(series)` is deprecated. Please use `WebComics::ComicsDir.new` instead."
4
83
  @series = series
5
84
  end
6
85
 
7
86
  def comics_entries(dir)
87
+ warn "[DEPRECATION] `ComicsDir#comics_entries(dir)` is deprecated. Please use `WebComics::ComicsDir.comics_entries(dir)` instead."
8
88
  entries = Dir.entries(dir)
9
89
  entries.delete(".")
10
90
  entries.delete("..")
@@ -13,6 +93,7 @@ class ComicsDir
13
93
  end
14
94
 
15
95
  def trim(entries)
96
+ warn "[DEPRECATION] `ComicsDir#trim(entries)` is deprecated. Please use `WebComics::ComicsDir.trim(entries)` instead."
16
97
  trimed_entries = []
17
98
  entries.each do |e|
18
99
  trimed_entries.push(File.basename(e, ".*"))
@@ -22,10 +103,12 @@ class ComicsDir
22
103
  end
23
104
 
24
105
  def directory?(dir)
106
+ warn "[DEPRECATION] `ComicsDir#directory?(dir)` is deprecated. Please use `WebComics::ComicsDir#directory?` instead."
25
107
  File.directory?(dir)
26
108
  end
27
109
 
28
110
  def list_directories(dir)
111
+ warn "[DEPRECATION] `ComicsDir#list_directories(dir)` is deprecated. Please use `WebComics::ComicsDir#list_directories` instead."
29
112
  dirs_list = []
30
113
  comics_entries("#{dir}/#{@series}").each do |d|
31
114
  dirs_list.push(d) if directory?("#{dir}/#{@series}/#{d}")
@@ -35,10 +118,12 @@ class ComicsDir
35
118
  end
36
119
 
37
120
  def file?(f)
121
+ warn "[DEPRECATION] `ComicsDir#file?(f)` is deprecated. Please use `WebComics::ComicsDir#file?` instead."
38
122
  File.file?(f)
39
123
  end
40
124
 
41
125
  def list_files(dir)
126
+ warn "[DEPRECATION] `ComicsDir#list_files(dir)` is deprecated. Please use `WebComics::ComicsDir#list_files` instead."
42
127
  files_list = []
43
128
  comics_entries(dir).each do |d|
44
129
  files_list.push(d) if file?("#{dir}/#{d}")
@@ -48,6 +133,7 @@ class ComicsDir
48
133
  end
49
134
 
50
135
  def filter_alphanum_dirs(dir)
136
+ warn "[DEPRECATION] `ComicsDir#filter_alphanum_dirs(dir)` is deprecated. Please use `WebComics::ComicsDir#filter_alphanum_dirs` instead."
51
137
  alphanum_dirs = []
52
138
  list_directories(dir).each do |d|
53
139
  alphanum_dirs.push(d) if d =~ /[0-9]/ && d =~ /[a-z]/ || d =~ /[A-Z]/
@@ -57,6 +143,7 @@ class ComicsDir
57
143
  end
58
144
 
59
145
  def filter_alpha_dirs(dir)
146
+ warn "[DEPRECATION] `ComicsDir#filter_alpha_dirs(dir)` is deprecated. Please use `WebComics::ComicsDir#filter_alpha_dirs` instead."
60
147
  alpha_dirs = []
61
148
  list_directories(dir).each do |d|
62
149
  alpha_dirs.push(d) if d =~ /[a-z]/ || d =~ /[A-Z]/
@@ -67,6 +154,7 @@ class ComicsDir
67
154
  end
68
155
 
69
156
  def filter_num_dirs(dir)
157
+ warn "[DEPRECATION] `ComicsDir#filter_num_dirs(dir)` is deprecated. Please use `WebComics::ComicsDir#filter_num_dirs` instead."
70
158
  num_dirs = []
71
159
  list_directories(dir).each do |d|
72
160
  num_dirs.push(d) if d =~ /[0-9]/
data/lib/comics_engine.rb CHANGED
@@ -1,42 +1,83 @@
1
- require_relative "comics_dir"
2
- require_relative "comics_db"
3
1
  require "fileutils"
4
2
 
3
+ module WebComics
4
+ class ComicsEngine < CBZ
5
+ FILE_EXT_ARRY = [".jpg", ".png", ".tiff", ".bmp", ".gif"]
6
+
7
+ def filter(entries)
8
+ entries.each_index do |i|
9
+ entries.delete_if { |e| e.include?(FILE_EXT_ARRY[i]) || e.include?("#") }
10
+ end
11
+ end
12
+
13
+ def assets_dirs
14
+ filter(ComicsDir.comics_entries(@series))
15
+ end
16
+
17
+ def list_pages_cbz
18
+ list_pages_inside.sort
19
+ end
20
+
21
+ def list_pages
22
+ if CBZ.cbz_or_zip?("#{@series}/#{@cbz}")
23
+ list_pages_cbz
24
+ else
25
+ img_list = []
26
+ FileUtils.cd(@series) do
27
+ ComicsDir.comics_entries(".").each do |e|
28
+ img_list.push(e) if File.extname(e) == ".jpg" || File.extname(e) == ".png"
29
+ end
30
+ end
31
+
32
+ img_list.sort
33
+ end
34
+ end
35
+
36
+ end
37
+ end
38
+
5
39
  class ComicsEngine
6
- def initialize(table_name, assets)
40
+ def initialize(table_name = nil, assets)
41
+ warn "[DEPRECATION] `ComicsEngine.new(table_name = nil, assets)` is deprecated. Please use `WebComics::ComicsEngine.new` instead."
7
42
  @table_name = table_name
8
43
  @assets = assets
9
44
  @comics_dir = ComicsDir.new(@assets)
10
45
  end
11
46
 
12
47
  def dbtable_assets_match?
48
+ warn "[DEPRECATION] `ComicsEngine#dbtable_assets_match?` is deprecated."
13
49
  ComicsDB.exists?(@table_name, @assets)
14
50
  end
15
51
 
16
52
  def add_appendage
53
+ warn "[DEPRECATION] `ComicsEngine#add_appendage` is deprecated."
17
54
  @o_assets = @assets
18
- @assets = "#{@assets}/#{@table_name}"
55
+ @assets = "#{@assets}/#{@table_name}"
19
56
  end
20
57
 
21
58
  def remove_appendage
59
+ warn "[DEPRECATION] `ComicsEngine#remove_appendage` is deprecated."
22
60
  @assets.slice(@o_assets)
23
61
  end
24
62
 
25
63
  def filter(entries)
64
+ warn "[DEPRECATION] `ComicsEngine#filter(entries)` is deprecated."
26
65
  entries.delete_if do |e|
27
66
  e.include?(".") || e.include?("#")
28
67
  end
29
68
  end
30
69
 
31
70
  def assets_dirs
71
+ warn "[DEPRECATION] `ComicsEngine#assets_dirs` is deprecated. Please use `WebComics::ComicsEngine#assets_dirs` instead."
32
72
  filter(@comics_dir.comics_entries(@assets))
33
73
  end
34
74
 
35
75
  def list_pages
76
+ warn "[DEPRECATION] `ComicsEngine#list_pages` is deprecated. Please use `WebComics::ComicsEngine#list_pages(file = "")` instead."
36
77
  img_list = []
37
78
  FileUtils.cd(@assets) do
38
79
  @comics_dir.comics_entries(".").each do |e|
39
- img_list.push(e) if File.extname(e) == ".jpg" || File.extname(e) == ".png"
80
+ img_list.push(e) if File.extname(e) == ".jpg" || File.extname(e) == ".png"
40
81
  end
41
82
  end
42
83
 
data/lib/version.rb ADDED
@@ -0,0 +1,3 @@
1
+ module WebComics
2
+ VERSION = "1.1.0"
3
+ end
data/lib/webcomics.rb CHANGED
@@ -1,3 +1,5 @@
1
+ require_relative "version"
1
2
  require_relative "comics_dir"
2
3
  require_relative "comics_db"
4
+ require_relative "comics_cbz"
3
5
  require_relative "comics_engine"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: webcomics
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.7
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ralph Desir
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-11-04 00:00:00.000000000 Z
12
+ date: 2016-02-11 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
@@ -39,19 +39,35 @@ dependencies:
39
39
  - - "~>"
40
40
  - !ruby/object:Gem::Version
41
41
  version: '3.3'
42
- description: A gem for creating framework agnostic web comics.
42
+ - !ruby/object:Gem::Dependency
43
+ name: rubyzip
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - "~>"
47
+ - !ruby/object:Gem::Version
48
+ version: '1.1'
49
+ type: :development
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - "~>"
54
+ - !ruby/object:Gem::Version
55
+ version: '1.1'
56
+ description: A gem for creating comic book reader websites.
43
57
  email: battleroundscool@gmail.com
44
58
  executables: []
45
59
  extensions: []
46
60
  extra_rdoc_files: []
47
61
  files:
62
+ - lib/comics_cbz.rb
48
63
  - lib/comics_db.rb
49
64
  - lib/comics_dir.rb
50
65
  - lib/comics_engine.rb
66
+ - lib/version.rb
51
67
  - lib/webcomics.rb
52
68
  homepage: https://github.com/Mav7/Ruby-WebComics
53
69
  licenses:
54
- - GPLv2
70
+ - GPL-2.0
55
71
  metadata: {}
56
72
  post_install_message:
57
73
  rdoc_options: []
@@ -69,9 +85,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
69
85
  version: '0'
70
86
  requirements: []
71
87
  rubyforge_project:
72
- rubygems_version: 2.4.8
88
+ rubygems_version: 2.5.1
73
89
  signing_key:
74
90
  specification_version: 4
75
91
  summary: Ruby Web comics library
76
92
  test_files: []
77
- has_rdoc: