commit 23d718cfe9325725a1138cc641dbf4350a18c9c7 Author: Ludovic 'Archivist' Lagouardette Date: Wed Nov 17 08:49:13 2021 +0100 3 tiers diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..163eb75 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,9 @@ +root = true + +[*.cr] +charset = utf-8 +end_of_line = lf +insert_final_newline = true +indent_style = space +indent_size = 2 +trim_trailing_whitespace = true diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0bb75ea --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +/docs/ +/lib/ +/bin/ +/.shards/ +*.dwarf diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..765f0e9 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,6 @@ +language: crystal + +# Uncomment the following if you'd like Travis to run specs and check code formatting +# script: +# - crystal spec +# - crystal tool format --check diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..1f3fb3e --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2021 Ludovic 'Archivist' Lagouardette + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..1cc2ce1 --- /dev/null +++ b/README.md @@ -0,0 +1,27 @@ +# three-tier + +TODO: Write a description here + +## Installation + +TODO: Write installation instructions here + +## Usage + +TODO: Write usage instructions here + +## Development + +TODO: Write development instructions here + +## Contributing + +1. Fork it () +2. Create your feature branch (`git checkout -b my-new-feature`) +3. Commit your changes (`git commit -am 'Add some feature'`) +4. Push to the branch (`git push origin my-new-feature`) +5. Create a new Pull Request + +## Contributors + +- [Ludovic 'Archivist' Lagouardette](https://github.com/your-github-user) - creator and maintainer diff --git a/shard.lock b/shard.lock new file mode 100644 index 0000000..499152c --- /dev/null +++ b/shard.lock @@ -0,0 +1,22 @@ +version: 2.0 +shards: + backtracer: + git: https://github.com/sija/backtracer.cr.git + version: 1.2.1 + + exception_page: + git: https://github.com/crystal-loot/exception_page.git + version: 0.2.0 + + kemal: + git: https://github.com/kemalcr/kemal.git + version: 1.1.0 + + kilt: + git: https://github.com/jeromegn/kilt.git + version: 0.6.1 + + radix: + git: https://github.com/luislavena/radix.git + version: 0.4.1 + diff --git a/shard.yml b/shard.yml new file mode 100644 index 0000000..1165326 --- /dev/null +++ b/shard.yml @@ -0,0 +1,17 @@ +name: three-tier +version: 0.1.0 + +authors: + - Ludovic 'Archivist' Lagouardette + +targets: + three-tier: + main: src/three-tier.cr + +dependencies: + kemal: + github: kemalcr/kemal + +crystal: 1.0.0 + +license: MIT diff --git a/spec/spec_helper.cr b/spec/spec_helper.cr new file mode 100644 index 0000000..ed7ed65 --- /dev/null +++ b/spec/spec_helper.cr @@ -0,0 +1,2 @@ +require "spec" +require "../src/three-tier" diff --git a/spec/three-tier_spec.cr b/spec/three-tier_spec.cr new file mode 100644 index 0000000..379b50a --- /dev/null +++ b/spec/three-tier_spec.cr @@ -0,0 +1,9 @@ +require "./spec_helper" + +describe Three::Tier do + # TODO: Write tests + + it "works" do + false.should eq(true) + end +end diff --git a/src/app/business.cr b/src/app/business.cr new file mode 100644 index 0000000..bfd66f2 --- /dev/null +++ b/src/app/business.cr @@ -0,0 +1,9 @@ +require "./model.cr" + +class Business + def self.fetch_add(v = 1) + v += Model.get; + Model.set v; + return v; + end +end \ No newline at end of file diff --git a/src/app/button.ecr b/src/app/button.ecr new file mode 100644 index 0000000..29f453d --- /dev/null +++ b/src/app/button.ecr @@ -0,0 +1,10 @@ + + + + +
<%= count %>
+
+ +
+ + diff --git a/src/app/model.cr b/src/app/model.cr new file mode 100644 index 0000000..eecd6e8 --- /dev/null +++ b/src/app/model.cr @@ -0,0 +1,11 @@ +class Model + @@value = 0; + + def self.get + @@value; + end + + def self.set(v) + @@value = v; + end +end \ No newline at end of file diff --git a/src/app/view.cr b/src/app/view.cr new file mode 100644 index 0000000..f7b0558 --- /dev/null +++ b/src/app/view.cr @@ -0,0 +1,12 @@ +require "kemal" +require "./business.cr" + +get "/" do + count = Business.fetch_add(0); + render "./src/app/button.ecr"; +end + +post "/" do + count = Business.fetch_add(1); + render "./src/app/button.ecr"; +end diff --git a/src/three-tier.cr b/src/three-tier.cr new file mode 100644 index 0000000..5e10c5f --- /dev/null +++ b/src/three-tier.cr @@ -0,0 +1,8 @@ +require "kemal" +require "./app/*" + +module Three::Tier + VERSION = "0.1.0" +end + +Kemal.run \ No newline at end of file