From 6fc556cf8cd1931a81ff5fcee369410fd6e25621 Mon Sep 17 00:00:00 2001 From: "Brian J. Cardiff" Date: Tue, 30 Jul 2019 09:52:29 -0300 Subject: [PATCH 1/9] Annotate return types of, and implement abstract methods --- src/amber/controller/filters.cr | 6 ++++++ src/amber/exceptions/page.cr | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/amber/controller/filters.cr b/src/amber/controller/filters.cr index fe6a8287a..5c20aec33 100644 --- a/src/amber/controller/filters.cr +++ b/src/amber/controller/filters.cr @@ -80,6 +80,12 @@ module Amber::Controller filters[filter.precedence] << filter end + def each(&block : {Symbol, Array(Filter)} -> _) + filters.each do |key, filter| + yield({key, filter}) + end + end + def run(precedence : Symbol, action : Symbol, except_action : Symbol | Nil = nil) filters[precedence].each do |filter| next if except_filter_and_has_action?(filter, except_action) diff --git a/src/amber/exceptions/page.cr b/src/amber/exceptions/page.cr index 4005d619b..afd237769 100644 --- a/src/amber/exceptions/page.cr +++ b/src/amber/exceptions/page.cr @@ -2,7 +2,7 @@ require "exception_page" module Amber::Exceptions class Page < ExceptionPage - def styles + def styles : ExceptionPage::Styles ExceptionPage::Styles.new( accent: "#f4994b", logo_uri: "data:image/png;base64,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" From 9c5e6e30ea709b55c9a318eedc8d578845a25f05 Mon Sep 17 00:00:00 2001 From: "Brian J. Cardiff" Date: Tue, 30 Jul 2019 19:24:23 -0300 Subject: [PATCH 2/9] Upgrade to Crystal v0.30.0 --- src/amber/pipes/static.cr | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/amber/pipes/static.cr b/src/amber/pipes/static.cr index e6e052e8b..827d0b7a6 100644 --- a/src/amber/pipes/static.cr +++ b/src/amber/pipes/static.cr @@ -11,7 +11,7 @@ module Amber return allow_get_or_head(context) unless method_get_or_head?(context.request.method) original_path = context.request.path.not_nil! - request_path = URI.unescape(original_path) + request_path = URI.decode(original_path) # File path cannot contains '\0' (NUL) because all filesystem I know # don't accept '\0' character as file name. From f0a50ccc5a68c29ec5d8db8d9f1abbfa34320cbc Mon Sep 17 00:00:00 2001 From: Dru Jensen Date: Tue, 6 Aug 2019 21:56:01 -0700 Subject: [PATCH 3/9] shard updates --- shard.yml | 10 +++++----- src/amber/cli/templates/app/shard.yml.ecr | 8 ++++---- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/shard.yml b/shard.yml index c3b72f83a..adcf7def7 100644 --- a/shard.yml +++ b/shard.yml @@ -32,7 +32,7 @@ dependencies: liquid: github: TechMagister/liquid.cr - version: ~> 0.3.0 + #version: ~> 0.3.0 micrate: github: amberframework/micrate @@ -40,15 +40,15 @@ dependencies: pg: github: will/crystal-pg - version: ~> 0.16.1 + version: ~> 0.18.0 mysql: github: crystal-lang/crystal-mysql - version: ~> 0.6.0 + version: ~> 0.8.0 sqlite3: github: crystal-lang/crystal-sqlite3 - version: ~> 0.12.0 + version: ~> 0.13.0 redis: github: stefanwille/crystal-redis @@ -68,7 +68,7 @@ dependencies: teeplate: github: mosop/teeplate - version: ~> 0.7.0 + version: ~> 0.8.0 exception_page: github: crystal-loot/exception_page diff --git a/src/amber/cli/templates/app/shard.yml.ecr b/src/amber/cli/templates/app/shard.yml.ecr index c23555bcf..a18820c72 100644 --- a/src/amber/cli/templates/app/shard.yml.ecr +++ b/src/amber/cli/templates/app/shard.yml.ecr @@ -36,20 +36,20 @@ dependencies: <% case @database when "pg" -%> pg: github: will/crystal-pg - version: ~> 0.16.1 + version: ~> 0.18.0 <% when "mysql" -%> mysql: github: crystal-lang/crystal-mysql - version: ~> 0.6.0 + version: ~> 0.8.0 <% when "sqlite" -%> sqlite3: github: crystal-lang/crystal-sqlite3 - version: ~> 0.12.0 + version: ~> 0.13.0 <% end -%> citrine-i18n: github: amberframework/citrine-i18n - version: 0.3.2 + version: 0.4.0 development_dependencies: garnet_spec: From 11d48fd20702d0fda706d11e7e86a00438f29f99 Mon Sep 17 00:00:00 2001 From: Dru Jensen Date: Wed, 7 Aug 2019 05:43:53 -0700 Subject: [PATCH 4/9] Update granite to latest DSL --- shard.yml | 4 ++-- src/amber/cli/templates/app/config/database.cr.ecr | 2 +- src/amber/cli/templates/app/shard.yml.ecr | 2 +- src/amber/cli/templates/model/src/models/{{name}}.cr.ecr | 8 ++++---- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/shard.yml b/shard.yml index adcf7def7..ccb5f861a 100644 --- a/shard.yml +++ b/shard.yml @@ -19,8 +19,8 @@ dependencies: version: ~> 0.3.0 cli: - github: mosop/cli - version: ~> 0.7.0 + github: drujensen/cli + version: ~> 0.8.0 compiled_license: github: elorest/compiled_license diff --git a/src/amber/cli/templates/app/config/database.cr.ecr b/src/amber/cli/templates/app/config/database.cr.ecr index c1d93bd46..3dc4c80b0 100644 --- a/src/amber/cli/templates/app/config/database.cr.ecr +++ b/src/amber/cli/templates/app/config/database.cr.ecr @@ -1,5 +1,5 @@ require "granite/adapter/<%= @database %>" -Granite::Adapters << Granite::Adapter::<%= @database.capitalize %>.new({name: "<%= @database %>", url: Amber.settings.database_url}) +Granite::Connections << Granite::Adapter::<%= @database.capitalize %>.new({name: "<%= @database %>", url: Amber.settings.database_url}) Granite.settings.logger = Amber.settings.logger.dup Granite.settings.logger.not_nil!.progname = "Granite" diff --git a/src/amber/cli/templates/app/shard.yml.ecr b/src/amber/cli/templates/app/shard.yml.ecr index a18820c72..664690b5d 100644 --- a/src/amber/cli/templates/app/shard.yml.ecr +++ b/src/amber/cli/templates/app/shard.yml.ecr @@ -23,7 +23,7 @@ dependencies: granite: github: amberframework/granite - version: ~> 0.16.0 + version: ~> 0.17.0 quartz_mailer: github: amberframework/quartz-mailer diff --git a/src/amber/cli/templates/model/src/models/{{name}}.cr.ecr b/src/amber/cli/templates/model/src/models/{{name}}.cr.ecr index 92a8c8ce1..73111e541 100644 --- a/src/amber/cli/templates/model/src/models/{{name}}.cr.ecr +++ b/src/amber/cli/templates/model/src/models/{{name}}.cr.ecr @@ -1,13 +1,13 @@ class <%= class_name %> < Granite::Base - adapter <%= config.database %> - <%= "table_name #{table_name}" %> + connection <%= config.database %> + <%= "table #{table_name}" %> <% @fields.select{|f| f.reference? }.each do |field| %> belongs_to :<%= field.name %> <% end -%> - primary id : Int64 + column id : Int64, primary: true <% @fields.reject{|f| f.hidden || f.reference? }.each do |field| -%> - field <%= field.name %> : <%= field.cr_type %> + column <%= field.name %> : <%= field.cr_type %> <% end -%> <% if config.database != "sqlite" -%> timestamps From 23b78d61a216a2667fe875609872edfe2fdb226d Mon Sep 17 00:00:00 2001 From: Dru Jensen Date: Wed, 7 Aug 2019 05:49:45 -0700 Subject: [PATCH 5/9] update specs and fix auth generator --- spec/amber/cli/commands/init_spec.cr | 2 +- spec/support/fixtures/cli_fixtures.cr | 14 +++++++------- .../cli/templates/auth/src/models/{{name}}.cr.ecr | 8 ++++---- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/spec/amber/cli/commands/init_spec.cr b/spec/amber/cli/commands/init_spec.cr index dc9ac0912..f4b23e97f 100644 --- a/spec/amber/cli/commands/init_spec.cr +++ b/spec/amber/cli/commands/init_spec.cr @@ -22,7 +22,7 @@ module Amber::CLI [camel_case, snake_case].each do |arg| MainCommand.run ["generate", "model", "-y", arg] filename = snake_case - granite_table_name = "table_name #{snake_case}s" + granite_table_name = "table #{snake_case}s" src_filepath = "./src/models/#{filename}.cr" spec_filepath = "./spec/models/#{filename}_spec.cr" File.exists?(src_filepath).should be_true diff --git a/spec/support/fixtures/cli_fixtures.cr b/spec/support/fixtures/cli_fixtures.cr index f42b918d6..7d84fe2c9 100644 --- a/spec/support/fixtures/cli_fixtures.cr +++ b/spec/support/fixtures/cli_fixtures.cr @@ -56,16 +56,16 @@ module CLIFixtures def expected_post_model <<-MODEL class Post < Granite::Base - adapter pg - table_name posts + connection pg + table posts belongs_to :user - primary id : Int64 - field title : String - field body : String - field published : Bool - field likes : Int32 + column id : Int64, primary: true + column title : String + column body : String + column published : Bool + column likes : Int32 timestamps end diff --git a/src/amber/cli/templates/auth/src/models/{{name}}.cr.ecr b/src/amber/cli/templates/auth/src/models/{{name}}.cr.ecr index d36a48606..478afd39f 100644 --- a/src/amber/cli/templates/auth/src/models/{{name}}.cr.ecr +++ b/src/amber/cli/templates/auth/src/models/{{name}}.cr.ecr @@ -2,12 +2,12 @@ require "crypto/bcrypt/password" class <%= class_name %> < Granite::Base include Crypto - adapter <%= config.database %> - <%= "table_name #{table_name}" %> + connection <%= config.database %> + <%= "table #{table_name}" %> - primary id : Int64 + column id : Int64, primary: true <% @fields.reject{|f| f.hidden }.each do |field| -%> - field <%= field.name %> : <%= field.cr_type %> + column <%= field.name %> : <%= field.cr_type %> <% end -%> <% if config.database != "sqlite" -%> timestamps From 7f92a477360bc3ba2515cd5faa763cb796956b7d Mon Sep 17 00:00:00 2001 From: Dru Jensen Date: Wed, 7 Aug 2019 06:37:02 -0700 Subject: [PATCH 6/9] template fixes --- src/amber/cli/templates/app/config/database.cr.ecr | 2 +- src/amber/cli/templates/auth/src/models/{{name}}.cr.ecr | 2 +- src/amber/cli/templates/model/src/models/{{name}}.cr.ecr | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/amber/cli/templates/app/config/database.cr.ecr b/src/amber/cli/templates/app/config/database.cr.ecr index 3dc4c80b0..690947757 100644 --- a/src/amber/cli/templates/app/config/database.cr.ecr +++ b/src/amber/cli/templates/app/config/database.cr.ecr @@ -1,5 +1,5 @@ require "granite/adapter/<%= @database %>" -Granite::Connections << Granite::Adapter::<%= @database.capitalize %>.new({name: "<%= @database %>", url: Amber.settings.database_url}) +Granite::Connections << Granite::Adapter::<%= @database.capitalize %>.new(name: "<%= @database %>", url: Amber.settings.database_url) Granite.settings.logger = Amber.settings.logger.dup Granite.settings.logger.not_nil!.progname = "Granite" diff --git a/src/amber/cli/templates/auth/src/models/{{name}}.cr.ecr b/src/amber/cli/templates/auth/src/models/{{name}}.cr.ecr index 478afd39f..889eba557 100644 --- a/src/amber/cli/templates/auth/src/models/{{name}}.cr.ecr +++ b/src/amber/cli/templates/auth/src/models/{{name}}.cr.ecr @@ -7,7 +7,7 @@ class <%= class_name %> < Granite::Base column id : Int64, primary: true <% @fields.reject{|f| f.hidden }.each do |field| -%> - column <%= field.name %> : <%= field.cr_type %> + column <%= field.name %> : <%= field.cr_type %>? <% end -%> <% if config.database != "sqlite" -%> timestamps diff --git a/src/amber/cli/templates/model/src/models/{{name}}.cr.ecr b/src/amber/cli/templates/model/src/models/{{name}}.cr.ecr index 73111e541..4390a9946 100644 --- a/src/amber/cli/templates/model/src/models/{{name}}.cr.ecr +++ b/src/amber/cli/templates/model/src/models/{{name}}.cr.ecr @@ -7,7 +7,7 @@ class <%= class_name %> < Granite::Base column id : Int64, primary: true <% @fields.reject{|f| f.hidden || f.reference? }.each do |field| -%> - column <%= field.name %> : <%= field.cr_type %> + column <%= field.name %> : <%= field.cr_type %>? <% end -%> <% if config.database != "sqlite" -%> timestamps From 7501dadf8a4e83c0639b5135770fdb2f20298ec4 Mon Sep 17 00:00:00 2001 From: Dru Jensen Date: Wed, 7 Aug 2019 07:48:44 -0700 Subject: [PATCH 7/9] use compatible garnet-spec --- src/amber/cli/templates/app/shard.yml.ecr | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/amber/cli/templates/app/shard.yml.ecr b/src/amber/cli/templates/app/shard.yml.ecr index 664690b5d..ab38f1343 100644 --- a/src/amber/cli/templates/app/shard.yml.ecr +++ b/src/amber/cli/templates/app/shard.yml.ecr @@ -54,4 +54,4 @@ dependencies: development_dependencies: garnet_spec: github: amberframework/garnet-spec - version: ~> 0.2.1 + version: 0.2.1 From aa4504798cf04a38b8cfc0ed4458fae8aa207afd Mon Sep 17 00:00:00 2001 From: Dru Jensen Date: Wed, 7 Aug 2019 11:06:35 -0700 Subject: [PATCH 8/9] fix specs --- spec/amber/router/cookies_spec.cr | 2 +- spec/support/fixtures/cli_fixtures.cr | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/spec/amber/router/cookies_spec.cr b/spec/amber/router/cookies_spec.cr index 31a3b7bad..9ceb5437f 100644 --- a/spec/amber/router/cookies_spec.cr +++ b/spec/amber/router/cookies_spec.cr @@ -40,7 +40,7 @@ module Amber::Router cookies.set "that & guy", "foo & bar => baz" - cookie_header(cookies).should eq "that%20%26%20guy=foo%20%26%20bar%20%3D%3E%20baz; path=/" + cookie_header(cookies).should eq "that+%26+guy=foo+%26+bar+%3D%3E+baz; path=/" end it "sets the cookie with expiration" do diff --git a/spec/support/fixtures/cli_fixtures.cr b/spec/support/fixtures/cli_fixtures.cr index 7d84fe2c9..dbf61cfc9 100644 --- a/spec/support/fixtures/cli_fixtures.cr +++ b/spec/support/fixtures/cli_fixtures.cr @@ -62,10 +62,10 @@ module CLIFixtures belongs_to :user column id : Int64, primary: true - column title : String - column body : String - column published : Bool - column likes : Int32 + column title : String? + column body : String? + column published : Bool? + column likes : Int32? timestamps end From 0d1f4fad7656e9c4718973849f6a50201d1d1a13 Mon Sep 17 00:00:00 2001 From: Dru Jensen Date: Wed, 7 Aug 2019 11:08:27 -0700 Subject: [PATCH 9/9] update version in docker file --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index b0367a689..72c5c2523 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM crystallang/crystal:0.29.0 +FROM crystallang/crystal:0.30.0 # Install Dependencies ARG DEBIAN_FRONTEND=noninteractive