kanji-web 0.2.2 → 0.3.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 23c6fbf06d007d55da99eb86d06bfe74651debcf
4
- data.tar.gz: 8c3e432adbcc7362093c06e18be541bdd30132d6
3
+ metadata.gz: 512e7dcf1cdfb757204cf5b9755a12bdb62b247e
4
+ data.tar.gz: 742c4dbffa9d83b5ddaef6559f3d0182a51996bb
5
5
  SHA512:
6
- metadata.gz: 8cf7309a75133d5bc34b2669e856eeb5972cd63ca1a7491a21ed185e78893a698c0bde2255f0cdfd4e3dea4b1f68653ec54899767c92745fc45c32711b9286fe
7
- data.tar.gz: 4af6da9436be590e459140a429447cb526851d4c8f858ea18ff86e0fb95dbb4c5515db062a22332c8e75bb1a4fdbca04fea672427f963d9c296eb840fb712146
6
+ metadata.gz: 3ce621e3bc1dfabff3e3ee83fca6b0c234707677f0c86efc0ef9337f2d328cf1b9c2c597cb374bff9a178244fe02c9f852c3221f055fdb365f814e297d737b6f
7
+ data.tar.gz: d2e49e0cc713edb8621928ad776cb6f5936a93afa515db045121e3c6fef90005a0c54d2d7a27e481ddff1dea14d902e62081debe347006f45388e781939c0337
@@ -17,8 +17,11 @@ module Kanji
17
17
  map "g" => "generate"
18
18
 
19
19
  desc "server", "Start the application server"
20
+ method_option :port, default: 3300, aliases: "p"
20
21
  def server
21
- `shotgun config.ru`
22
+ require "kanji/cli/server"
23
+ require_relative "#{Dir.pwd}/system/boot"
24
+ CLI::Server.start(options)
22
25
  end
23
26
 
24
27
  map "s" => "server"
@@ -0,0 +1,32 @@
1
+ require "rerun"
2
+ require "pathname"
3
+ require "dry/core/inflector"
4
+
5
+ module Kanji
6
+ class CLI < Thor
7
+ class Server
8
+ def self.start(options = {})
9
+ Rerun::Runner.keep_running(
10
+ "thin -R config.ru -a 127.0.0.1 -p #{options["port"]} -D start",
11
+ default_options
12
+ )
13
+ end
14
+
15
+ def self.default_options
16
+ {
17
+ pattern: "**/*.rb",
18
+ signal: "TERM",
19
+ notify: false,
20
+ name: app_name,
21
+ ignore: [],
22
+ dir: ["app", "system"],
23
+ cmd: "rackup config.ru"
24
+ }
25
+ end
26
+
27
+ def self.app_name
28
+ Dry::Core::Inflector.camelize(Pathname.getwd.basename.to_s)
29
+ end
30
+ end
31
+ end
32
+ end
@@ -1,5 +1,4 @@
1
1
  require "dry/system/container"
2
- require "kanji/graph/container"
3
2
 
4
3
  module Kanji
5
4
  class Container < Dry::System::Container
@@ -49,7 +49,7 @@ end
49
49
  Now open up `app/schema.rb` and uncomment the lines that add the
50
50
  query and mutation types.
51
51
 
52
- Start your server: `kanji s` and visit `localhost:9393/graphiql` and
52
+ Start your server: `kanji s` and visit `localhost:3300/graphiql` and
53
53
  start exploring!
54
54
  TEXT
55
55
 
@@ -1,6 +1,7 @@
1
1
  require "graphql"
2
2
  require "dry-initializer"
3
3
  require "kanji/types"
4
+ require "kanji/type/attribute"
4
5
  require "kanji/graph/coerce_type"
5
6
 
6
7
  module Kanji
@@ -8,11 +9,11 @@ module Kanji
8
9
  class RegisterMutation
9
10
  extend Dry::Initializer
10
11
 
