glimmer-dsl-web 0.8.6 → 0.8.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: 38be4742b6e4be32704d86bbe0db19af0259b3c56a1f039028ceadfeb7fa42f2
4
- data.tar.gz: bbe4558de7ce49a1a20cd6abb6b837ef0e5e6853472db91145b6719414524b6f
3
+ metadata.gz: db73018239b32a5d5ef65132760f1df53fe162e8199468b674d0a3e4fd675863
4
+ data.tar.gz: f188ededffff10a18faebbdf370967fed8d0ffc1b220289524d659e61b694c31
5
5
  SHA512:
6
- metadata.gz: 98dfb5213321451ac67ebe397e0d8663d27c49dfb9397b694994b74deca7b31fad351e7a9cc4d637fdabccfb1ce3d6620228c123b519e71480d58f944f571752
7
- data.tar.gz: 63e7e036931c362ab49894f7f2222c87fb5d8cc398e0a5de8b1b0420e0a9631f4901f2b7d1a1c32555a0152caa804102fc932866f4e29d7ff722ec20a9d1c90a
6
+ metadata.gz: 9f1bc0048487b56d1b58a6f4ccf784b3ab3ceb8c5cc97aad007f2ae1a1aec666e09a18d4261109cb12dab99bbae3aae2bd111dcba25670ae94db24569e473266
7
+ data.tar.gz: f3715134efe3b06bb2677e15939a23d097a9d825afd99d42275fa350c0097b9bd4bf6f7fb0ed64e64193e2e44151b50caa92ce995e127aab389997cff9445046
data/CHANGELOG.md CHANGED
@@ -1,5 +1,15 @@
1
1
  # Change Log
2
2
 
3
+ ## 0.8.8
4
+
5
+ - `Glimmer::Util::UrlBuilder` supports `params` to set multiple params at once as a hash
6
+ - Fix issue with `Glimmer::Util::UrlBuilder` when using paths ending with `.json`
7
+
8
+ ## 0.8.7
9
+
10
+ - Upgrade to glimmer 0.8.2 as it has a fixed dependency on facets 3.1.0 to avoid the breaking changes of the new facets 3.2.0
11
+ - `Glimmer::Util::UrlBuilder` resiliency against nil and empty params, paths, and fragments
12
+
3
13
  ## 0.8.6
4
14
 
5
15
  - `Glimmer::Util::UrlBuilder` implementation to facilitate building URLs (with protocol scheme, host, path, query params, and fragment)
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.8.6 (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.8.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!!!
@@ -1411,7 +1411,7 @@ Please follow these steps to setup.
1411
1411
  Install a Rails 7 gem:
1412
1412
 
1413
1413
  ```
1414
- gem install rails -v7.0.8.6
1414
+ gem install rails -v7.0.8.8
1415
1415
  ```
1416
1416
 
1417
1417
  Start a new Rails 7 app:
@@ -1423,7 +1423,7 @@ rails new glimmer_app_server
1423
1423
  Add the following to `Gemfile`:
1424
1424
 
1425
1425
  ```
1426
- gem 'glimmer-dsl-web', '~> 0.8.6'
1426
+ gem 'glimmer-dsl-web', '~> 0.8.8'
1427
1427
  ```
1428
1428
 
1429
1429
  Run:
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.8.6
1
+ 0.8.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.8.6 ruby lib
5
+ # stub: glimmer-dsl-web 0.8.8 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "glimmer-dsl-web".freeze
9
- s.version = "0.8.6".freeze
9
+ s.version = "0.8.8".freeze
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]
@@ -106,7 +106,7 @@ Gem::Specification.new do |s|
106
106
 
107
107
  s.specification_version = 4
108
108
 
109
- s.add_runtime_dependency(%q<glimmer>.freeze, ["~> 2.8.0".freeze])
109
+ s.add_runtime_dependency(%q<glimmer>.freeze, ["~> 2.8.2".freeze])
110
110
  s.add_runtime_dependency(%q<glimmer-dsl-xml>.freeze, ["~> 1.4.0".freeze])
