kanji-web 0.2.2 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
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