glimmer-dsl-web 0.6.7 → 0.6.8

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: 9a4d424a8d5ab44e419d2d859f2b0338bb676e84ab37756ef4721eee3cd70ae4
4
- data.tar.gz: e19ad5b31ccc3a47838fa7a2e0ab0b30367fd342a4a9706d478c3702c8c03175
3
+ metadata.gz: 9f078ee2fccbdecc49040923265ba09b4bff1a0c9c0fb7c062c4aae58b68873d
4
+ data.tar.gz: 7c3917e649acd80f9f20754b123b8cdd25a8bc435910dbc704d045b3174d2c27
5
5
  SHA512:
6
- metadata.gz: eaa0f67301b67ba15a624c1a13f65f2bad31632a35940e9f767a70708919bec49ef740fceae499c3b49ba13c4e491cb575e6479ea4b2c276625bdaad71d677b8
7
- data.tar.gz: 1d0f911b8748b454580c16eb56d28d8f1adc763a93559d42cde84037f2a224264ec813306cf28c28cf71ea698a635120e5f343b7202e3d025a1a9ef16a052658
6
+ metadata.gz: 6e080034e25b6aff5b70213f6fa991ae5c8e37fe38796703f1863c702c6268a1f9a827f0fd07926a0ca88ff3d952e2fea63ce794cd606395a1faf622d521bdb1
7
+ data.tar.gz: 1c8135017efb0ba4b8815040cc8c5a9401360c84ea19d31af4d55f0565988480f8d58066dfe108d5e96d54cf91aeac8a4f9350ad40ccb78d1f6dbe0b1c6c06b1
data/CHANGELOG.md CHANGED
@@ -1,8 +1,13 @@
1
1
  # Change Log
2
2
 
3
+ ## 0.6.8
4
+
5
+ - `Rails::ResourceService` provides `errors` as 3rd argument of `response_handler` block in erroneous web requests.
6
+ - Refactor/simplify code of Contact Manager sample with `Rails::ResourceService` enhancements to provide `errors` as `response_handler` 3rd argument
7
+
3
8
  ## 0.6.7
4
9
 
5
- - `Rails::ResourceService` builds resource models using `resource_class` and provides `resources`/`resource` as 2nd argument of `response_handler` blocks in index/show/create/update calls.
10
+ - `Rails::ResourceService` builds resource models using `resource_class` and provides `resources`/`resource` as 2nd argument of `response_handler` block in index/show/create/update calls.
6
11
  - Refactor/simplify code of Contact Manager sample with `Rails::ResourceService` enhancements to provide resource models in `response_handler` 2nd argument
7
12
 
8
13
  ## 0.6.6
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # [<img src="https://raw.githubusercontent.com/AndyObtiva/glimmer/master/images/glimmer-logo-hi-res.png" height=85 />](https://github.com/AndyObtiva/glimmer) Glimmer DSL for Web 0.6.7 (Beta)
1
+ # [<img src="https://raw.githubusercontent.com/AndyObtiva/glimmer/master/images/glimmer-logo-hi-res.png" height=85 />](https://github.com/AndyObtiva/glimmer) Glimmer DSL for Web 0.6.8 (Beta)
2
2
  ## Ruby-in-the-Browser Web Frontend Framework
3
3
  ### The "Rails" of Frontend Frameworks!!! ([Fukuoka Award Winning](https://andymaleh.blogspot.com/2025/01/glimmer-dsl-for-web-wins-in-fukuoka.html))
4
4
  #### Finally, Ruby Developer Productivity, Happiness, and Fun in the Frontend!!!
@@ -1408,7 +1408,7 @@ rails new glimmer_app_server
1408
1408
  Add the following to `Gemfile`:
1409
1409
 
1410
1410
  ```
1411
- gem 'glimmer-dsl-web', '~> 0.6.7'
1411
+ gem 'glimmer-dsl-web', '~> 0.6.8'
1412
1412
  ```
1413
1413
 
1414
1414
  Run:
