echo-craft 0.1.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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 44e7255489f0cdd65cd3146138c4ecfb20bc653ebe47a43a7553c2904dcff7be
4
+ data.tar.gz: 896f46cbf63a21166a0224619643f372f6f35d3dd2f77f13a2019dc5d61efabd
5
+ SHA512:
6
+ metadata.gz: bdc284063a760d0eb0c0386f7387fb60034f0a821526ab354b4f7a39b16c23a4c94b20ccad7b9a2af1936150bf81b0e3e538ec1e6b267e433cad1decb6119be5
7
+ data.tar.gz: bd7761baa3560caf9f51824ccd61cbb1baf1c45091c64339d5a6fb075b413156262e1622b47e665c2e1456b7a785dee992b3f10cb8a240b0b2f05c06181983e6
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module EchoCraft
4
+ # Basic Response with EchoCraft Struct
5
+ class Response
6
+ require 'rack'
7
+ require 'ostruct'
8
+
9
+ attr_reader :status, :message, :data
10
+
11
+ def initialize
12
+ change_status(:processing)
13
+ @data = ::OpenStruct.new
14
+ end
15
+
16
+ def status=(status)
17
+ change_status(status)
18
+ end
19
+
20
+ def change_status(status)
21
+ @status = ::Rack::Utils.status_code(status)
22
+ @message = ::Rack::Utils::HTTP_STATUS_CODES[@status]
23
+ @status
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ module EchoCraft
4
+ require 'echo_craft/response'
5
+ # Basic Response to Service Objects
6
+ class ServiceObject < EchoCraft::Response
7
+ attr_accessor :record, :successful
8
+
9
+ def initialize
10
+ super
11
+ @record = nil
12
+ @successful = false
13
+ @status = change_status(:accepted)
14
+ end
15
+
16
+ def set_service_successful
17
+ @successful = true
18
+ end
19
+
20
+ def unprocessabled
21
+ change_status(:unprocessable_entity)
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ module EchoCraft
4
+ module ServiceObjects
5
+ require 'echo_craft/service_object'
6
+ # Basic Response to Create a Record on ServiceObject
7
+ class Create < EchoCraft::ServiceObject
8
+ attr_accessor :params
9
+
10
+ def initialize(params)
11
+ super()
12
+ @record = nil
13
+ @params = params
14
+ end
15
+
16
+ def created(record)
17
+ @record = record
18
+ change_status(:created)
19
+ set_service_successful
20
+ end
21
+
22
+ def unprocessabled(record)
23
+ @record = record
24
+ super()
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module EchoCraft
4
+ module ServiceObjects
5
+ require 'echo_craft/service_object'
6
+ # Basic Response to Destroy a Record on ServiceObject
7
+ class Destroy < EchoCraft::ServiceObject
8
+ def initialize(record)
9
+ super()
10
+ @record = record
11
+ end
12
+
13
+ def destroyed
14
+ change_status(:ok)
15
+ set_service_successful
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ module EchoCraft
4
+ module ServiceObjects
5
+ require 'echo_craft/service_object'
6
+ # Basic Response to Update a Record on ServiceObject
7
+ class Update < EchoCraft::ServiceObject
8
+ attr_accessor :params
9
+
10
+ def initialize(record, params)
11
+ super()
12
+ @record = record
13
+ @params = params
14
+ end
15
+
16
+ def updated
17
+ change_status(:ok)
18
+ set_service_successful
19
+ end
20
+ end
21
+ end
22
+ end
data/lib/echo_craft.rb ADDED
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "echo_craft/version"
4
+
5
+ module EchoCraft
6
+ class Error < StandardError; end
7
+ # Your code goes here...
8
+ end
metadata ADDED
@@ -0,0 +1,50 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: echo-craft
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Marcos Chuquicondor
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2024-01-25 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: Manage Standard Responses.
14
+ email:
15
+ - marcos@chuquicondor.com
16
+ executables: []
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - lib/echo_craft.rb
21
+ - lib/echo_craft/response.rb
22
+ - lib/echo_craft/service_object.rb
23
+ - lib/echo_craft/service_objects/create.rb
24
+ - lib/echo_craft/service_objects/destroy.rb
25
+ - lib/echo_craft/service_objects/update.rb
26
+ homepage: https://github.com/chuquimm/echo_craft
27
+ licenses:
28
+ - MIT
29
+ metadata:
30
+ homepage_uri: https://github.com/chuquimm/echo_craft
31
+ post_install_message:
32
+ rdoc_options: []
33
+ require_paths:
34
+ - lib
35
+ required_ruby_version: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: 3.1.0
40
+ required_rubygems_version: !ruby/object:Gem::Requirement
41
+ requirements:
42
+ - - ">="
43
+ - !ruby/object:Gem::Version
44
+ version: '0'
45
+ requirements: []
46
+ rubygems_version: 3.3.3
47
+ signing_key:
48
+ specification_version: 4
49
+ summary: Standard Responses.
50
+ test_files: []