hecks-adapters-resource-server 0.1.16.rc → 0.2.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: 8013cd72bab28a4836d6aa257aef232871279b97
4
- data.tar.gz: 1a7cdf2feff56689ff3f601289621e95d0407da6
3
+ metadata.gz: 528dd6c903cd3519469532cc68b927276f49bf25
4
+ data.tar.gz: d2f5f0dd80b8dc6366a9209dfe4d61957a54bc17
5
5
  SHA512:
6
- metadata.gz: 8d82d43552d32551b93472c10e7d92b785749fb3106ea7006cd4ec5f2b9a08b70091b78eedbd9e8f305cc0e45b52739d4e0498b1085666bc6046671da5574c0d
7
- data.tar.gz: 1f1182d2a12dd6f9311242cb57947386fa1e825f9846bfb093c7dbe6035d744c0b35d4aae515c5c72618d8b80700137c25757bacf6e90f62b899db354a664abc
6
+ metadata.gz: 7ef2084e368fac97ec3210f2e58e854817f4f73699dd62fecf2759623b8a2bfd219a66541af4b4b51738551fd3e5ad49de4ef1baa7989beb0d065b571397eb19
7
+ data.tar.gz: 1c1e2b14fe7f5365969fe2671834c4462869b6fc1dee7be1a690f26e990dd88dd88fdb4abf6905f5cf5ee61b6057df9a27eaa3025b0ed18deddc984d7f720202
data/lib/cli/cli.rb ADDED
@@ -0,0 +1 @@
1
+ require_relative 'generate_resource_server'
@@ -0,0 +1,21 @@
1
+ module HecksAdapters
2
+ class ResourceServer
3
+ module CLI
4
+ class GenerateResourceServer < Thor::Group
5
+ include Thor::Actions
6
+
7
+ def self.source_root
8
+ File.dirname(__FILE__) + '/templates/'
9
+ end
10
+
11
+ def create_aggregate_folder
12
+ directory('resource_server', '.')
13
+ end
14
+
15
+ def domain
16
+ File.basename(Dir.getwd)
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,8 @@
1
+ require_relative "lib/<%= domain %>.rb"
2
+ require 'hecks'
3
+
4
+ run HecksAdapters::ResourceServer.new(
5
+ application_adapter: HecksApplication.new(
6
+ domain: <%= domain.camelize %>
7
+ )
8
+ )
@@ -3,51 +3,52 @@ require 'sinatra'
3
3
  require 'hecks-application'
4
4
  require 'json'
5
5
  require_relative 'methods'
6
+ require_relative 'cli/cli'
7
+
8
+ module HecksAdapters
9
+ # Wrap your domain in a cozy Resource Server. This file maps the routes to
10
+ # methods on your domain models
11
+ class ResourceServer < Sinatra::Base
12
+ configure do
13
+ set :raise_errors, true
14
+ set :show_exceptions, false
15
+ end
16
+
17
+ def initialize(app: nil, application_adapter:)
18
+ super(app)
19
+ @methods = Methods.new(application_adapter: application_adapter)
20
+ end
6
21
 
7
- module Hecks
8
- module Adapters
9
- class ResourceServer < Sinatra::Base
10
- configure do
11
- set :raise_errors, true
12
- set :show_exceptions, false
13
- end
14
-
15
- def initialize(app: nil, application_adapter:)
16
- super(app)
17
- @methods = Methods.new(application_adapter: application_adapter)
18
- end
19
-
20
- get '/:module_name/:id' do |module_name, id|
21
- command = methods.read.call(id: id, module_name: module_name)
22
- body command.result
23
- status command.status
24
- end
25
-
26
- post '/:module_name' do |module_name|
27
- command = methods.create.call(body: request.body, module_name: module_name)
28
- status command.status
29
- body command.result
30
- end
31
-
32
- put '/:module_name/:id' do |module_name, id|
33
- command = methods.update.call(
34
- id: id,
35
- body: request.body,
36
- module_name: module_name
37
- )
38
- status command.status
39
- body command.result
40
- end
41
-
42
- delete '/:module_name/:id' do |module_name, id|
43
- command = methods.delete.call(id: id, module_name: module_name)
44
- status command.status
45
- body command.result
46
- end
47
-
48
- private
49
-
50
- attr_reader :methods
22
+ get '/:module_name/:id' do |module_name, id|
23
+ command = methods.read.call(id: id, module_name: module_name)
24
+ body command.result
25
+ status command.status
51
26
  end