@@ -1703,29 +1703,38 @@ you can use [Rails::ResourceService](/lib/rails/resource_service.rb) (`require '
1703
1703
  the `Rails::ResourceService` class source code to find out what its API is. It can work with a basic Rails Scaffold of a Resource
1704
1704
  if Developers would rather not write the Backend by hand.
1705
1705
 
1706
+ `Rails::ResourceService` API:
1707
+ - `index(resource: nil, resource_class: nil, singular_resource_name: nil, plural_resource_name: nil, index_resource_url: nil, params: nil) { |response| ... }`
1708
+ - `show(resource: nil, resource_class: nil, resource_id: nil, singular_resource_name: nil, plural_resource_name: nil, show_resource_url: nil, params: nil) { |response| ... }`
1709
+ - `create(resource: nil, resource_class: nil, resource_attributes: nil, singular_resource_name: nil, plural_resource_name: nil, create_resource_url: nil, params: nil) { |response, created_resource, errors| ... }`
1710
+ - `update(resource: nil, resource_class: nil, resource_id: nil, resource_attributes: nil, singular_resource_name: nil, plural_resource_name: nil, update_resource_url: nil, params: nil) { |response, updated_resource, errors| ... }`
1711
+ - `destroy(resource: nil, resource_class: nil, resource_id: nil, singular_resource_name: nil, plural_resource_name: nil, destroy_resource_url: nil, params: nil) { |response| ... }`
1712
+
1713
+ `Rails::ResourceService` follows the 'Convention over Configuration' Rails principle as it auto-derives the URL to call based on the `resource` class and data.
1714
+
1706
1715
  Example from [ContactPresenter](https://github.com/AndyObtiva/sample-glimmer-dsl-web-rails7-app/blob/master/app/assets/opal/contact_manager/presenters/contact_presenter.rb) in the [Contact Manager](#contact-manager) sample:
1707
1716
 
1708
1717
  `form_contact` is an instance of the [Contact](https://github.com/AndyObtiva/sample-glimmer-dsl-web-rails7-app/blob/master/app/assets/opal/contact_manager/models/contact.rb) class.
1709
1718
 
1710
1719
  ```ruby
1711
- Rails::ResourceService.update(resource: form_contact) do |response, updated_contact|
1720
+ Rails::ResourceService.update(resource: form_contact) do |response, updated_contact, errors|
1712
1721
  if response.ok?
1713
1722
  contacts[edit_index].load_with(updated_contact)
1714
1723
  self.edit_index = nil
1715
1724
  form_contact.reset
1716
1725
  form_contact.errors = nil
1717
1726
  else
1718
- form_contact.errors = JSON.parse(response.body)
1727
+ form_contact.errors = errors
1719
1728
  end
1720
1729
  end
1721
1730
  ```
1722
1731
 
1723
1732
  Note that there are alternative ways of invoking the `Rails::ResourceService.update` call:
1724
- - `Rails::ResourceService.update(resource: form_contact) { |response| ... }`
1725
- - `Rails::ResourceService.update(resource_class: Contact, resource_id: form_contact.id, resource_attributes: {first_name: form_contact.first_name, ...}) { |response| ... }`
1726
- - `Rails::ResourceService.update(singular_resource_name: 'contact', resource_id: form_contact.id, resource_attributes: {first_name: form_contact.first_name, ...}) { |response| ... }`
1727
- - `Rails::ResourceService.update(update_resource_url: "/contacts/#{form_contact.id}.json", resource_attributes: {first_name: form_contact.first_name, ...}) { |response| ... }`
1728
- - `Rails::ResourceService.update(update_resource_url: "/contacts/#{form_contact.id}.json", params: {contact: {first_name: form_contact.first_name, ...}}) { |response| ... }`
1733
+ - `Rails::ResourceService.update(resource: form_contact) { |response, resource, errors| ... }`
1734
+ - `Rails::ResourceService.update(resource_class: Contact, resource_id: form_contact.id, resource_attributes: {first_name: form_contact.first_name, ...}) { |response, resource, errors| ... }`
1735
+ - `Rails::ResourceService.update(singular_resource_name: 'contact', resource_id: form_contact.id, resource_attributes: {first_name: form_contact.first_name, ...}) { |response, resource, errors| ... }`
1736
+ - `Rails::ResourceService.update(update_resource_url: "/contacts/#{form_contact.id}.json", resource_attributes: {first_name: form_contact.first_name, ...}) { |response, resource, errors| ... }`
1737
+ - `Rails::ResourceService.update(update_resource_url: "/contacts/#{form_contact.id}.json", params: {contact: {first_name: form_contact.first_name, ...}}) { |response, resource, errors| ... }`
1729
1738
 
1730
1739
  ## Supported Glimmer DSL Keywords
1731
1740
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.6.7
1
+ 0.6.8
@@ -2,11 +2,11 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: glimmer-dsl-web 0.6.7 ruby lib
5
+ # stub: glimmer-dsl-web 0.6.8 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "glimmer-dsl-web".freeze
9
- s.version = "0.6.7"
9
+ s.version = "0.6.8"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
12
12
  s.require_paths = ["lib".freeze]
@@ -41,11 +41,15 @@ module Rails
41
41
  plural_resource_name ||= "#{singular_resource_name}s"
42
42
  create_resource_url ||= "/#{plural_resource_name}.json"
43
43
  HTTP.post(create_resource_url, payload: create_update_resource_params(resource:, resource_class:, resource_attributes:, singular_resource_name:, params: params.to_h)) do |response|
44
- if response.ok? && !resource_class.nil?
45
- resource_response_object = Native(response.body)
46
- resource = build_resource_from_response_object(resource_class:, resource_response_object:)
44
+ if response.ok?
45
+ if !resource_class.nil?
46
+ resource_response_object = Native(response.body)
47
+ resource = build_resource_from_response_object(resource_class:, resource_response_object:)
48
+ end
49
+ else
50
+ errors = JSON.parse(response.body)
47
51
  end
48
- response_handler.call(response, resource)
52
+ response_handler.call(response, resource, errors)
49
53
  end
50
54
  end
51
55
 
@@ -56,11 +60,15 @@ module Rails
56
60
  plural_resource_name ||= "#{singular_resource_name}s"
57
61
  update_resource_url ||= "/#{plural_resource_name}/#{resource_id}.json"
58
62
  HTTP.patch(update_resource_url, payload: create_update_resource_params(resource:, resource_class:, resource_attributes:, singular_resource_name:, params: params.to_h)) do |response|
59
- if response.ok? && !resource_class.nil?
60
- resource_response_object = Native(response.body)
61
- resource = build_resource_from_response_object(resource_class:, resource_response_object:)
63
+ if response.ok?
64
+ if !resource_class.nil?
65
+ resource_response_object = Native(response.body)
66
+ resource = build_resource_from_response_object(resource_class:, resource_response_object:)
67
+ end
68
+ else
69
+ errors = JSON.parse(response.body)
62
70
  end
63
- response_handler.call(response, resource)
71
+ response_handler.call(response, resource, errors)
64
72
  end
65
73
  end
66
74
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: glimmer-dsl-web
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.7
4
+ version: 0.6.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andy Maleh