makanai 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +16 -6
- data/CHANGELOG.md +6 -0
- data/Gemfile.lock +9 -7
- data/README.md +27 -3
- data/Rakefile +2 -0
- data/bin/console +4 -3
- data/exe/makanai +2 -3
- data/lib/makanai/application.rb +9 -3
- data/lib/makanai/database.rb +1 -3
- data/lib/makanai/dsl.rb +2 -2
- data/lib/makanai/migration.rb +1 -1
- data/lib/makanai/settings.rb +33 -4
- data/lib/makanai/version.rb +3 -1
- data/lib/makanai.rb +3 -1
- data/makanai.gemspec +1 -1
- metadata +10 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c35e25ab94dce7eb78c2e81cd7d1086ba736c81d99ba81c17ae85cfaa88dcd25
|
4
|
+
data.tar.gz: fa52e627e552253a97ce59065ab456406e75901667c093fb7c160ac243bb5a35
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8b2661b6a8e5df30a371e60ad9123b3814df7db48f02c91a2eae1e3e2acb3961b711aa5880aa70c103b0d78345ffbd9e4b097196e519e12821dd81951c554552
|
7
|
+
data.tar.gz: 0b91f2e2a8a3a03406506d8323ff05dccd22be62bf1d5ddb254b32771b8f99488094457bde8d5dd63367d73ac325d7d41a0e0d930ba4e5d7da75127e93118ab2
|
data/.rubocop.yml
CHANGED
@@ -2,12 +2,7 @@ AllCops:
|
|
2
2
|
TargetRubyVersion: 2.7.0
|
3
3
|
Exclude:
|
4
4
|
- './makanai.gemspec'
|
5
|
-
|
6
|
-
Style/Documentation:
|
7
|
-
Enabled: false
|
8
|
-
|
9
|
-
Metrics/LineLength:
|
10
|
-
Max: 90
|
5
|
+
- 'vendor/**/*'
|
11
6
|
|
12
7
|
Metrics/ClassLength:
|
13
8
|
Max: 120
|
@@ -17,8 +12,23 @@ Metrics/BlockLength:
|
|
17
12
|
- 'spec/**/*'
|
18
13
|
- 'lib/makanai/rake_tasks.rb'
|
19
14
|
|
15
|
+
Style/Documentation:
|
16
|
+
Enabled: false
|
17
|
+
|
20
18
|
Style/ParallelAssignment:
|
21
19
|
Enabled: false
|
22
20
|
|
21
|
+
Style/HashEachMethods:
|
22
|
+
Enabled: true
|
23
|
+
|
24
|
+
Style/HashTransformKeys:
|
25
|
+
Enabled: true
|
26
|
+
|
27
|
+
Style/HashTransformValues:
|
28
|
+
Enabled: true
|
29
|
+
|
30
|
+
Layout/LineLength:
|
31
|
+
Max: 90
|
32
|
+
|
23
33
|
Layout/EmptyLineAfterGuardClause:
|
24
34
|
Enabled: false
|
data/CHANGELOG.md
CHANGED
@@ -13,3 +13,9 @@
|
|
13
13
|
* :sparkles: add `Makanai::Model#first`.
|
14
14
|
execute `SELECT * FROM table_name ORDER BY prymary_key asc limit 1` and return record object.
|
15
15
|
https://github.com/Madogiwa0124/makanai/commit/8949796bf7428f5e2d854041b35397ef4d442ee6
|
16
|
+
|
17
|
+
## :gift: 2020/02/22 `v0.1.2` released.
|
18
|
+
* :sparkles: use config object by Makanai::Settings for replaceable app config.
|
19
|
+
Changed the setting so that it is retained by the Class variable, and made it configurable.
|
20
|
+
The big advantage is that you can use any web server(ex. puma) except WEBrick.
|
21
|
+
https://github.com/Madogiwa0124/makanai/pull/18/commits/e6ea10e596c685ef77c042fa1e8f0294c85166f2
|
data/Gemfile.lock
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
makanai (0.1.
|
5
|
-
rack (
|
4
|
+
makanai (0.1.2)
|
5
|
+
rack (>= 2.0.7, < 2.3.0)
|
6
6
|
rake (>= 10, < 14)
|
7
7
|
sqlite3 (~> 1.4.1)
|
8
8
|
|
@@ -13,11 +13,12 @@ GEM
|
|
13
13
|
diff-lcs (1.3)
|
14
14
|
jaro_winkler (1.5.4)
|
15
15
|
parallel (1.19.1)
|
16
|
-
parser (2.7.0.
|
16
|
+
parser (2.7.0.2)
|
17
17
|
ast (~> 2.4.0)
|
18
|
-
rack (2.
|
18
|
+
rack (2.2.2)
|
19
19
|
rainbow (3.0.0)
|
20
20
|
rake (13.0.1)
|
21
|
+
rexml (3.2.4)
|
21
22
|
rspec (3.9.0)
|
22
23
|
rspec-core (~> 3.9.0)
|
23
24
|
rspec-expectations (~> 3.9.0)
|
@@ -31,16 +32,17 @@ GEM
|
|
31
32
|
diff-lcs (>= 1.2.0, < 2.0)
|
32
33
|
rspec-support (~> 3.9.0)
|
33
34
|
rspec-support (3.9.0)
|
34
|
-
rubocop (0.
|
35
|
+
rubocop (0.80.0)
|
35
36
|
jaro_winkler (~> 1.5.1)
|
36
37
|
parallel (~> 1.10)
|
37
|
-
parser (>= 2.
|
38
|
+
parser (>= 2.7.0.1)
|
38
39
|
rainbow (>= 2.2.2, < 4.0)
|
40
|
+
rexml
|
39
41
|
ruby-progressbar (~> 1.7)
|
40
42
|
unicode-display_width (>= 1.4.0, < 1.7)
|
41
43
|
ruby-progressbar (1.10.1)
|
42
44
|
sqlite3 (1.4.2)
|
43
|
-
unicode-display_width (1.6.
|
45
|
+
unicode-display_width (1.6.1)
|
44
46
|
|
45
47
|
PLATFORMS
|
46
48
|
ruby
|
data/README.md
CHANGED
@@ -76,10 +76,34 @@ root ┬ app.rb # main application file
|
|
76
76
|
└ db # use Sqlite3 dabase file
|
77
77
|
```
|
78
78
|
|
79
|
+
## override application config
|
80
|
+
|
81
|
+
You can overwrite the settings (`Makanai :: Settings`) with the created ruby file(ex. app.rb).
|
82
|
+
|
83
|
+
ex) When overriding rack app settings.
|
84
|
+
|
85
|
+
``` ruby
|
86
|
+
Makanai::Settings.rack_app_config = { handler: :webrick, host: '0.0.0.0', port: '8081' }
|
87
|
+
```
|
88
|
+
|
89
|
+
### use other application server
|
90
|
+
|
91
|
+
Add rack web server(ex. puma) gem in your Gemfile.
|
92
|
+
|
93
|
+
``` ruby
|
94
|
+
gem 'puma'
|
95
|
+
```
|
96
|
+
|
97
|
+
Overwrite the `handler` in `rack_app_config` with the created ruby file(ex. app.rb).
|
98
|
+
|
99
|
+
``` ruby
|
100
|
+
Makanai::Settings.rack_app_config = { handler: :puma, host: '0.0.0.0', port: '8080' }
|
101
|
+
```
|
102
|
+
|
79
103
|
## routing
|
80
104
|
|
81
105
|
``` ruby
|
82
|
-
|
106
|
+
require 'makanai/main'
|
83
107
|
|
84
108
|
# root path
|
85
109
|
router.get '/' do
|
@@ -122,7 +146,7 @@ end
|
|
122
146
|
Define instance variables used in the routing view.
|
123
147
|
|
124
148
|
``` ruby
|
125
|
-
|
149
|
+
require 'makanai/main'
|
126
150
|
|
127
151
|
router.get '/index' do
|
128
152
|
@title = 'Makanai title'
|
@@ -178,7 +202,7 @@ INFO: finished migration all
|
|
178
202
|
It can be used by creating a class that inherits `Makanai::Model`.
|
179
203
|
|
180
204
|
``` ruby
|
181
|
-
|
205
|
+
require 'makanai/model'
|
182
206
|
|
183
207
|
class Resource < Makanai::Model
|
184
208
|
# target table when executing sql.
|
data/Rakefile
CHANGED
data/bin/console
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
+
# frozen_string_literal: true
|
2
3
|
|
3
|
-
require
|
4
|
-
require
|
4
|
+
require 'bundler/setup'
|
5
|
+
require 'makanai'
|
5
6
|
|
6
7
|
# You can add fixtures and/or initialization code here to make experimenting
|
7
8
|
# with your gem easier. You can also use a different console, if you like.
|
@@ -10,5 +11,5 @@ require "makanai"
|
|
10
11
|
# require "pry"
|
11
12
|
# Pry.start
|
12
13
|
|
13
|
-
require
|
14
|
+
require 'irb'
|
14
15
|
IRB.start(__FILE__)
|
data/exe/makanai
CHANGED
data/lib/makanai/application.rb
CHANGED
@@ -3,6 +3,7 @@
|
|
3
3
|
require 'json'
|
4
4
|
require 'uri'
|
5
5
|
require 'rack'
|
6
|
+
require_relative './settings.rb'
|
6
7
|
require_relative './request.rb'
|
7
8
|
require_relative './response.rb'
|
8
9
|
require_relative './router.rb'
|
@@ -11,13 +12,18 @@ module Makanai
|
|
11
12
|
class Application
|
12
13
|
def initialize(router:)
|
13
14
|
@router = router
|
14
|
-
@
|
15
|
+
@config = Settings
|
15
16
|
end
|
16
17
|
|
17
|
-
attr_reader :router, :
|
18
|
+
attr_reader :router, :config, :request, :response
|
18
19
|
|
19
20
|
def run!
|
20
|
-
|
21
|
+
app_config = config.rack_app_config
|
22
|
+
handler = Rack::Handler.get(app_config[:handler])
|
23
|
+
handler.run(self, { Host: app_config[:host], Port: app_config[:port] })
|
24
|
+
rescue Interrupt
|
25
|
+
handler.shutdown
|
26
|
+
puts '==== Goodbye! :) ===='
|
21
27
|
end
|
22
28
|
|
23
29
|
def call(env)
|
data/lib/makanai/database.rb
CHANGED
@@ -5,9 +5,7 @@ require_relative './settings.rb'
|
|
5
5
|
|
6
6
|
module Makanai
|
7
7
|
class Database
|
8
|
-
|
9
|
-
|
10
|
-
def initialize(path: DATABASE_PATH)
|
8
|
+
def initialize(path: Settings.database_full_path)
|
11
9
|
@handler = SQLite3::Database
|
12
10
|
@db = handler.new path
|
13
11
|
db.tap { |db| db.results_as_hash = true }
|
data/lib/makanai/dsl.rb
CHANGED
@@ -5,8 +5,8 @@ require_relative './response.rb'
|
|
5
5
|
require_relative './settings.rb'
|
6
6
|
|
7
7
|
def render(path)
|
8
|
-
template_root_path =
|
9
|
-
full_path = "#{
|
8
|
+
template_root_path = Makanai::Settings.template_full_path
|
9
|
+
full_path = File.join(template_root_path, "#{path}.erb")
|
10
10
|
Makanai::Template.new(path: full_path).render
|
11
11
|
end
|
12
12
|
|
data/lib/makanai/migration.rb
CHANGED
data/lib/makanai/settings.rb
CHANGED
@@ -1,10 +1,39 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'rack'
|
4
|
+
|
3
5
|
module Makanai
|
4
6
|
class Settings
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
7
|
+
DEFAULT_APP_ROOT_PATH = Dir.pwd
|
8
|
+
DEFAULT_DATABASE_PATH = '/db/makanai.db'
|
9
|
+
DEFAULT_TEMPLATE_ROOT_PATH = '/views/'
|
10
|
+
DEFAULT_MIGRATION_ROOT_PATH = '/migration/'
|
11
|
+
DEFAULT_RACK_APP_CONFIG = { handler: :webrick, host: '0.0.0.0', port: '8080' }.freeze
|
12
|
+
|
13
|
+
@app_root_path = DEFAULT_APP_ROOT_PATH
|
14
|
+
@database_path = DEFAULT_DATABASE_PATH
|
15
|
+
@template_root_path = DEFAULT_TEMPLATE_ROOT_PATH
|
16
|
+
@migration_root_path = DEFAULT_MIGRATION_ROOT_PATH
|
17
|
+
@rack_app_config = DEFAULT_RACK_APP_CONFIG
|
18
|
+
|
19
|
+
class << self
|
20
|
+
attr_accessor :app_root_path,
|
21
|
+
:database_path,
|
22
|
+
:template_root_path,
|
23
|
+
:migration_root_path,
|
24
|
+
:rack_app_config
|
25
|
+
|
26
|
+
def database_full_path
|
27
|
+
File.join(app_root_path, database_path)
|
28
|
+
end
|
29
|
+
|
30
|
+
def template_full_path
|
31
|
+
File.join(app_root_path, template_root_path)
|
32
|
+
end
|
33
|
+
|
34
|
+
def migration_full_path
|
35
|
+
File.join(app_root_path, migration_root_path)
|
36
|
+
end
|
37
|
+
end
|
9
38
|
end
|
10
39
|
end
|
data/lib/makanai/version.rb
CHANGED
data/lib/makanai.rb
CHANGED
data/makanai.gemspec
CHANGED
@@ -26,7 +26,7 @@ Gem::Specification.new do |spec|
|
|
26
26
|
spec.require_paths = ["lib"]
|
27
27
|
|
28
28
|
spec.add_dependency "rake", ">= 10", "< 14"
|
29
|
-
spec.add_dependency "rack", "
|
29
|
+
spec.add_dependency "rack", ">= 2.0.7", "< 2.3.0"
|
30
30
|
spec.add_dependency "sqlite3", "~> 1.4.1"
|
31
31
|
spec.add_development_dependency "rubocop", "~> 0.74"
|
32
32
|
spec.add_development_dependency "bundler", "~> 2.0"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: makanai
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Madogiwa
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-02-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -34,16 +34,22 @@ dependencies:
|
|
34
34
|
name: rack
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
36
36
|
requirements:
|
37
|
-
- - "
|
37
|
+
- - ">="
|
38
38
|
- !ruby/object:Gem::Version
|
39
39
|
version: 2.0.7
|
40
|
+
- - "<"
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: 2.3.0
|
40
43
|
type: :runtime
|
41
44
|
prerelease: false
|
42
45
|
version_requirements: !ruby/object:Gem::Requirement
|
43
46
|
requirements:
|
44
|
-
- - "
|
47
|
+
- - ">="
|
45
48
|
- !ruby/object:Gem::Version
|
46
49
|
version: 2.0.7
|
50
|
+
- - "<"
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: 2.3.0
|
47
53
|
- !ruby/object:Gem::Dependency
|
48
54
|
name: sqlite3
|
49
55
|
requirement: !ruby/object:Gem::Requirement
|