27
+
28
+ post '/:module_name' do |module_name|
29
+ command = methods.create.call(body: request.body, module_name: module_name)
30
+ status command.status
31
+ body command.result
32
+ end
33
+
34
+ put '/:module_name/:id' do |module_name, id|
35
+ command = methods.update.call(
36
+ id: id,
37
+ body: request.body,
38
+ module_name: module_name
39
+ )
40
+ status command.status
41
+ body command.result
42
+ end
43
+
44
+ delete '/:module_name/:id' do |module_name, id|
45
+ command = methods.delete.call(id: id, module_name: module_name)
46
+ status command.status
47
+ body command.result
48
+ end
49
+
50
+ private
51
+
52
+ attr_reader :methods
52
53
  end
53
54
  end
data/lib/methods.rb CHANGED
@@ -4,18 +4,17 @@ require_relative 'methods/read'
4
4
  require_relative 'methods/update'
5
5
  require_relative 'methods/delete'
6
6
 
7
- module Hecks
8
- module Adapters
9
- class ResourceServer
10
- class Methods
11
- attr_reader :create, :read, :update, :delete
7
+ module HecksAdapters
8
+ class ResourceServer
9
+ # CRUD methods for your domain
10
+ class Methods
11
+ attr_reader :create, :read, :update, :delete
12
12
 
13
- def initialize(application_adapter:)
14
- @create = Create.new(application_adapter: application_adapter)
15
- @read = Read.new(application_adapter: application_adapter)
16
- @update = Update.new(application_adapter: application_adapter)
17
- @delete = Delete.new(application_adapter: application_adapter)
18
- end
13
+ def initialize(application_adapter:)
14
+ @create = Create.new(application_adapter: application_adapter)
15
+ @read = Read.new(application_adapter: application_adapter)
16
+ @update = Update.new(application_adapter: application_adapter)
17
+ @delete = Delete.new(application_adapter: application_adapter)
19
18
  end
20
19
  end
21
20
  end
@@ -1,47 +1,46 @@
1
1
  # frozen_string_literal: true
2
- module Hecks
3
- module Adapters
4
- class ResourceServer < Sinatra::Base
5
- class Methods
6
- class Create
7
- attr_reader :result
8
-
9
- def initialize(application_adapter:)
10
- @application_adapter = application_adapter
11
- end
12
-
13
- def call(body:, module_name:)
14
- @body = body.read
15
- @module_name = module_name.to_sym
16
- run_command
17
- build_json
18
- self
19
- end
20
-
21
- def status
22
- return 500 if command_result.errors.count.positive?
23
- 200
24
- end
25
-
26
- private
27
-
28
- attr_reader :application_adapter, :body, :module_name, :command_result
29
-
30
- def build_json
31
- @result = JSON.generate(command_result.to_h)
32
- end
33
-
34
- def run_command
35
- @command_result = application_adapter.call(
36
- module_name: module_name,
37
- command_name: :create,
38
- args: params
39
- )
40
- end
41
-
42
- def params
43
- JSON.parse(body, symbolize_names: true)
44
- end
2
+ module HecksAdapters
3
+ class ResourceServer < Sinatra::Base
4
+ class Methods
5
+ # Create a resource
6
+ class Create
7
+ attr_reader :result
8
+
9
+ def initialize(application_adapter:)
10
+ @application_adapter = application_adapter
11
+ end
12
+
13
+ def call(body:, module_name:)
14
+ @body = body.read
15
+ @module_name = module_name.to_sym
16
+ run_command
17
+ build_json
18
+ self
19
+ end
20
+
21
+ def status
22
+ return 500 if command_result.errors.count.positive?
23
+ 200
24
+ end
25
+
26
+ private
27
+
28
+ attr_reader :application_adapter, :body, :module_name, :command_result
29
+
30
+ def build_json
31
+ @result = JSON.generate(command_result.to_h)
32
+ end
33
+
34
+ def run_command
35
+ @command_result = application_adapter.call(
36
+ module_name: module_name,
37
+ command_name: :create,
38
+ args: params
39
+ )
40
+ end
41
+
42
+ def params
43
+ JSON.parse(body, symbolize_names: true)
45
44
  end
