webcomics 1.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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 3d0e9dd83fd0c119dcecca53d7444e4a35379011
4
+ data.tar.gz: bbc5b90bcb4593a1d6c74619d77e933c3f0466aa
5
+ SHA512:
6
+ metadata.gz: 0b8b3a579c0ac7193224fc312e78f53fa45513096122c879bf45eb25a0b0e6504ed90ff426de03abb8a7ebc0f98d2c44da0f64442399eac9ca840f204e8399db
7
+ data.tar.gz: 6b0d955b678331e99a4a4374bb7a43d6aedf5ae3e1ee5c6c0e3bc22cc6cfc7054654d85bd74593afdf5694e444cf0a9a4246b74ed7668ad65dbe092f35aa979c
@@ -0,0 +1,13 @@
1
+ require "fileutils"
2
+
3
+ class ComicsDB
4
+ def self.exists?(db_table, assets)
5
+ asset_names = []
6
+
7
+ Dir.entries(assets).each do |a|
8
+ asset_names.push(a) if a == db_table
9
+ end
10
+
11
+ !asset_names.empty?
12
+ end
13
+ end
@@ -0,0 +1,78 @@
1
+
2
+ class ComicsDir
3
+ def initialize(series)
4
+ @series = series
5
+ end
6
+
7
+ def comics_entries(dir)
8
+ entries = Dir.entries(dir)
9
+ entries.delete(".")
10
+ entries.delete("..")
11
+
12
+ entries
13
+ end
14
+
15
+ def trim(entries)
16
+ trimed_entries = []
17
+ entries.each do |e|
18
+ trimed_entries.push(File.basename(e, ".*"))
19
+ end
20
+
21
+ trimed_entries
22
+ end
23
+
24
+ def directory?(dir)
25
+ File.directory?(dir)
26
+ end
27
+
28
+ def list_directories(dir)
29
+ dirs_list = []
30
+ comics_entries("#{dir}/#{@series}").each do |d|
31
+ dirs_list.push(d) if directory?("#{dir}/#{@series}/#{d}")
32
+ end
33
+
34
+ dirs_list
35
+ end
36
+
37
+ def file?(f)
38
+ File.file?(f)
39
+ end
40
+
41
+ def list_files(dir)
42
+ files_list = []
43
+ comics_entries(dir).each do |d|
44
+ files_list.push(d) if file?("#{dir}/#{d}")
45
+ end
46
+
47
+ files_list
48
+ end
49
+
50
+ def filter_alphanum_dirs(dir)
51
+ alphanum_dirs = []
52
+ list_directories(dir).each do |d|
53
+ alphanum_dirs.push(d) if d =~ /[0-9]/ && d =~ /[a-z]/ || d =~ /[A-Z]/
54
+ end
55
+
56
+ alphanum_dirs
57
+ end
58
+
59
+ def filter_alpha_dirs(dir)
60
+ alpha_dirs = []
61
+ list_directories(dir).each do |d|
62
+ alpha_dirs.push(d) if d =~ /[a-z]/ || d =~ /[A-Z]/
63
+ alpha_dirs.delete_if { |d| d =~ /[0-9]/ }
64
+ end
65
+
66
+ alpha_dirs
67
+ end
68
+
69
+ def filter_num_dirs(dir)
70
+ num_dirs = []
71
+ list_directories(dir).each do |d|
72
+ num_dirs.push(d) if d =~ /[0-9]/
73
+ num_dirs.delete_if { |d| d =~ /[a-z]/ || d =~ /[A-Z]/ }
74
+ end
75
+
76
+ num_dirs
77
+ end
78
+ end
@@ -0,0 +1,46 @@
1
+ require_relative "comics_dir"
2
+ require_relative "comics_db"
3
+ require "fileutils"
4
+
5
+ class ComicsEngine
6
+ def initialize(table_name, assets)
7
+ @table_name = table_name
8
+ @assets = assets
9
+ @comics_dir = ComicsDir.new(@assets)
10
+ end
11
+
12
+ def dbtable_assets_match?
13
+ ComicsDB.exists?(@table_name, @assets)
14
+ end
15
+
16
+ def add_appendage
17
+ @o_assets = @assets
18
+ @assets = "#{@assets}/#{@table_name}"
19
+ end
20
+
21
+ def remove_appendage
22
+ @assets.slice(@o_assets)
23
+ end
24
+
25
+ def filter(entries)
26
+ entries.delete_if do |e|
27
+ e.include?(".") || e.include?("#")
28
+ end
29
+ end
30
+
31
+ def assets_dirs
32
+ filter(@comics_dir.comics_entries(@assets))
33
+ end
34
+
35
+ def list_pages
36
+ img_list = []
37
+ FileUtils.cd(@assets) do
38
+ @comics_dir.comics_entries(".").each do |e|
39
+ img_list.push(e) if File.extname(e) == ".jpg" || File.extname(e) == ".png"
40
+ end
41
+ end
42
+
43
+ img_list
44
+ end
45
+
46
+ end
@@ -0,0 +1,3 @@
1
+ require_relative "comics_dir"
2
+ require_relative "comics_db"
3
+ require_relative "comics_engine"
metadata ADDED
@@ -0,0 +1,49 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: webcomics
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Ralph Desir
8
+ - Luis Ortiz
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2015-10-23 00:00:00.000000000 Z
13
+ dependencies: []
14
+ description: A gem for creating framework agnostic web comics.
15
+ email: battleroundscool@gmail.com
16
+ executables: []
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - lib/comics_db.rb
21
+ - lib/comics_dir.rb
22
+ - lib/comics_engine.rb
23
+ - lib/webcomics.rb
24
+ homepage: https://github.com/Mav7/Ruby-WebComics
25
+ licenses:
26
+ - GPLv2
27
+ metadata: {}
28
+ post_install_message:
29
+ rdoc_options: []
30
+ require_paths:
31
+ - lib
32
+ required_ruby_version: !ruby/object:Gem::Requirement
33
+ requirements:
34
+ - - ">="
35
+ - !ruby/object:Gem::Version
36
+ version: '0'
37
+ required_rubygems_version: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ">="
40
+ - !ruby/object:Gem::Version
41
+ version: '0'
42
+ requirements: []
43
+ rubyforge_project:
44
+ rubygems_version: 2.4.8
45
+ signing_key:
46
+ specification_version: 4
47
+ summary: Ruby Web comics library
48
+ test_files: []
49
+ has_rdoc: