tzispa 0.6.1 → 0.7.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/CHANGELOG.md +12 -0
 - data/lib/tzispa/api/handler.rb +54 -23
 - data/lib/tzispa/app.rb +60 -68
 - data/lib/tzispa/cli.rb +42 -3
 - data/lib/tzispa/commands/api.rb +55 -0
 - data/lib/tzispa/commands/app.rb +83 -0
 - data/lib/tzispa/commands/cli/generate.rb +60 -0
 - data/lib/tzispa/commands/command.rb +28 -0
 - data/lib/tzispa/commands/console.rb +62 -0
 - data/lib/tzispa/commands/helpers/i18n.rb +67 -0
 - data/lib/tzispa/commands/helpers/project.rb +69 -0
 - data/lib/tzispa/commands/helpers/repository.rb +46 -0
 - data/lib/tzispa/commands/project.rb +104 -0
 - data/lib/tzispa/commands/repository.rb +66 -0
 - data/lib/tzispa/commands/rig.rb +28 -0
 - data/lib/tzispa/commands/server.rb +26 -0
 - data/lib/tzispa/config/{appconfig.rb → app_config.rb} +12 -32
 - data/lib/tzispa/config/base.rb +7 -5
 - data/lib/tzispa/config/db_config.rb +67 -0
 - data/lib/tzispa/config/yaml.rb +9 -10
 - data/lib/tzispa/context.rb +3 -2
 - data/lib/tzispa/controller/api.rb +66 -60
 - data/lib/tzispa/controller/auth_layout.rb +4 -28
 - data/lib/tzispa/controller/base.rb +61 -24
 - data/lib/tzispa/controller/exceptions.rb +3 -4
 - data/lib/tzispa/controller/http_error.rb +0 -3
 - data/lib/tzispa/controller/layout.rb +4 -4
 - data/lib/tzispa/domain.rb +27 -23
 - data/lib/tzispa/env.rb +34 -0
 - data/lib/tzispa/environment.rb +231 -0
 - data/lib/tzispa/http/context.rb +65 -80
 - data/lib/tzispa/http/request.rb +29 -17
 - data/lib/tzispa/http/response.rb +45 -12
 - data/lib/tzispa/route_set.rb +100 -0
 - data/lib/tzispa/server.rb +61 -0
 - data/lib/tzispa/tzisparc.rb +80 -0
 - data/lib/tzispa/version.rb +1 -1
 - data/lib/tzispa.rb +3 -1
 - data/tzispa.gemspec +12 -6
 - metadata +68 -17
 - data/lib/tzispa/command/api.rb +0 -24
 - data/lib/tzispa/command/app.rb +0 -95
 - data/lib/tzispa/command/cli/generate.rb +0 -51
 - data/lib/tzispa/command/project.rb +0 -258
 - data/lib/tzispa/command/rig.rb +0 -26
 - data/lib/tzispa/controller/signed_api.rb +0 -13
 - data/lib/tzispa/http/session_flash_bag.rb +0 -62
 - data/lib/tzispa/middleware.rb +0 -48
 - data/lib/tzispa/routes.rb +0 -69
 
| 
         @@ -0,0 +1,100 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            require 'yaml'
         
     | 
| 
      
 4 
     | 
    
         
            +
            require 'http_router'
         
     | 
| 
      
 5 
     | 
    
         
            +
            require 'tzispa/utils/string'
         
     | 
| 
      
 6 
     | 
    
         
            +
            require 'tzispa/controller/http_error'
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
            module Tzispa
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
              class RouteSet
         
     | 
| 
      
 11 
     | 
    
         
            +
                using Tzispa::Utils::TzString
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
                CONTROLLERS_BASE = 'Tzispa::Controller'
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
                attr_reader :router, :map_path, :app
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
                def initialize(app, root = nil)
         
     | 
| 
      
 18 
     | 
    
         
            +
                  @router = HttpRouter.new
         
     | 
| 
      
 19 
     | 
    
         
            +
                  @app = app
         
     | 
| 
      
 20 
     | 
    
         
            +
                  @router.default Controller::HttpError.new(app, :error_404)
         
     | 
| 
      
 21 
     | 
    
         
            +
                  @map_path = root unless root == '/'
         
     | 
| 
      
 22 
     | 
    
         
            +
                end
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
                def setup
         
     | 
| 
      
 25 
     | 
    
         
            +
                  draw do
         
     | 
| 
      
 26 
     | 
    
         
            +
                    contents = File.read(routes_definitions)
         
     | 
| 
      
 27 
     | 
    
         
            +
                    instance_eval(contents, File.basename(routes_definitions), 0)
         
     | 
| 
      
 28 
     | 
    
         
            +
                  end
         
     | 
| 
      
 29 
     | 
    
         
            +
                end
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
                def routes_definitions
         
     | 
| 
      
 32 
     | 
    
         
            +
                  @routes_definitions ||= "config/routes/#{app.name}.rb"
         
     | 
| 
      
 33 
     | 
    
         
            +
                end
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
                def path(path_id, params = {})
         
     | 
| 
      
 36 
     | 
    
         
            +
                  "#{@map_path}#{@router.path path_id, params}"
         
     | 
| 
      
 37 
     | 
    
         
            +
                end
         
     | 
| 
      
 38 
     | 
    
         
            +
             
     | 
| 
      
 39 
     | 
    
         
            +
                def call(env)
         
     | 
| 
      
 40 
     | 
    
         
            +
                  @router.call env
         
     | 
| 
      
 41 
     | 
    
         
            +
                end
         
     | 
| 
      
 42 
     | 
    
         
            +
             
     | 
| 
      
 43 
     | 
    
         
            +
                def add(route_id, path, controller, methods: nil, matching: nil)
         
     | 
| 
      
 44 
     | 
    
         
            +
                  add_route(route_id, path, to: build_controller(controller),
         
     | 
| 
      
 45 
     | 
    
         
            +
                                            methods: methods,
         
     | 
| 
      
 46 
     | 
    
         
            +
                                            matching: matching)
         
     | 
| 
      
 47 
     | 
    
         
            +
                end
         
     | 
| 
      
 48 
     | 
    
         
            +
             
     | 
| 
      
 49 
     | 
    
         
            +
                def draw
         
     | 
| 
      
 50 
     | 
    
         
            +
                  yield if block_given?
         
     | 
| 
      
 51 
     | 
    
         
            +
                end
         
     | 
| 
      
 52 
     | 
    
         
            +
             
     | 
| 
      
 53 
     | 
    
         
            +
                def index(path, controller: nil, methods: nil)
         
     | 
| 
      
 54 
     | 
    
         
            +
                  add :index, path, controller || 'layout:render!', methods: methods
         
     | 
| 
      
 55 
     | 
    
         
            +
                end
         
     | 
| 
      
 56 
     | 
    
         
            +
             
     | 
| 
      
 57 
     | 
    
         
            +
                def api(path, controller: nil, methods: nil)
         
     | 
| 
      
 58 
     | 
    
         
            +
                  add :api, path, controller || 'api:dispatch!', methods: methods
         
     | 
| 
      
 59 
     | 
    
         
            +
                end
         
     | 
| 
      
 60 
     | 
    
         
            +
             
     | 
| 
      
 61 
     | 
    
         
            +
                def signed_api(path, controller: nil, methods: nil)
         
     | 
| 
      
 62 
     | 
    
         
            +
                  add :sapi, path, controller || 'api:dispatch!', methods: methods
         
     | 
| 
      
 63 
     | 
    
         
            +
                end
         
     | 
| 
      
 64 
     | 
    
         
            +
             
     | 
| 
      
 65 
     | 
    
         
            +
                def layout(layout, path, controller: nil, methods: nil)
         
     | 
| 
      
 66 
     | 
    
         
            +
                  add layout, path, controller || 'layout:render!', methods: methods,
         
     | 
| 
      
 67 
     | 
    
         
            +
                                                                    matching: { layout: layout.to_s }
         
     | 
| 
      
 68 
     | 
    
         
            +
                end
         
     | 
| 
      
 69 
     | 
    
         
            +
             
     | 
| 
      
 70 
     | 
    
         
            +
                private
         
     | 
| 
      
 71 
     | 
    
         
            +
             
     | 
| 
      
 72 
     | 
    
         
            +
                def add_route(route_id, path, to:, methods: nil, matching: nil)
         
     | 
| 
      
 73 
     | 
    
         
            +
                  @router.add(path).tap do |rule|
         
     | 
| 
      
 74 
     | 
    
         
            +
                    rule.name = route_id
         
     | 
| 
      
 75 
     | 
    
         
            +
                    rule.to to
         
     | 
| 
      
 76 
     | 
    
         
            +
                    rule.add_request_method(methods) if methods
         
     | 
| 
      
 77 
     | 
    
         
            +
                    rule.add_match_with(matching) if matching
         
     | 
| 
      
 78 
     | 
    
         
            +
                  end
         
     | 
| 
      
 79 
     | 
    
         
            +
                end
         
     | 
| 
      
 80 
     | 
    
         
            +
             
     | 
| 
      
 81 
     | 
    
         
            +
                def build_controller(controller)
         
     | 
| 
      
 82 
     | 
    
         
            +
                  spec_control, callmethod = controller.to_s.split(':')
         
     | 
| 
      
 83 
     | 
    
         
            +
                  mpath = spec_control.split('#')
         
     | 
| 
      
 84 
     | 
    
         
            +
                  controller_class(mpath).new(app, callmethod)
         
     | 
| 
      
 85 
     | 
    
         
            +
                end
         
     | 
| 
      
 86 
     | 
    
         
            +
             
     | 
| 
      
 87 
     | 
    
         
            +
                def controller_class(mpath)
         
     | 
| 
      
 88 
     | 
    
         
            +
                  req_controller = mpath.pop
         
     | 
| 
      
 89 
     | 
    
         
            +
                  cmodule = if mpath.count > 1
         
     | 
| 
      
 90 
     | 
    
         
            +
                              require "#{app.path}/controller/#{req_controller}"
         
     | 
| 
      
 91 
     | 
    
         
            +
                              mpath.collect!(&:capitalize).join('::')
         
     | 
| 
      
 92 
     | 
    
         
            +
                            else
         
     | 
| 
      
 93 
     | 
    
         
            +
                              require "tzispa/controller/#{req_controller}"
         
     | 
| 
      
 94 
     | 
    
         
            +
                              CONTROLLERS_BASE
         
     | 
| 
      
 95 
     | 
    
         
            +
                            end
         
     | 
| 
      
 96 
     | 
    
         
            +
                  "#{cmodule}::#{req_controller.camelize}".constantize
         
     | 
| 
      
 97 
     | 
    
         
            +
                end
         
     | 
| 
      
 98 
     | 
    
         
            +
              end
         
     | 
| 
      
 99 
     | 
    
         
            +
             
     | 
| 
      
 100 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,61 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            require 'rack'
         
     | 
| 
      
 4 
     | 
    
         
            +
            require 'tzispa/environment'
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
            module Tzispa
         
     | 
| 
      
 7 
     | 
    
         
            +
              # provides rack-based web server interface
         
     | 
| 
      
 8 
     | 
    
         
            +
              class Server < ::Rack::Server
         
     | 
| 
      
 9 
     | 
    
         
            +
                attr_reader :options
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
                def initialize
         
     | 
| 
      
 12 
     | 
    
         
            +
                  @options = _extract_options
         
     | 
| 
      
 13 
     | 
    
         
            +
                  setup
         
     | 
| 
      
 14 
     | 
    
         
            +
                end
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
                def start
         
     | 
| 
      
 17 
     | 
    
         
            +
                  preload
         
     | 
| 
      
 18 
     | 
    
         
            +
                  super
         
     | 
| 
      
 19 
     | 
    
         
            +
                end
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
                private
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
                def setup
         
     | 
| 
      
 24 
     | 
    
         
            +
                  instance_eval 'load "./config/boot.rb"'
         
     | 
| 
      
 25 
     | 
    
         
            +
                  @app = if code_reloading?
         
     | 
| 
      
 26 
     | 
    
         
            +
                           Shotgun::Loader.new(rackup_file)
         
     | 
| 
      
 27 
     | 
    
         
            +
                         else
         
     | 
| 
      
 28 
     | 
    
         
            +
                           config = "Rack::Builder.new {( #{::File.read(rackup_file)}\n )}.to_app"
         
     | 
| 
      
 29 
     | 
    
         
            +
                           instance_eval config, rackup_file
         
     | 
| 
      
 30 
     | 
    
         
            +
                         end
         
     | 
| 
      
 31 
     | 
    
         
            +
                end
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
                def env
         
     | 
| 
      
 34 
     | 
    
         
            +
                  @env ||= Tzispa::Environment.instance
         
     | 
| 
      
 35 
     | 
    
         
            +
                end
         
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
      
 37 
     | 
    
         
            +
                def code_reloading?
         
     | 
| 
      
 38 
     | 
    
         
            +
                  env.code_reloading?
         
     | 
| 
      
 39 
     | 
    
         
            +
                end
         
     | 
| 
      
 40 
     | 
    
         
            +
             
     | 
| 
      
 41 
     | 
    
         
            +
                def preload
         
     | 
| 
      
 42 
     | 
    
         
            +
                  return unless code_reloading?
         
     | 
| 
      
 43 
     | 
    
         
            +
                  Shotgun.enable_copy_on_write
         
     | 
| 
      
 44 
     | 
    
         
            +
                  Shotgun.preload
         
     | 
| 
      
 45 
     | 
    
         
            +
                end
         
     | 
| 
      
 46 
     | 
    
         
            +
             
     | 
| 
      
 47 
     | 
    
         
            +
                def rackup_file
         
     | 
| 
      
 48 
     | 
    
         
            +
                  env.rackup.to_s
         
     | 
| 
      
 49 
     | 
    
         
            +
                end
         
     | 
| 
      
 50 
     | 
    
         
            +
             
     | 
| 
      
 51 
     | 
    
         
            +
                def _extract_options
         
     | 
| 
      
 52 
     | 
    
         
            +
                  {
         
     | 
| 
      
 53 
     | 
    
         
            +
                    environment: env.environment,
         
     | 
| 
      
 54 
     | 
    
         
            +
                    config:      rackup_file,
         
     | 
| 
      
 55 
     | 
    
         
            +
                    Host:        env.server_host,
         
     | 
| 
      
 56 
     | 
    
         
            +
                    Port:        env.server_port,
         
     | 
| 
      
 57 
     | 
    
         
            +
                    AccessLog:   []
         
     | 
| 
      
 58 
     | 
    
         
            +
                  }
         
     | 
| 
      
 59 
     | 
    
         
            +
                end
         
     | 
| 
      
 60 
     | 
    
         
            +
              end
         
     | 
| 
      
 61 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,80 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            require 'pathname'
         
     | 
| 
      
 4 
     | 
    
         
            +
            require 'tzispa/utils/hash'
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
            module Tzispa
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
              class Tzisparc
         
     | 
| 
      
 9 
     | 
    
         
            +
                using Tzispa::Utils::TzHash
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
                FILE_NAME = '.tzisparc'
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
                DEFAULT_ARCHITECTURE = 'domains'
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
                APP_ARCHITECTURE = 'app'
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
                ARCHITECTURE_KEY = 'architecture'
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
                PROJECT_NAME = 'project'
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
                DEFAULT_TEST_SUITE = 'minitest'
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
                TEST_KEY = 'test'
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
                DEFAULT_TEMPLATE = 'rig'
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
                TEMPLATE_KEY = 'template'
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
                SEPARATOR = '='
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
                def initialize(root)
         
     | 
| 
      
 32 
     | 
    
         
            +
                  @root = root
         
     | 
| 
      
 33 
     | 
    
         
            +
                end
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
                def options
         
     | 
| 
      
 36 
     | 
    
         
            +
                  @options ||= default_options.merge(file_options).symbolize!
         
     | 
| 
      
 37 
     | 
    
         
            +
                end
         
     | 
| 
      
 38 
     | 
    
         
            +
             
     | 
| 
      
 39 
     | 
    
         
            +
                def default_options
         
     | 
| 
      
 40 
     | 
    
         
            +
                  @default_options ||= { ARCHITECTURE_KEY => DEFAULT_ARCHITECTURE,
         
     | 
| 
      
 41 
     | 
    
         
            +
                                         PROJECT_NAME     => project_name,
         
     | 
| 
      
 42 
     | 
    
         
            +
                                         TEST_KEY         => DEFAULT_TEST_SUITE,
         
     | 
| 
      
 43 
     | 
    
         
            +
                                         TEMPLATE_KEY     => DEFAULT_TEMPLATE }
         
     | 
| 
      
 44 
     | 
    
         
            +
                end
         
     | 
| 
      
 45 
     | 
    
         
            +
             
     | 
| 
      
 46 
     | 
    
         
            +
                def exists?
         
     | 
| 
      
 47 
     | 
    
         
            +
                  path_file.exist?
         
     | 
| 
      
 48 
     | 
    
         
            +
                end
         
     | 
| 
      
 49 
     | 
    
         
            +
             
     | 
| 
      
 50 
     | 
    
         
            +
                def generate
         
     | 
| 
      
 51 
     | 
    
         
            +
                  File.open(path_file, 'w') do |file|
         
     | 
| 
      
 52 
     | 
    
         
            +
                    default_options.each { |k, v| file.puts("#{k}#{SEPARATOR}#{v}") }
         
     | 
| 
      
 53 
     | 
    
         
            +
                  end
         
     | 
| 
      
 54 
     | 
    
         
            +
                end
         
     | 
| 
      
 55 
     | 
    
         
            +
             
     | 
| 
      
 56 
     | 
    
         
            +
                private
         
     | 
| 
      
 57 
     | 
    
         
            +
             
     | 
| 
      
 58 
     | 
    
         
            +
                def file_options
         
     | 
| 
      
 59 
     | 
    
         
            +
                  exists? ? parse_file(path_file) : {}
         
     | 
| 
      
 60 
     | 
    
         
            +
                end
         
     | 
| 
      
 61 
     | 
    
         
            +
             
     | 
| 
      
 62 
     | 
    
         
            +
                def parse_file(path)
         
     | 
| 
      
 63 
     | 
    
         
            +
                  {}.tap do |hash|
         
     | 
| 
      
 64 
     | 
    
         
            +
                    File.readlines(path).each do |line|
         
     | 
| 
      
 65 
     | 
    
         
            +
                      key, value = line.split(SEPARATOR)
         
     | 
| 
      
 66 
     | 
    
         
            +
                      hash[key] = value.strip
         
     | 
| 
      
 67 
     | 
    
         
            +
                    end
         
     | 
| 
      
 68 
     | 
    
         
            +
                  end
         
     | 
| 
      
 69 
     | 
    
         
            +
                end
         
     | 
| 
      
 70 
     | 
    
         
            +
             
     | 
| 
      
 71 
     | 
    
         
            +
                def path_file
         
     | 
| 
      
 72 
     | 
    
         
            +
                  @root.join FILE_NAME
         
     | 
| 
      
 73 
     | 
    
         
            +
                end
         
     | 
| 
      
 74 
     | 
    
         
            +
             
     | 
| 
      
 75 
     | 
    
         
            +
                def project_name
         
     | 
| 
      
 76 
     | 
    
         
            +
                  ::File.basename(@root)
         
     | 
| 
      
 77 
     | 
    
         
            +
                end
         
     | 
| 
      
 78 
     | 
    
         
            +
              end
         
     | 
| 
      
 79 
     | 
    
         
            +
             
     | 
| 
      
 80 
     | 
    
         
            +
            end
         
     | 
    
        data/lib/tzispa/version.rb
    CHANGED
    
    
    
        data/lib/tzispa.rb
    CHANGED
    
    
    
        data/tzispa.gemspec
    CHANGED
    
    | 
         @@ -1,4 +1,6 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            #  
     | 
| 
      
 1 
     | 
    
         
            +
            # coding: utf-8
         
     | 
| 
      
 2 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
       2 
4 
     | 
    
         
             
            require File.expand_path('../lib/tzispa/version', __FILE__)
         
     | 
| 
       3 
5 
     | 
    
         | 
| 
       4 
6 
     | 
    
         
             
            Gem::Specification.new do |s|
         
     | 
| 
         @@ -10,21 +12,25 @@ Gem::Specification.new do |s| 
     | 
|
| 
       10 
12 
     | 
    
         
             
              s.email       = ['japinero@area-integral.com']
         
     | 
| 
       11 
13 
     | 
    
         
             
              s.homepage    = 'https://github.com/japiber/tzispa'
         
     | 
| 
       12 
14 
     | 
    
         
             
              s.summary     = 'A sparkling web framework'
         
     | 
| 
       13 
     | 
    
         
            -
              s.description = 'A sparkling web framework  
     | 
| 
      
 15 
     | 
    
         
            +
              s.description = 'A sparkling web framework Rack based'
         
     | 
| 
       14 
16 
     | 
    
         
             
              s.licenses    = ['MIT']
         
     | 
| 
       15 
17 
     | 
    
         | 
| 
       16 
     | 
    
         
            -
              s.required_ruby_version 
     | 
| 
      
 18 
     | 
    
         
            +
              s.required_ruby_version = '~> 2.3'
         
     | 
| 
       17 
19 
     | 
    
         | 
| 
      
 20 
     | 
    
         
            +
              s.add_dependency 'bundler',        '~> 1.14'
         
     | 
| 
       18 
21 
     | 
    
         
             
              s.add_dependency 'rack',           '~> 2.0',    '>= 2.0.1'
         
     | 
| 
       19 
22 
     | 
    
         
             
              s.add_dependency 'i18n',           '~> 0.8.0'
         
     | 
| 
       20 
23 
     | 
    
         
             
              s.add_dependency 'thor',           '~> 0.19.0'
         
     | 
| 
       21 
24 
     | 
    
         
             
              s.add_dependency 'http_router',    '~> 0.11.2'
         
     | 
| 
       22 
     | 
    
         
            -
              s.add_dependency 'tzispa_helpers', '~> 0. 
     | 
| 
      
 25 
     | 
    
         
            +
              s.add_dependency 'tzispa_helpers', '~> 0.3'
         
     | 
| 
       23 
26 
     | 
    
         
             
              s.add_dependency 'tzispa_utils',   '~> 0.3'
         
     | 
| 
       24 
27 
     | 
    
         
             
              s.add_dependency 'tzispa_rig',     '~> 0.5'
         
     | 
| 
       25 
     | 
    
         
            -
              s.add_dependency 'tzispa_data',    '~> 0. 
     | 
| 
      
 28 
     | 
    
         
            +
              s.add_dependency 'tzispa_data',    '~> 0.4'
         
     | 
| 
      
 29 
     | 
    
         
            +
              s.add_dependency 'dotenv',         '~> 2.2'
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
              s.add_development_dependency 'shotgun'
         
     | 
| 
       26 
32 
     | 
    
         | 
