webcomics 1.0.0

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