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.
- checksums.yaml +7 -0
 - data/lib/comics_db.rb +13 -0
 - data/lib/comics_dir.rb +78 -0
 - data/lib/comics_engine.rb +46 -0
 - data/lib/webcomics.rb +3 -0
 - metadata +49 -0
 
    
        checksums.yaml
    ADDED
    
    | 
         @@ -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
         
     | 
    
        data/lib/comics_db.rb
    ADDED
    
    
    
        data/lib/comics_dir.rb
    ADDED
    
    | 
         @@ -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
         
     | 
    
        data/lib/webcomics.rb
    ADDED
    
    
    
        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: 
         
     |