| 
       27 
     | 
    
         
            -
              s.files         = Dir.glob( 
     | 
| 
      
 33 
     | 
    
         
            +
              s.files         = Dir.glob('{lib,bin}/**/*') + %w(README.md CHANGELOG.md LICENSE tzispa.gemspec)
         
     | 
| 
       28 
34 
     | 
    
         
             
              s.executables   = s.files.grep(%r{^bin/}) { |f| File.basename(f) }
         
     | 
| 
       29 
35 
     | 
    
         
             
              s.require_paths = ['lib']
         
     | 
| 
       30 
36 
     | 
    
         
             
            end
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,15 +1,29 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: tzispa
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.7.0
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Juan Antonio Piñero
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2017- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2017-03-13 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
      
 13 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 14 
     | 
    
         
            +
              name: bundler
         
     | 
| 
      
 15 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 16 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 17 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 18 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 19 
     | 
    
         
            +
                    version: '1.14'
         
     | 
| 
      
 20 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 21 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 22 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 23 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 24 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 25 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 26 
     | 
    
         
            +
                    version: '1.14'
         
     | 
| 
       13 
27 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
28 
     | 
    
         
             
              name: rack
         
     | 
| 
       15 
29 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
         @@ -78,14 +92,14 @@ dependencies: 
     | 
|
| 
       78 
92 
     | 
    
         
             
                requirements:
         
     | 
| 
       79 
93 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       80 
94 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       81 
     | 
    
         
            -
                    version: 0. 
     | 
| 
      
 95 
     | 
    
         
            +
                    version: '0.3'
         
     | 
| 
       82 
96 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       83 
97 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       84 
98 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       85 
99 
     | 
    
         
             
                requirements:
         
     | 
| 
       86 
100 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       87 
101 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       88 
     | 
    
         
            -
                    version: 0. 
     | 
| 
      
 102 
     | 
    
         
            +
                    version: '0.3'
         
     | 
| 
       89 
103 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       90 
104 
     | 
    
         
             
              name: tzispa_utils
         
     | 
| 
       91 
105 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
         @@ -120,15 +134,43 @@ dependencies: 
     | 
|
| 
       120 
134 
     | 
    
         
             
                requirements:
         
     | 
| 
       121 
135 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       122 
136 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       123 
     | 
    
         
            -
                    version: '0. 
     | 
| 
      
 137 
     | 
    
         
            +
                    version: '0.4'
         
     | 
| 
       124 
138 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       125 
139 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       126 
140 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       127 
141 
     | 
    
         
             
                requirements:
         
     | 
| 
       128 
142 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       129 
143 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       130 
     | 
    
         
            -
                    version: '0. 
     | 
| 
       131 
     | 
    
         
            -
             
     | 
| 
      
 144 
     | 
    
         
            +
                    version: '0.4'
         
     | 
| 
      
 145 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 146 
     | 
    
         
            +
              name: dotenv
         
     | 
| 
      
 147 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 148 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 149 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 150 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 151 
     | 
    
         
            +
                    version: '2.2'
         
     | 
| 
      
 152 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 153 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 154 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 155 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 156 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 157 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 158 
     | 
    
         
            +
                    version: '2.2'
         
     | 
| 
      
 159 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 160 
     | 
    
         
            +
              name: shotgun
         
     | 
| 
      
 161 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 162 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 163 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 164 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 165 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 166 
     | 
    
         
            +
              type: :development
         
     | 
| 
      
 167 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 168 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 169 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 170 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 171 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 172 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 173 
     | 
    
         
            +
            description: A sparkling web framework Rack based
         
     | 
| 
       132 
174 
     | 
    
         
             
            email:
         
     | 
| 
       133 
175 
     | 
    
         
             
            - japinero@area-integral.com
         
     | 
| 
       134 
176 
     | 
    
         
             
            executables:
         
     | 
| 
         @@ -145,13 +187,21 @@ files: 
     | 
|
| 
       145 
187 
     | 
    
         
             
            - lib/tzispa/app.rb
         
     | 
| 
       146 
188 
     | 
    
         
             
            - lib/tzispa/bin/tzispa
         
     | 
| 
       147 
189 
     | 
    
         
             
            - lib/tzispa/cli.rb
         
     | 
| 
       148 
     | 
    
         
            -
            - lib/tzispa/ 
     | 
| 
       149 
     | 
    
         
            -
            - lib/tzispa/ 
     | 
| 
       150 
     | 
    
         
            -
            - lib/tzispa/ 
     | 
| 
       151 
     | 
    
         
            -
            - lib/tzispa/command 
     | 
| 
       152 
     | 
    
         
            -
            - lib/tzispa/ 
     | 
| 
       153 
     | 
    
         
            -
            - lib/tzispa/ 
     | 
| 
      
 190 
     | 
    
         
            +
            - lib/tzispa/commands/api.rb
         
     | 
| 
      
 191 
     | 
    
         
            +
            - lib/tzispa/commands/app.rb
         
     | 
| 
      
 192 
     | 
    
         
            +
            - lib/tzispa/commands/cli/generate.rb
         
     | 
| 
      
 193 
     | 
    
         
            +
            - lib/tzispa/commands/command.rb
         
     | 
| 
      
 194 
     | 
    
         
            +
            - lib/tzispa/commands/console.rb
         
     | 
| 
      
 195 
     | 
    
         
            +
            - lib/tzispa/commands/helpers/i18n.rb
         
     | 
| 
      
 196 
     | 
    
         
            +
            - lib/tzispa/commands/helpers/project.rb
         
     | 
| 
      
 197 
     | 
    
         
            +
            - lib/tzispa/commands/helpers/repository.rb
         
     | 
| 
      
 198 
     | 
    
         
            +
            - lib/tzispa/commands/project.rb
         
     | 
| 
      
 199 
     | 
    
         
            +
            - lib/tzispa/commands/repository.rb
         
     | 
| 
      
 200 
     | 
    
         
            +
            - lib/tzispa/commands/rig.rb
         
     | 
| 
      
 201 
     | 
    
         
            +
            - lib/tzispa/commands/server.rb
         
     | 
| 
      
 202 
     | 
    
         
            +
            - lib/tzispa/config/app_config.rb
         
     | 
| 
       154 
203 
     | 
    
         
             
            - lib/tzispa/config/base.rb
         
     | 
| 
      
 204 
     | 
    
         
            +
            - lib/tzispa/config/db_config.rb
         
     | 
| 
       155 
205 
     | 
    
         
             
            - lib/tzispa/config/yaml.rb
         
     | 
| 
       156 
206 
     | 
    
         
             
            - lib/tzispa/context.rb
         
     | 
| 
       157 
207 
     | 
    
         
             
            - lib/tzispa/controller/api.rb
         
     | 
| 
         @@ -160,14 +210,15 @@ files: 
     | 
|
| 
       160 
210 
     | 
    
         
             
            - lib/tzispa/controller/exceptions.rb
         
     | 
| 
       161 
211 
     | 
    
         
             
            - lib/tzispa/controller/http_error.rb
         
     | 
| 
       162 
212 
     | 
    
         
             
            - lib/tzispa/controller/layout.rb
         
     | 
| 
       163 
     | 
    
         
            -
            - lib/tzispa/controller/signed_api.rb
         
     | 
| 
       164 
213 
     | 
    
         
             
            - lib/tzispa/domain.rb
         
     | 
| 
      
 214 
     | 
    
         
            +
            - lib/tzispa/env.rb
         
     | 
| 
      
 215 
     | 
    
         
            +
            - lib/tzispa/environment.rb
         
     | 
| 
       165 
216 
     | 
    
         
             
            - lib/tzispa/http/context.rb
         
     | 
| 
       166 
217 
     | 
    
         
             
            - lib/tzispa/http/request.rb
         
     | 
| 
       167 
218 
     | 
    
         
             
            - lib/tzispa/http/response.rb
         
     | 
| 
       168 
     | 
    
         
            -
            - lib/tzispa/ 
     | 
| 
       169 
     | 
    
         
            -
            - lib/tzispa/ 
     | 
| 
       170 
     | 
    
         
            -
            - lib/tzispa/ 
     | 
| 
      
 219 
     | 
    
         
            +
            - lib/tzispa/route_set.rb
         
     | 
| 
      
 220 
     | 
    
         
            +
            - lib/tzispa/server.rb
         
     | 
| 
      
 221 
     | 
    
         
            +
            - lib/tzispa/tzisparc.rb
         
     | 
| 
       171 
222 
     | 
    
         
             
            - lib/tzispa/version.rb
         
     | 
| 
       172 
223 
     | 
    
         
             
            - tzispa.gemspec
         
     | 
| 
       173 
224 
     | 
    
         
             
            homepage: https://github.com/japiber/tzispa
         
     | 
    
        data/lib/tzispa/command/api.rb
    DELETED
    
    | 
         @@ -1,24 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            require 'tzispa/controller/api'
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
            module Tzispa
         
     | 
| 
       4 
     | 
    
         
            -
              module Command
         
     | 
| 
       5 
     | 
    
         
            -
             
     | 
| 
       6 
     | 
    
         
            -
                class Api
         
     | 
| 
       7 
     | 
    
         
            -
             
     | 
| 
       8 
     | 
    
         
            -
                  attr_reader :name, :domain
         
     | 
| 
       9 
     | 
    
         
            -
             
     | 
| 
       10 
     | 
    
         
            -
                  def initialize(name, app)
         
     | 
| 
       11 
     | 
    
         
            -
                    @prj = Project.open
         
     | 
| 
       12 
     | 
    
         
            -
                    raise "Application '#{app}' does not exists in project file" unless @prj.apps.include?(app)
         
     | 
| 
       13 
     | 
    
         
            -
                    @domain = Tzispa::Domain.new app
         
     | 
| 
       14 
     | 
    
         
            -
                    @name = name
         
     | 
| 
       15 
     | 
    
         
            -
                  end
         
     | 
| 
       16 
     | 
    
         
            -
             
     | 
| 
       17 
     | 
    
         
            -
                  def generate
         
     | 
| 
       18 
     | 
    
         
            -
                    Tzispa::Controller::Api.new.generate_handler(domain, name)
         
     | 
| 
       19 
     | 
    
         
            -
                  end
         
     | 
| 
       20 
     | 
    
         
            -
             
     | 
| 
       21 
     | 
    
         
            -
                end
         
     | 
| 
       22 
     | 
    
         
            -
             
     | 
| 
       23 
     | 
    
         
            -
              end
         
     | 
| 
       24 
     | 
    
         
            -
            end
         
     | 
    
        data/lib/tzispa/command/app.rb
    DELETED
    
    | 
         @@ -1,95 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            require 'json'
         
     | 
| 
       2 
     | 
    
         
            -
            require 'tzispa/domain'
         
     | 
| 
       3 
     | 
    
         
            -
            require 'tzispa/utils/string'
         
     | 
| 
       4 
     | 
    
         
            -
            require 'tzispa/utils/indenter'
         
     | 
| 
       5 
     | 
    
         
            -
            require 'tzispa/config/appconfig'
         
     | 
| 
       6 
     | 
    
         
            -
            require_relative 'project'
         
     | 
| 
       7 
     | 
    
         
            -
             
     | 
| 
       8 
     | 
    
         
            -
            module Tzispa
         
     | 
| 
       9 
     | 
    
         
            -
              module Command
         
     | 
| 
       10 
     | 
    
         
            -
             
     | 
| 
       11 
     | 
    
         
            -
                class App
         
     | 
| 
       12 
     | 
    
         
            -
             
     | 
| 
       13 
     | 
    
         
            -
                  using Tzispa::Utils
         
     | 
| 
       14 
     | 
    
         
            -
             
     | 
| 
       15 
     | 
    
         
            -
                  APP_STRUCTURE = [
         
     | 
| 
       16 
     | 
    
         
            -
                    'api',
         
     | 
| 
       17 
     | 
    
         
            -
                    'locales',
         
     | 
| 
       18 
     | 
    
         
            -
                    'error',
         
     | 
| 
       19 
     | 
    
         
            -
                    'helpers',
         
     | 
| 
       20 
     | 
    
         
            -
                    'middleware',
         
     | 
| 
       21 
     | 
    
         
            -
                    'rig',
         
     | 
| 
       22 
     | 
    
         
            -
                    'rig/block',
         
     | 
| 
       23 
     | 
    
         
            -
                    'rig/layout',
         
     | 
| 
       24 
     | 
    
         
            -
                    'rig/static',
         
     | 
| 
       25 
     | 
    
         
            -
                    'services'
         
     | 
| 
       26 
     | 
    
         
            -
                  ]
         
     | 
| 
       27 
     | 
    
         
            -
             
     | 
| 
       28 
     | 
    
         
            -
                  attr_reader :domain, :config
         
     | 
| 
       29 
     | 
    
         
            -
             
     | 
| 
       30 
     | 
    
         
            -
                  def initialize(name)
         
     | 
| 
       31 
     | 
    
         
            -
                    @domain = Tzispa::Domain.new(name)
         
     | 
| 
       32 
     | 
    
         
            -
                  end
         
     | 
| 
       33 
     | 
    
         
            -
             
     | 
| 
       34 
     | 
    
         
            -
                  def generate(host, mount_path=nil)
         
     | 
| 
       35 
     | 
    
         
            -
                    update_project
         
     | 
| 
       36 
     | 
    
         
            -
                    create_structure
         
     | 
| 
       37 
     | 
    
         
            -
                    create_class mount_path
         
     | 
| 
       38 
     | 
    
         
            -
                    create_appconfig(host)
         
     | 
| 
       39 
     | 
    
         
            -
                    create_home_layout
         
     | 
| 
       40 
     | 
    
         
            -
                  end
         
     | 
| 
       41 
     | 
    
         
            -
             
     | 
| 
       42 
     | 
    
         
            -
                  private
         
     | 
| 
       43 
     | 
    
         
            -
             
     | 
| 
       44 
     | 
    
         
            -
                  def app_class_name
         
     | 
| 
       45 
     | 
    
         
            -
                    @app_class_name ||= "#{domain.name.camelize}App"
         
     | 
| 
       46 
     | 
    
         
            -
                  end
         
     | 
| 
       47 
     | 
    
         
            -
             
     | 
| 
       48 
     | 
    
         
            -
                  def update_project
         
     | 
| 
       49 
     | 
    
         
            -
                    prj = Project.open
         
     | 
| 
       50 
     | 
    
         
            -
                    raise "Application '#{domain.name}' already exist in this project" if prj.apps.include?(domain.name)
         
     | 
| 
       51 
     | 
    
         
            -
                    prj.apps << domain.name
         
     | 
| 
       52 
     | 
    
         
            -
                    prj.close
         
     | 
| 
       53 
     | 
    
         
            -
                  end
         
     | 
| 
       54 
     | 
    
         
            -
             
     | 
| 
       55 
     | 
    
         
            -
                  def create_class(mount_path=nil)
         
     | 
| 
       56 
     | 
    
         
            -
                    mount_path ||= DEFAULT_MOUNT_PATH
         
     | 
| 
       57 
     | 
    
         
            -
                    File.open("#{Project::START_FILE}","a") do |f|
         
     | 
| 
       58 
     | 
    
         
            -
                      f.puts write_app_code(mount_path)
         
     | 
| 
       59 
     | 
    
         
            -
                    end
         
     | 
| 
       60 
     | 
    
         
            -
                  end
         
     | 
| 
       61 
     | 
    
         
            -
             
     | 
| 
       62 
     | 
    
         
            -
                  def write_app_code(mount_path)
         
     | 
| 
       63 
     | 
    
         
            -
                    mount_path = "/#{mount_path}" unless mount_path.start_with? '/'
         
     | 
| 
       64 
     | 
    
         
            -
                    Tzispa::Utils::Indenter.new(2).tap { |code|
         
     | 
| 
       65 
     | 
    
         
            -
                      code << "(Class.new Tzispa::Application).run :#{domain.name}, builder: self#{", on: \'"+mount_path+"\'" if mount_path && mount_path.length > 0}  do\n\n"
         
     | 
| 
       66 
     | 
    
         
            -
                      code.indent << "route_rig_signed_api  '/api_:sign/:handler/:verb(~:predicate)(/:sufix)'\n"
         
     | 
| 
       67 
     | 
    
         
            -
                      code        << "route_rig_api         '/api/:handler/:verb(~:predicate)(/:sufix)'\n"
         
     | 
| 
       68 
     | 
    
         
            -
                      code        << "route_rig_index       '/'\n\n"
         
     | 
| 
       69 
     | 
    
         
            -
                      code.unindent << "end\n\n"
         
     | 
| 
       70 
     | 
    
         
            -
                    }.to_s
         
     | 
| 
       71 
     | 
    
         
            -
                  end
         
     | 
| 
       72 
     | 
    
         
            -
             
     | 
| 
       73 
     | 
    
         
            -
                  def create_structure
         
     | 
| 
       74 
     | 
    
         
            -
                    unless File.exist? domain.path
         
     | 
| 
       75 
     | 
    
         
            -
                      Dir.mkdir "#{domain.path}"
         
     | 
| 
       76 
     | 
    
         
            -
                      APP_STRUCTURE.each { |appdir|
         
     | 
| 
       77 
     | 
    
         
            -
                        Dir.mkdir "#{domain.path}/#{appdir}"
         
     | 
| 
       78 
     | 
    
         
            -
                      }
         
     | 
| 
       79 
     | 
    
         
            -
                    end
         
     | 
| 
       80 
     | 
    
         
            -
                  end
         
     | 
| 
       81 
     | 
    
         
            -
             
     | 
| 
       82 
     | 
    
         
            -
                  def create_appconfig(host)
         
     | 
| 
       83 
     | 
    
         
            -
                    appconfig = Tzispa::Config::AppConfig.new(domain)
         
     | 
| 
       84 
     | 
    
         
            -
                    @config = appconfig.create_default host: host
         
     | 
| 
       85 
     | 
    
         
            -
                  end
         
     | 
| 
       86 
     | 
    
         
            -
             
     | 
| 
       87 
     | 
    
         
            -
                  def create_home_layout
         
     | 
| 
       88 
     | 
    
         
            -
                    tpl = Tzispa::Rig::Template.new(name: config&.default_layout || 'index', type: :layout, domain: domain, format: :htm)
         
     | 
| 
       89 
     | 
    
         
            -
                    tpl.create("<html><body><h1>Welcome: Tzispa #{domain.name} application is working!</h1></body></html>")
         
     | 
| 
       90 
     | 
    
         
            -
                  end
         
     | 
| 
       91 
     | 
    
         
            -
             
     | 
| 
       92 
     | 
    
         
            -
                end
         
     | 
| 
       93 
     | 
    
         
            -
             
     | 
| 
       94 
     | 
    
         
            -
              end
         
     | 
| 
       95 
     | 
    
         
            -
            end
         
     | 
| 
         @@ -1,51 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            require 'thor'
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
             
     | 
| 
       4 
     | 
    
         
            -
            module Tzispa
         
     | 
| 
       5 
     | 
    
         
            -
              module Command
         
     | 
| 
       6 
     | 
    
         
            -
                module Cli
         
     | 
| 
       7 
     | 
    
         
            -
             
     | 
| 
       8 
     | 
    
         
            -
                  class Generate < Thor
         
     | 
| 
       9 
     | 
    
         
            -
             
     | 
| 
       10 
     | 
    
         
            -
                    require 'tzispa/command/project'
         
     | 
| 
       11 
     | 
    
         
            -
                    desc 'project', 'Generate Tzispa project components'
         
     | 
| 
       12 
     | 
    
         
            -
                    def project(name)
         
     | 
| 
       13 
     | 
    
         
            -
                      Tzispa::Command::Project.new(name).generate
         
     | 
| 
       14 
     | 
    
         
            -
                      puts "Project '#{name}' has been created"
         
     | 
| 
       15 
     | 
    
         
            -
                    end
         
     | 
| 
       16 
     | 
    
         
            -
             
     | 
| 
       17 
     | 
    
         
            -
                    require 'tzispa/command/app'
         
     | 
| 
       18 
     | 
    
         
            -
                    desc 'app', 'Generate new application into a project'
         
     | 
| 
       19 
     | 
    
         
            -
                    method_option :mount, :aliases => "-m", :desc => "The mount point for this app", :default => ""
         
     | 
| 
       20 
     | 
    
         
            -
                    method_option :host, :aliases => "-h", :desc => "The hostname used for this app ", :required => true
         
     | 
| 
       21 
     | 
    
         
            -
                    def app(name)
         
     | 
| 
       22 
     | 
    
         
            -
                      tzapp = Tzispa::Command::App.new(name)
         
     | 
| 
       23 
     | 
    
         
            -
                      tzapp.generate(options[:host], options[:mount])
         
     | 
| 
       24 
     | 
    
         
            -
                      puts "App '#{name}' has been created"
         
     | 
| 
       25 
     | 
    
         
            -
                    end
         
     | 
| 
       26 
     | 
    
         
            -
             
     | 
| 
       27 
     | 
    
         
            -
                    require 'tzispa/command/rig'
         
     | 
| 
       28 
     | 
    
         
            -
                    desc 'rig', 'Generate new rig template'
         
     | 
| 
       29 
     | 
    
         
            -
                    method_option :app, :aliases => "-a", :desc => "The app where the new template will be created", :required => true
         
     | 
| 
       30 
     | 
    
         
            -
                    method_option :type, :aliases => "-t", :desc => "The template type: block, static or layout ", :required => true
         
     | 
| 
       31 
     | 
    
         
            -
                    def rig(name)
         
     | 
| 
       32 
     | 
    
         
            -
                      tpl = Tzispa::Command::Rig.new(name, options[:app], options[:type])
         
     | 
| 
       33 
     | 
    
         
            -
                      tpl.generate
         
     | 
| 
       34 
     | 
    
         
            -
                      puts "Rig #{options[:type]} template '#{name}' has been created in #{options[:app]}"
         
     | 
| 
       35 
     | 
    
         
            -
                    end
         
     | 
| 
       36 
     | 
    
         
            -
             
     | 
| 
       37 
     | 
    
         
            -
                    require 'tzispa/command/api'
         
     | 
| 
       38 
     | 
    
         
            -
                    desc 'api', 'Generate new api handler'
         
     | 
| 
       39 
     | 
    
         
            -
                    method_option :app, :aliases => "-a", :desc => "The app where the api handler will be created", :required => true
         
     | 
| 
       40 
     | 
    
         
            -
                    def api(name)
         
     | 
| 
       41 
     | 
    
         
            -
                      hnd = Tzispa::Command::Api.new(name, options[:app])
         
     | 
| 
       42 
     | 
    
         
            -
                      hnd.generate
         
     | 
| 
       43 
     | 
    
         
            -
                      puts "Api handler '#{name}' has been created in #{options[:app]}"
         
     | 
| 
       44 
     | 
    
         
            -
                    end
         
     | 
| 
       45 
     | 
    
         
            -
             
     | 
| 
       46 
     | 
    
         
            -
             
     | 
| 
       47 
     | 
    
         
            -
                  end
         
     | 
| 
       48 
     | 
    
         
            -
             
     | 
| 
       49 
     | 
    
         
            -
                end
         
     | 
| 
       50 
     | 
    
         
            -
              end
         
     | 
| 
       51 
     | 
    
         
            -
            end
         
     |