111
111
  s.add_runtime_dependency(%q<glimmer-dsl-css>.freeze, ["~> 1.5.2".freeze])
112
112
  s.add_runtime_dependency(%q<opal>.freeze, ["= 1.8.2".freeze])
@@ -26,7 +26,7 @@ module Glimmer
26
26
  module Util
27
27
  class UrlBuilder
28
28
  DEFAULT_SCHEME = 'https'
29
- REGEXP_URL = /^(http|https)?(:\/\/)?(([^\/\:]+):?(\d+)?)?(\/[^?#]*)?(\?[^#]*)?(\#.+)?$/
29
+ REGEXP_URL = /^(https?)?(:\/\/)?(([^\/\:]+):?(\d+)?)?(\/[^?#]*)?(\?[^#]*)?(\#.+)?$/
30
30
 
31
31
  class << self
32
32
  def current
@@ -41,6 +41,7 @@ module Glimmer
41
41
 
42
42
  def scheme(value)
43
43
  @scheme = value || DEFAULT_SCHEME
44
+ @scheme = @scheme.gsub(/[:\/]/, '')
44
45
  self
45
46
  end
46
47
  alias protocol scheme
@@ -73,6 +74,11 @@ module Glimmer
73
74
  self
74
75
  end
75
76
 
77
+ def params(params_hash)
78
+ @params = @params.merge(params_hash)
79
+ self
80
+ end
81
+
76
82
  def query(value)
77
83
  return self if value.nil?
78
84
 
@@ -100,14 +106,14 @@ module Glimmer
100
106
  def to_url
101
107
  output = "#{@scheme}://#{@host}"
102
108
  output += ":#{@port}" if @port
103
- output += "#{@path}#{compute_query}#{@fragment}"
109
+ output += "#{@path&.strip}#{compute_query}#{@fragment&.strip}"
104
110
  output
105
111
  end
106
112
  alias to_s to_url
107
113
  alias build to_url
108
114
 
109
115
  def compute_query
110
- computed_query = @params.map { |name, value| "#{name}=#{value}" }.join('&')
116
+ computed_query = @params.reject { |name, value| value.nil? || value.to_s.empty? }.map { |name, value| "#{name}=#{value}" }.join('&')
111
117
  computed_query = "?#{computed_query}" unless computed_query.empty?
112
118
  computed_query
113
119
  end
@@ -16,6 +16,8 @@ module Rails
16
16
  HTTP.get(index_resource_url, payload: index_show_destroy_resource_params(params: params.to_h)) do |response|
17
17
  if response.ok? && !resource_class.nil?
18
18
  resource_response_objects = Native(response.body)
19
+ # TODO consider having index not make the assumpion that resource_response_objects is an array in case it isn't
20
+ # when including pagination information (maybe test if it is an array first)
19
21
  resources = resource_response_objects.map { |resource_response_object| build_resource_from_response_object(resource_class:, resource_response_object:) }
20
22
  end
21
23
  response_handler.call(response, resources)
@@ -111,6 +113,8 @@ module Rails
111
113
  resource_response_object.each { |attribute, value| resource.send("#{attribute}=", value) rescue nil }
112
114
  resource
113
115
  end
116
+
117
+ # TODO consider offering generic Rails::ResourceService.get, Rails::ResourceService.put, Rails::ResourceService.post, Rails::ResourceService.patch, Rails::ResourceService.delete methods
114
118
  end
115
119
  end
116
120
  end
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.8.6
4
+ version: 0.8.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andy Maleh
@@ -15,14 +15,14 @@ dependencies:
15
15
  requirements:
16
16
  - - "~>"
17
17
  - !ruby/object:Gem::Version
18
- version: 2.8.0
18
+ version: 2.8.2
19
19
  type: :runtime
20
20
  prerelease: false
21
21
  version_requirements: !ruby/object:Gem::Requirement
22
22
  requirements:
23
23
  - - "~>"
24
24
  - !ruby/object:Gem::Version
25
- version: 2.8.0
25
+ version: 2.8.2
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: glimmer-dsl-xml
28
28
  requirement: !ruby/object:Gem::Requirement