glimmer-dsl-web 0.6.7 → 0.6.8

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
  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