46
45
  end
47
46
  end
@@ -1,43 +1,42 @@
1
1
  # frozen_string_literal: true
2
- module Hecks
3
- module Adapters
4
- class ResourceServer < Sinatra::Base
5
- class Methods
6
- class Delete
7
- attr_reader :result
2
+ module HecksAdapters
3
+ class ResourceServer < Sinatra::Base
4
+ class Methods
5
+ # Delete a resource
6
+ class Delete
7
+ attr_reader :result
8
8
 
9
- def initialize(application_adapter:)
10
- @application_adapter = application_adapter
11
- end
9
+ def initialize(application_adapter:)
10
+ @application_adapter = application_adapter
11
+ end
12
12
 
13
- def call(id:, module_name:)
14
- @id = id.to_i
15
- @module_name = module_name.to_sym
16
- run_command
17
- convert_to_json
18
- self
19
- end
13
+ def call(id:, module_name:)
14
+ @id = id
15
+ @module_name = module_name.to_sym
16
+ run_command
17
+ convert_to_json
18
+ self
19
+ end
20
20
 
21
- def status
22
- return 500 if command_result.errors.count.positive?
23
- 200
24
- end
21
+ def status
22
+ return 500 if command_result.errors.count.positive?
23
+ 200
24
+ end
25
25
 
26
- private
26
+ private
27
27
 
28
- attr_reader :application_adapter, :module_name, :id, :command_result
28
+ attr_reader :application_adapter, :module_name, :id, :command_result
29
29
 
30
- def convert_to_json
31
- @result = JSON.generate(command_result.to_h)
32
- end
30
+ def convert_to_json
31
+ @result = JSON.generate(command_result.to_h)
32
+ end
33
33
 
34
- def run_command
35
- @command_result = application_adapter.call(
36
- module_name: module_name,
37
- command_name: :delete,
38
- args: { id: id }
39
- )
40
- end
34
+ def run_command
35
+ @command_result = application_adapter.call(
36
+ module_name: module_name,
37
+ command_name: :delete,
38
+ args: { id: id }
39
+ )
41
40
  end
42
41
  end
43
42
  end
data/lib/methods/read.rb CHANGED
@@ -1,42 +1,41 @@
1
1
  # frozen_string_literal: true
2
- module Hecks
3
- module Adapters
4
- class ResourceServer < Sinatra::Base
5
- class Methods
6
- class Read
7
- attr_reader :result, :status
8
- def initialize(application_adapter:)
9
- @application_adapter = application_adapter
10
- end
2
+ module HecksAdapters
3
+ class ResourceServer < Sinatra::Base
4
+ class Methods
5
+ # Read a resource
6
+ class Read
7
+ attr_reader :result, :status
8
+ def initialize(application_adapter:)
9
+ @application_adapter = application_adapter
10
+ end
11
11
 
12
- def call(id:, module_name:)
13
- @id = id.to_i
14
- @module_name = module_name.to_sym
15
- run_query
16
- convert_to_json
17
- self
18
- end
12
+ def call(id:, module_name:)
13
+ @id = id
14
+ @module_name = module_name.to_sym
15
+ run_query
16
+ convert_to_json
17
+ self
18
+ end
19
19
 
20
- def status
21
- return 404 if command_result.nil?
22
- 200
23
- end
20
+ def status
21
+ return 404 if command_result.nil?
22
+ 200
23
+ end
24
24
 
25
- private
25
+ private
26
26
 
27
- attr_reader :application_adapter, :id, :module_name, :command_result
27
+ attr_reader :application_adapter, :id, :module_name, :command_result
28
28
 
29
- def convert_to_json
30
- @result = command_result.to_json
31
- end
29
+ def convert_to_json
30
+ @result = command_result.to_json
31
+ end
32
32
 