11
- option :return_type, Types::Class
12
- option :attributes, Types::Strict::Array.member(Type::Attribute)
13
- option :name, Types::Strict::String
14
- option :description, Types::Strict::String, optional: true
15
- option :resolve, Types::Callable
12
+ option :return_type, Kanji::Types::Class
13
+ option :attributes, Kanji::Types::Strict::Array.member(Kanji::Type::Attribute)
14
+ option :name, Kanji::Types::Strict::String
15
+ option :description, Kanji::Types::Strict::String, optional: true
16
+ option :resolve, Kanji::Types::Callable
16
17
 
17
18
  def call
18
19
  return_type = self.return_type
@@ -9,9 +9,9 @@ module Kanji
9
9
  class RegisterObject
10
10
  extend Dry::Initializer
11
11
 
12
- option :attributes, Types::Strict::Array.member(Type::Attribute)
13
- option :name, Types::Strict::String
14
- option :description, Types::Strict::String, optional: true
12
+ option :attributes, Kanji::Types::Strict::Array.member(Kanji::Type::Attribute)
13
+ option :name, Kanji::Types::Strict::String
14
+ option :description, Kanji::Types::Strict::String, optional: true
15
15
 
16
16
  def call
17
17
  name = "#{self.name}Type"
@@ -1 +1,2 @@
1
1
  DATABASE_URL='postgres://localhost/<%= config[:underscored_project_name] %>_test'
2
+ ENV='test'
@@ -1 +1,2 @@
1
1
  DATABASE_URL='postgres://localhost/<%= config[:underscored_project_name] %>_development'
2
+ ENV='development'
@@ -1,9 +1,7 @@
1
+ require "kanji/graph/container"
2
+
1
3
  <%= config[:camel_cased_app_name] %>::Container.namespace :graph do |container|
2
4
  container.finalize :graph do
3
- init do
4
- require "kanji/graph/container"
5
- end
6
-
7
5
  start do
8
6
  container.register :query, Kanji::Graph::Container[:query]
9
7
  end
@@ -1,9 +1,11 @@
1
- <%= config[:camel_cased_app_name] %>::Container.finalize :monitor do |_container|
2
- init do
3
- require "dry/monitor"
4
- end
1
+ require "dry/monitor"
5
2
 
3
+ <%= config[:camel_cased_app_name] %>::Container.finalize :monitor do |_container|
6
4
  start do
7
5
  Dry::Monitor::SQL::Logger.new(logger).subscribe(notifications)
6
+
7
+ if settings[:env] == "development"
8
+ Dry::Monitor::SQL::Logger.new(stdout_logger).subscribe(notifications)
9
+ end
8
10
  end
9
11
  end
@@ -1,10 +1,10 @@
1
+ require "sequel"
2
+ require "rom"
3
+ require "rom/sql"
4
+
1
5
  <%= config[:camel_cased_app_name] %>::Container.namespace :persistence do |container|
2
6
  container.finalize :rom do
3
7
  init do
4
- require "sequel"
5
- require "rom"
6
- require "rom/sql"
7
-
8
8
  use :settings
9
9
  use :monitor
10
10
 
@@ -1,8 +1,6 @@
1
- <%= config[:camel_cased_app_name] %>::Container.finalize :settings do |container|
2
- init do
3
- require "<%= config[:underscored_project_name] %>/settings"
4
- end
1
+ require "<%= config[:underscored_project_name] %>/settings"
5
2
 
3
+ <%= config[:camel_cased_app_name] %>::Container.finalize :settings do |container|
6
4
  start do
7
5
  settings = <%= config[:camel_cased_app_name] %>::Settings.load(container.config.root, container.config.env)
8
6
  container.register :settings, settings
@@ -1,7 +1,7 @@
1
- require "dry/web/container"
1
+ require "kanji/web_container"
2
2
 
3
3
  module <%= config[:camel_cased_app_name] %>
4
- class Container < Dry::Web::Container
4
+ class Container < Kanji::WebContainer
5
5
  configure do
