grate 0.1.0 → 0.1.1

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
  SHA256:
3
- metadata.gz: 28c2c1bea030e41a2d31403b2b04ba9de140eb6f52c030ffa022beef9d9c50ce
4
- data.tar.gz: 222cffb32ece9b10dd0af67cc276ac164b5fb1d5e819cb936efbe6ddfe80e52e
3
+ metadata.gz: 4a70268c20f6bf31cde24253f43e02b3f614866775ce0c68a2a3b95d529a1390
4
+ data.tar.gz: d751aa523f340cf9f093a2aad4c6a2978742b4c6d3aa72b089546b9c6d88f2fb
5
5
  SHA512:
6
- metadata.gz: 6b93863c3f53e5c352d112fe85094346ee6e57cdd21f5458d15939c48f3703782dfa2d19f048a8088eae20fba2a8fbc911627425bb9ff7a26878b7a1055b8df9
7
- data.tar.gz: 38745cd507af1160354a3c0a7b4c8ccdbfea6656f07a1a6a2561c754e8e4e794e399363f77977f48c6b032b4a1b60ffbf3072e508fd8d1e689562545f01256c0
6
+ metadata.gz: 62f486ccb3e873e9e70abf49f44a1a2ec12a1c852e854afdd56c8c7c861540567e8fb6ff96242ca5f01b92c1d171f0fb589fd8b1985cb33ea0336ba848e5262d
7
+ data.tar.gz: d0caecb988cc386730cdd76bcdd6f4d79307eee636bf5e65c61b30013cc0b2be1d945fd830be046b5485476742b4c93bd12e44225b5134a320a4f3cbf9d66a8f
data/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # Grate
2
2
 
3
+ > It'll be grate
4
+
3
5
  Grate is a GraphQL framework inspired by Rails. Grate aims to make
4
6
  writing GraphQL APIs as simple and consistent as possible. Therefore,
5
7
  Grate applies the principles of least surprise and developer happiness.
data/ROADMAP.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Roadmap
2
2
 
3
- - Convert to Ruby gem
3
+ - ~~Convert to Ruby gem~~
4
4
  - Add generators for new model, type or controller
5
5
  - Add CLI helpers (`grate queries`)
6
6
  - Add mutation helpers
data/lib/grate/cli.rb CHANGED
@@ -1,8 +1,10 @@
1
1
  require 'thor'
2
2
  require_relative './new_project'
3
+ require_relative './server'
3
4
  module Grate
4
5
  class CLI < Thor
5
6
  register(Grate::NewProject, 'new', 'new NAME', 'Creates a new project')
7
+ register(Grate::Server, 'server', 'server', 'Runs the grate server')
6
8
  end
7
9
  end
8
10
 
@@ -1,4 +1,5 @@
1
1
  require 'find'
2
+ require 'active_support/inflector'
2
3
  module Grate
3
4
  class NewProject < Thor::Group
4
5
  include Thor::Actions
@@ -15,6 +16,8 @@ module Grate
15
16
  end
16
17
 
17
18
  def create_files
19
+ @camel_name = classify(name)
20
+ @snake_name = snake_case(name)
18
21
  templates_dir = File.join(__dir__, "..", "..", 'templates')
19
22
  Find.find(templates_dir) do |file|
20
23
  case File.extname(file)
@@ -33,6 +36,12 @@ module Grate
33
36
  path.gsub(/.*templates\//, "")
34
37
  end
35
38
 
39
+ def snake_case(name)
40
+ name.gsub("_", "-").underscore
41
+ end
42
+ def classify(name)
43
+ name.gsub("-", "_").camelize
44
+ end
36
45
  end
37
46
  end
38
47
 
@@ -0,0 +1,9 @@
1
+ require 'pathname'
2
+ module Grate
3
+ class Server < Thor::Group
4
+
5
+ def run_server
6
+ `rackup` if FileTest.exist?(File.join(Dir.pwd, 'config.ru'))
7
+ end
8
+ end
9
+ end
data/lib/grate/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Grate
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
@@ -1,5 +1,5 @@
1
1
  development:
2
- database: <%= "#{name}_database" %>
2
+ database: <%= "#{@snake_name}_database" %>
3
3
  username: nicholas
4
4
  host: localhost
5
5
  password:
@@ -17,7 +17,7 @@ require_relative './app/controllers/application_controller.rb'
17
17
  require_relative './app/schema'
18
18
 
19
19
 
20
- class <%= name.capitalize %>Application
20
+ class <%= @camel_name %>Application
21
21
  def call(env)
22
22
  req = Rack::Request.new(env)
23
23
  params = JSON.parse(req.body.read)
@@ -26,4 +26,4 @@ class <%= name.capitalize %>Application
26
26
  end
27
27
  end
28
28
 
29
- run <%= name.capitalize %>Application.new
29
+ run <%= @camel_name %>Application.new
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: grate
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nicholas Yang
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-09-26 00:00:00.000000000 Z
11
+ date: 2018-09-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -191,6 +191,7 @@ files:
191
191
  - lib/grate/cli.rb
192
192
  - lib/grate/graphql_object.rb
193
193
  - lib/grate/new_project.rb
194
+ - lib/grate/server.rb
194
195
  - lib/grate/version.rb
195
196
  - templates/app/controllers/application_controller.rb.tt
196
197
  - templates/app/models/application_model.rb.tt