| @ -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 | |||||
| @ -0,0 +1,5 @@ | |||||
| /docs/ | |||||
| /lib/ | |||||
| /bin/ | |||||
| /.shards/ | |||||
| *.dwarf | |||||
| @ -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 | |||||
| @ -0,0 +1,21 @@ | |||||
| The MIT License (MIT) | |||||
| Copyright (c) 2021 Ludovic 'Archivist' Lagouardette <ludovic@nekoit.xyz> | |||||
| 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. | |||||
| @ -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 (<https://github.com/your-github-user/three-tier/fork>) | |||||
| 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 | |||||
| @ -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 | |||||
| @ -0,0 +1,17 @@ | |||||
| name: three-tier | |||||
| version: 0.1.0 | |||||
| authors: | |||||
| - Ludovic 'Archivist' Lagouardette <ludovic@nekoit.xyz> | |||||
| targets: | |||||
| three-tier: | |||||
| main: src/three-tier.cr | |||||
| dependencies: | |||||
| kemal: | |||||
| github: kemalcr/kemal | |||||
| crystal: 1.0.0 | |||||
| license: MIT | |||||
| @ -0,0 +1,2 @@ | |||||
| require "spec" | |||||
| require "../src/three-tier" | |||||
| @ -0,0 +1,9 @@ | |||||
| require "./spec_helper" | |||||
| describe Three::Tier do | |||||
| # TODO: Write tests | |||||
| it "works" do | |||||
| false.should eq(true) | |||||
| end | |||||
| end | |||||
| @ -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 | |||||
| @ -0,0 +1,10 @@ | |||||
| <!DOCTYPE html> | |||||
| <html> | |||||
| <head></head> | |||||
| <body> | |||||
| <div> <%= count %> </div> | |||||
| <form action="/"> | |||||
| <input type="submit" value="Go"> | |||||
| </form> | |||||
| </body> | |||||
| </html> | |||||
| @ -0,0 +1,11 @@ | |||||
| class Model | |||||
| @@value = 0; | |||||
| def self.get | |||||
| @@value; | |||||
| end | |||||
| def self.set(v) | |||||
| @@value = v; | |||||
| end | |||||
| end | |||||
| @ -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 | |||||
| @ -0,0 +1,8 @@ | |||||
| require "kemal" | |||||
| require "./app/*" | |||||
| module Three::Tier | |||||
| VERSION = "0.1.0" | |||||
| end | |||||
| Kemal.run | |||||