6
6
  config.name = :<%= config[:underscored_project_name] %>
7
7
  config.listeners = true
@@ -4,5 +4,6 @@ require "kanji/types"
4
4
  module <%= config[:camel_cased_app_name] %>
5
5
  class Settings < Dry::Web::Settings
6
6
  setting :database_url, Kanji::Types::Strict::String.constrained(filled: true)
7
+ setting :env, Kanji::Types::Strict::String.default("development")
7
8
  end
8
9
  end
@@ -1,3 +1,3 @@
1
1
  module Kanji
2
- Version = "0.2.2".freeze
2
+ Version = "0.3.0".freeze
3
3
  end
@@ -0,0 +1,24 @@
1
+ require "dry/web/container"
2
+
3
+ module Kanji
4
+ class WebContainer < Dry::Web::Container
5
+ setting :stdout_logger
6
+
7
+ class << self
8
+ def configure(&block)
9
+ super.configure_stdout_logger
10
+
11
+ return unless self[:settings][:env] == "development"
12
+ rack_logger = Dry::Monitor::Rack::Logger.new(self[:stdout_logger])
13
+ rack_logger.attach(self[:rack_monitor])
14
+ end
15
+
16
+ def configure_stdout_logger
17
+ config.stdout_logger = Dry::Monitor::Logger.new($stdout)
18
+ config.stdout_logger.level = Dry::Monitor::Logger::DEBUG
19
+ register(:stdout_logger, config.stdout_logger)
20
+ self
21
+ end
22
+ end
23
+ end
24
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kanji-web
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Darin Haener
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-09-11 00:00:00.000000000 Z
11
+ date: 2017-09-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -206,6 +206,20 @@ dependencies:
206
206
  - - "~>"
207
207
  - !ruby/object:Gem::Version
208
208
  version: '12.0'
209
+ - !ruby/object:Gem::Dependency
210
+ name: rerun
211
+ requirement: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - "~>"
214
+ - !ruby/object:Gem::Version
215
+ version: '0.11'
216
+ type: :runtime
217
+ prerelease: false
218
+ version_requirements: !ruby/object:Gem::Requirement
219
+ requirements:
220
+ - - "~>"
221
+ - !ruby/object:Gem::Version
222
+ version: '0.11'
209
223
  - !ruby/object:Gem::Dependency
210
224
  name: roda
211
225
  requirement: !ruby/object:Gem::Requirement
@@ -276,20 +290,6 @@ dependencies:
276
290
  - - "~>"
277
291
  - !ruby/object:Gem::Version
278
292
  version: '1.3'
279
- - !ruby/object:Gem::Dependency
280
- name: shotgun
281
- requirement: !ruby/object:Gem::Requirement
282
- requirements:
283
- - - "~>"
284
- - !ruby/object:Gem::Version
285
- version: '0.9'
286
- type: :runtime
287
- prerelease: false
288
- version_requirements: !ruby/object:Gem::Requirement
289
- requirements:
290
- - - "~>"
291
- - !ruby/object:Gem::Version
292
- version: '0.9'
293
293
  - !ruby/object:Gem::Dependency
294
294
  name: thin
295
295
  requirement: !ruby/object:Gem::Requirement
@@ -473,6 +473,7 @@ files:
473
473
  - lib/kanji/application.rb
474
474
  - lib/kanji/cli.rb
475
475
  - lib/kanji/cli/generate.rb
476
+ - lib/kanji/cli/server.rb
476
477
  - lib/kanji/container.rb
477
478
  - lib/kanji/errors.rb
478
479
  - lib/kanji/generate.rb
@@ -539,6 +540,7 @@ files:
539
540
  - lib/kanji/types/callable.rb
540
541
  - lib/kanji/types/type_interface.rb
541
542
  - lib/kanji/version.rb
543
+ - lib/kanji/web_container.rb
542
544
  homepage: https://github.com/dphaener/kanji
543
545
  licenses:
544
546
  - MIT