argon18 0.1.1 → 0.2.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 +4 -4
- data/bin/argon18 +10 -3
- data/lib/argon18.rb +44 -0
- data/lib/server/app.rb +1 -0
- metadata +2 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 7860f1a5f96ac95590a1eab34aa06abbbdf76f9c4b7527915c980e20e99361b4
         | 
| 4 | 
            +
              data.tar.gz: 5c31eed89e738b7cd2e5346d42ebb3745724b8965933d8f60391d13ef104525d
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: ea28a8f0971575d7d8c81ed80ecb402c17e429db727e16c02ad3386b982e372f8349cdd74ddf03688d46fe8e19c44656c1a20ccfbc80c697f6ed3dfbda169132
         | 
| 7 | 
            +
              data.tar.gz: 4ced5e57fa3bb13194d061853ea94c97478f98a7043cf759d99e21f8909fe6c0459dfb6986228a4fbae7a81f34a8c894876b3ad0a7c5c0cbe5b14003c2710d15
         | 
    
        data/bin/argon18
    CHANGED
    
    | @@ -6,6 +6,8 @@ ARGV = [] | |
| 6 6 |  | 
| 7 7 | 
             
            require 'argon18'
         | 
| 8 8 |  | 
| 9 | 
            +
            flags = ["-h", "--help", "-E"]
         | 
| 10 | 
            +
             | 
| 9 11 | 
             
            if args.include? "-h" or args.include? "--help"
         | 
| 10 12 | 
             
              puts(
         | 
| 11 13 | 
             
            "
         | 
| @@ -15,13 +17,18 @@ Start a web server in a given directory. | |
| 15 17 | 
             
            With no DIRECTORY the current working directory is used.
         | 
| 16 18 |  | 
| 17 19 | 
             
             -h, --help   display this message and exit
         | 
| 20 | 
            +
             -E           export the site to static html files (will be placed in project_root/output)
         | 
| 18 21 | 
             
            "
         | 
| 19 22 | 
             
            )
         | 
| 20 23 | 
             
            else
         | 
| 21 24 | 
             
              project_root = "."
         | 
| 22 | 
            -
              if args[ | 
| 23 | 
            -
                project_root = args[ | 
| 25 | 
            +
              if args[-1] && !(flags.include? args[-1])
         | 
| 26 | 
            +
                project_root = args[-1]
         | 
| 27 | 
            +
              end
         | 
| 28 | 
            +
              if args.include? "-E" or args.include? "--export"
         | 
| 29 | 
            +
                Argon.gen_static_html project_root
         | 
| 30 | 
            +
              else
         | 
| 31 | 
            +
                Argon.run_app project_root
         | 
| 24 32 | 
             
              end
         | 
| 25 | 
            -
              Argon.run_app project_root
         | 
| 26 33 | 
             
            end
         | 
| 27 34 |  | 
    
        data/lib/argon18.rb
    CHANGED
    
    | @@ -1,9 +1,14 @@ | |
| 1 1 | 
             
            require 'sinatra'
         | 
| 2 2 | 
             
            require 'slim'
         | 
| 3 3 | 
             
            require 'rack'
         | 
| 4 | 
            +
            require 'fileutils'
         | 
| 4 5 |  | 
| 5 6 | 
             
            require 'server/app.rb'
         | 
| 6 7 |  | 
| 8 | 
            +
            class SlimEnv
         | 
| 9 | 
            +
              attr_accessor :name
         | 
| 10 | 
            +
            end
         | 
| 11 | 
            +
             | 
| 7 12 | 
             
            class Argon
         | 
| 8 13 | 
             
              def self.run_app(project_root)
         | 
| 9 14 | 
             
                ENV['project_root'] = File.expand_path(project_root)
         | 
| @@ -14,4 +19,43 @@ class Argon | |
| 14 19 | 
             
                  Rack::Handler::WEBrick.run(ArgonApp, Port: 9292)
         | 
| 15 20 | 
             
                end
         | 
| 16 21 | 
             
              end
         | 
| 22 | 
            +
             | 
| 23 | 
            +
              def self.gen_static_html(project_root)
         | 
| 24 | 
            +
                ENV['project_root'] = File.expand_path(project_root)
         | 
| 25 | 
            +
                ENV['views_path'] = "views"
         | 
| 26 | 
            +
                ENV['public_path'] = "public"
         | 
| 27 | 
            +
                ENV['output_path'] = ENV['project_root'] + "/" + "output/"
         | 
| 28 | 
            +
             | 
| 29 | 
            +
                FileUtils.mkdir_p ENV['output_path']
         | 
| 30 | 
            +
             | 
| 31 | 
            +
                Dir.chdir(ENV['project_root']) do
         | 
| 32 | 
            +
                  files = []
         | 
| 33 | 
            +
                  dir_stack = [ENV['views_path']]
         | 
| 34 | 
            +
                  p dir_stack
         | 
| 35 | 
            +
             | 
| 36 | 
            +
                  slim_env = SlimEnv.new
         | 
| 37 | 
            +
                  slim_env.name = "Argon18"
         | 
| 38 | 
            +
                  # Copy media
         | 
| 39 | 
            +
                  FileUtils.cp_r "#{ENV['public_path']}/.", ENV['output_path']
         | 
| 40 | 
            +
             | 
| 41 | 
            +
                  # Render slim files
         | 
| 42 | 
            +
                  while !dir_stack.empty?
         | 
| 43 | 
            +
                    curr_dir = (dir_stack.delete_at 0).split("views/")[-1]
         | 
| 44 | 
            +
                    FileUtils.mkdir_p (ENV['output_path'] + curr_dir)
         | 
| 45 | 
            +
                    Dir[curr_dir + "/*"].each { |d| dir_stack << d }
         | 
| 46 | 
            +
                    dir_stack.filter! { |f| File.directory? f }
         | 
| 47 | 
            +
             | 
| 48 | 
            +
                    files = Dir[curr_dir + "/*.slim"]
         | 
| 49 | 
            +
                    p files
         | 
| 50 | 
            +
                    files.each do |f|
         | 
| 51 | 
            +
                      content = File.read f
         | 
| 52 | 
            +
                      parsed = Slim::Template.new { content }.render(slim_env)
         | 
| 53 | 
            +
                      parsed = parsed.gsub(/href="\/"/, 'href="index.html"')
         | 
| 54 | 
            +
                      parsed = parsed.gsub(/href="([^".]+)"/, 'href="\1.html"')
         | 
| 55 | 
            +
                      base_name = f.split(".")[0].split("views/")[-1]
         | 
| 56 | 
            +
                      File.write ENV['output_path'] + base_name + ".html", parsed
         | 
| 57 | 
            +
                    end
         | 
| 58 | 
            +
                  end
         | 
| 59 | 
            +
                end
         | 
| 60 | 
            +
              end
         | 
| 17 61 | 
             
            end
         | 
    
        data/lib/server/app.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: argon18
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0. | 
| 4 | 
            +
              version: 0.2.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Vincent Udén
         | 
| @@ -79,7 +79,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 79 79 | 
             
                - !ruby/object:Gem::Version
         | 
| 80 80 | 
             
                  version: '0'
         | 
| 81 81 | 
             
            requirements: []
         | 
| 82 | 
            -
            rubygems_version: 3. | 
| 82 | 
            +
            rubygems_version: 3.1.2
         | 
| 83 83 | 
             
            signing_key: 
         | 
| 84 84 | 
             
            specification_version: 4
         | 
| 85 85 | 
             
            summary: Argon 18 ⚛️
         |