33
- def run_query
34
- @command_result = application_adapter.query(
35
- query_name: :find_by_id,
36
- module_name: module_name,
37
- args: { id: id }
38
- )
39
- end
33
+ def run_query
34
+ @command_result = application_adapter.query(
35
+ query_name: :find_by_id,
36
+ module_name: module_name,
37
+ args: { id: id }
38
+ )
40
39
  end
41
40
  end
42
41
  end
@@ -1,48 +1,47 @@
1
1
  # frozen_string_literal: true
2
- module Hecks
3
- module Adapters
4
- class ResourceServer < Sinatra::Base
5
- class Methods
6
- class Update
7
- attr_reader :result
8
-
9
- def initialize(application_adapter:)
10
- @application_adapter = application_adapter
11
- end
12
-
13
- def call(id:, body:, module_name:)
14
- @id = id.to_i
15
- @body = body.read
16
- @module_name = module_name.to_sym
17
- run_command
18
- convert_to_json
19
- self
20
- end
21
-
22
- def status
23
- return 500 if command_result.errors.count.positive?
24
- 200
25
- end
26
-
27
- private
28
-
29
- attr_accessor :application_adapter, :id, :body, :module_name, :command_result
30
-
31
- def convert_to_json
32
- @result = JSON.generate(command_result.to_h)
33
- end
34
-
35
- def run_command
36
- @command_result = application_adapter.call(
37
- module_name: module_name,
38
- command_name: :update,
39
- args: params
40
- )
41
- end
42
-
43
- def params
44
- JSON.parse(body, symbolize_names: true).merge(id: id)
45
- end
2
+ module HecksAdapters
3
+ class ResourceServer < Sinatra::Base
4
+ class Methods
5
+ # Update a resource
6
+ class Update
7
+ attr_reader :result
8
+
9
+ def initialize(application_adapter:)
10
+ @application_adapter = application_adapter
11
+ end
12
+
13
+ def call(id:, body:, module_name:)
14
+ @id = id
15
+ @body = body.read
16
+ @module_name = module_name.to_sym
17
+ run_command
18
+ convert_to_json
19
+ self
20
+ end
21
+
22
+ def status
23
+ return 500 if command.result[:errors].count.positive?
24
+ 200
25
+ end
26
+
27
+ private
28
+
29
+ attr_accessor :application_adapter, :id, :body, :module_name, :command
30
+
31
+ def convert_to_json
32
+ @result = JSON.generate(command.to_h)
33
+ end
34
+
35
+ def run_command
36
+ @command = application_adapter.call(
37
+ module_name: module_name,
38
+ command_name: :update,
39
+ args: params
40
+ )
41
+ end
42
+
43
+ def params
44
+ JSON.parse(body, symbolize_names: true).merge(id: id)
46
45
  end
47
46
  end
48
47
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hecks-adapters-resource-server
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.16.rc
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Young
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-03-15 00:00:00.000000000 Z
11
+ date: 2017-12-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: hecks-application
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 0.1.16.rc
19
+ version: 0.2.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 0.1.16.rc
26
+ version: 0.2.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: sinatra
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -58,6 +58,9 @@ executables: []
58
58
  extensions: []
59
59
  extra_rdoc_files: []
60
60
  files:
61
+ - lib/cli/cli.rb
62
+ - lib/cli/generate_resource_server.rb
63
+ - lib/cli/templates/resource_server/config.ru.tt
61
64
  - lib/hecks-adapters-resource-server.rb
62
65
  - lib/methods.rb
63
66
  - lib/methods/create.rb
@@ -79,13 +82,13 @@ required_ruby_version: !ruby/object:Gem::Requirement
79
82
  version: '0'
80
83
  required_rubygems_version: !ruby/object:Gem::Requirement
81
84
  requirements:
82
- - - ">"
85
+ - - ">="
83
86
  - !ruby/object:Gem::Version
84
- version: 1.3.1
87
+ version: '0'
85
88
  requirements: []
86
89
  rubyforge_project:
87
90
  rubygems_version: 2.6.10
88
91
  signing_key:
89
92
  specification_version: 4
90
- summary: Drive a resourceful web server with Domains created using Hecks::Domain generators
93
+ summary: Drive a resourceful web server with Domains created using HecksDomain generators
91
94
  test_files: []