live 0.5.1 → 0.7.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
  SHA256:
3
- metadata.gz: cfeb3e940dcaa5ebf16783a2ece528b3fa4a7099c3cec8d0cfb0e8773794e700
4
- data.tar.gz: 06c73060a9d6af8674d87099bc350238769d556d9c5ef8ae06c6db8c6210f8c4
3
+ metadata.gz: eb8e5793466102d92b796d1e86a24c1ff6406eb888b772c65a22c1857c49ad5e
4
+ data.tar.gz: b19804c4d65fa9798615bb681c5062602e2a0406b8a663ac1e8c4ef8a7f2b3c4
5
5
  SHA512:
6
- metadata.gz: a2fc3df3418b37bad633cb02237ab1b36189761de825ecc525779adcec35e999e458f7e9a6b15199b2f32811440a9483e02e075fac4a0e2e55480d0090c9e183
7
- data.tar.gz: 8cfed20d083690ad6f81ef534cdaca0c66b70601176ac2d3b6865e5dce40b801897052c73791e6f0080722a2a0faebb77d820215e5f00af20ebb64cbb2849bee
6
+ metadata.gz: 5a9c0e7beec4ba0f3102067b1df4da1329fcd35a90e2eb0de38db4ffa565dea7e56d52c6f4c922efd31aac0ee18d8427c40491f552ff3b5fafdec8d887d38898
7
+ data.tar.gz: 75f1b08b01c5b1f280ff93290082bc1da873ff1e259e0a76f0b7a996516fcde81cbe1ceb0824e6f817318d100ec86af05714fbcdc5550526e8572ac6eed71e59
checksums.yaml.gz.sig CHANGED
Binary file
data/lib/live/element.rb CHANGED
@@ -1,33 +1,21 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright, 2021, by Samuel G. D. Williams. <http://www.codeotaku.com>
4
- #
5
- # Permission is hereby granted, free of charge, to any person obtaining a copy
6
- # of this software and associated documentation files (the "Software"), to deal
7
- # in the Software without restriction, including without limitation the rights
8
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- # copies of the Software, and to permit persons to whom the Software is
10
- # furnished to do so, subject to the following conditions:
11
- #
12
- # The above copyright notice and this permission notice shall be included in
13
- # all copies or substantial portions of the Software.
14
- #
15
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
- # THE SOFTWARE.
3
+ # Released under the MIT License.
4
+ # Copyright, 2021-2024, by Samuel Williams.
22
5
 
23
6
  require 'json'
7
+ require 'securerandom'
24
8
 
25
9
  module Live
26
10
  # Represents a single dynamic content area on the page.
27
11
  class Element
12
+ def self.unique_id
13
+ SecureRandom.uuid
14
+ end
15
+
28
16
  # @parameter id [String] The unique identifier within the page.
29
17
  # @parameter data [Hash] The data associated with the element, typically stored as `data-` attributes.
30
- def initialize(id, **data)
18
+ def initialize(id = Element.unique_id, **data)
31
19
  @id = id
32
20
  @data = data
33
21
  @data[:class] ||= self.class.name
@@ -38,13 +26,24 @@ module Live
38
26
  # The unique id within the bound page.
39
27
  attr :id
40
28
 
29
+ # The data associated with the element.
30
+ attr :data
31
+
41
32
  # Generate a JavaScript string which forwards the specified event to the server.
42
33
  # @parameter details [Hash] The details associated with the forwarded event.
43
- def forward(details = nil)
34
+ def forward_event(details = nil)
35
+ if details
36
+ "live.forwardEvent(#{JSON.dump(@id)}, event, #{JSON.dump(details)})"
37
+ else
38
+ "live.forwardEvent(#{JSON.dump(@id)}, event)"
39
+ end
40
+ end
41
+
42
+ def forward_form_event(details = nil)
44
43
  if details
45
- "live.forward(#{JSON.dump(@id)}, event, #{JSON.dump(details)})"
44
+ "live.forwardFormEvent(#{JSON.dump(@id)}, event, #{JSON.dump(details)})"
46
45
  else
47
- "live.forward(#{JSON.dump(@id)}, event)"
46
+ "live.forwardFormEvent(#{JSON.dump(@id)}, event)"
48
47
  end
49
48
  end
50
49
 
@@ -66,9 +65,9 @@ module Live
66
65
  # Enqueue a remote procedure call to the currently bound page.
67
66
  # @parameter method [Symbol] The name of the remote functio to invoke.
68
67
  # @parameter arguments [Array]
69
- def rpc(method, arguments)
68
+ def rpc(*arguments)
70
69
  # This update might not be sent right away. Therefore, mutable arguments may be serialized to JSON at a later time (or never). This could be a race condition:
71
- @page.updates.enqueue([method, arguments])
70
+ @page.updates.enqueue(arguments)
72
71
  end
73
72
  end
74
73
  end
data/lib/live/page.rb CHANGED
@@ -1,24 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright, 2021, by Samuel G. D. Williams. <http://www.codeotaku.com>
4
- #
5
- # Permission is hereby granted, free of charge, to any person obtaining a copy
6
- # of this software and associated documentation files (the "Software"), to deal
7
- # in the Software without restriction, including without limitation the rights
8
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- # copies of the Software, and to permit persons to whom the Software is
10
- # furnished to do so, subject to the following conditions:
11
- #
12
- # The above copyright notice and this permission notice shall be included in
13
- # all copies or substantial portions of the Software.
14
- #
15
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
- # THE SOFTWARE.
3
+ # Released under the MIT License.
4
+ # Copyright, 2021-2024, by Samuel Williams.
22
5
 
23
6
  require_relative 'element'
24
7
  require_relative 'resolver'
@@ -67,7 +50,7 @@ module Live
67
50
  if element = @elements[id]
68
51
  return element.handle(event)
69
52
  else
70
- Console.logger.warn(self, "Could not handle event:", event, details)
53
+ Console.warn(self, "Could not handle event:", event, details)
71
54
  end
72
55
 
73
56
  return nil
@@ -85,12 +68,12 @@ module Live
85
68
  if element = self.resolve(id, data)
86
69
  self.bind(element)
87
70
  else
88
- Console.logger.warn(self, "Could not resolve element:", message)
71
+ Console.warn(self, "Could not resolve element:", message)
89
72
  end
90
73
  elsif id = message[:id]
91
74
  self.handle(id, message[:event])
92
75
  else
93
- Console.logger.warn(self, "Unhandled message:", message)
76
+ Console.warn(self, "Unhandled message:", message)
94
77
  end
95
78
  end
96
79
 
@@ -99,7 +82,7 @@ module Live
99
82
  def run(connection)
100
83
  queue_task = Async do
101
84
  while update = @updates.dequeue
102
- Console.logger.debug(self, "Sending update:", update)
85
+ Console.debug(self, "Sending update:", update)
103
86
 
104
87
  connection.write(::Protocol::WebSocket::JSONMessage.generate(update))
105
88
  connection.flush if @updates.empty?
@@ -107,12 +90,12 @@ module Live
107
90
  end
108
91
 
109
92
  while message = connection.read
110
- Console.logger.debug(self, "Reading message:", message)
93
+ Console.debug(self, "Reading message:", message)
111
94
 
112
95
  if json_message = ::Protocol::WebSocket::JSONMessage.wrap(message)
113
96
  process_message(json_message.parse)
114
97
  else
115
- Console.logger.warn(self, "Unhandled message:", message)
98
+ Console.warn(self, "Unhandled message:", message)
116
99
  end
117
100
  end
118
101
  ensure
data/lib/live/resolver.rb CHANGED
@@ -1,24 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright, 2021, by Samuel G. D. Williams. <http://www.codeotaku.com>
4
- #
5
- # Permission is hereby granted, free of charge, to any person obtaining a copy
6
- # of this software and associated documentation files (the "Software"), to deal
7
- # in the Software without restriction, including without limitation the rights
8
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- # copies of the Software, and to permit persons to whom the Software is
10
- # furnished to do so, subject to the following conditions:
11
- #
12
- # The above copyright notice and this permission notice shall be included in
13
- # all copies or substantial portions of the Software.
14
- #
15
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
- # THE SOFTWARE.
3
+ # Released under the MIT License.
4
+ # Copyright, 2021-2024, by Samuel Williams.
22
5
 
23
6
  require_relative 'element'
24
7
 
data/lib/live/version.rb CHANGED
@@ -1,5 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ # Released under the MIT License.
4
+ # Copyright, 2021-2024, by Samuel Williams.
5
+
3
6
  module Live
4
- VERSION = "0.5.1"
7
+ VERSION = "0.7.0"
5
8
  end
data/lib/live/view.rb CHANGED
@@ -1,56 +1,58 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright, 2021, by Samuel G. D. Williams. <http://www.codeotaku.com>
4
- #
5
- # Permission is hereby granted, free of charge, to any person obtaining a copy
6
- # of this software and associated documentation files (the "Software"), to deal
7
- # in the Software without restriction, including without limitation the rights
8
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- # copies of the Software, and to permit persons to whom the Software is
10
- # furnished to do so, subject to the following conditions:
11
- #
12
- # The above copyright notice and this permission notice shall be included in
13
- # all copies or substantial portions of the Software.
14
- #
15
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
- # THE SOFTWARE.
3
+ # Released under the MIT License.
4
+ # Copyright, 2021-2024, by Samuel Williams.
22
5
 
23
6
  require_relative 'element'
24
- require 'trenni/builder'
7
+ require 'xrb/builder'
25
8
 
26
9
  module Live
27
10
  # Represents a single division of content on the page an provides helpers for rendering the content.
28
11
  class View < Element
12
+ # Update the content of the client-side element by rendering this view.
13
+ def update!(**options)
14
+ rpc(:update, @id, self.to_html, options)
15
+ end
16
+
29
17
  # Replace the content of the client-side element by rendering this view.
30
- def replace!
31
- rpc(:replace, [@id, self.to_html])
18
+ # @parameter selector [String] The CSS selector to replace.
19
+ # @parameter node [String] The HTML to replace.
20
+ def replace(selector, node, **options)
21
+ rpc(:replace, selector, node.to_s, options)
22
+ end
23
+
24
+ # Prepend to the content of the client-side element by appending the specified element.
25
+ # @parameter selector [String] The CSS selector to prepend to.
26
+ # @parameter node [String] The HTML to prepend.
27
+ def prepend(selector, node, **options)
28
+ rpc(:prepend, selector, node.to_s, options)
32
29
  end
33
30
 
34
31
  # Append to the content of the client-side element by appending the specified element.
35
- # @parameter node [Live::Element] The element to append.
36
- def append!(element)
37
- rpc(:append, [@id, element.to_html])
32
+ # @parameter selector [String] The CSS selector to append to.
33
+ # @parameter node [String] The HTML to prepend.
34
+ def append(selector, node, **options)
35
+ rpc(:append, selector, node.to_s, options)
38
36
  end
39
37
 
40
- # Prepend to the content of the client-side element by appending the specified element.
41
- # @parameter node [Live::Element] The element to prepend.
42
- def prepend!(element)
43
- rpc(:prepend, [@id, element.to_html])
38
+ # Remove the specified element from the client-side element.
39
+ # @parameter selector [String] The CSS selector to remove.
40
+ def remove(selector, **options)
41
+ rpc(:remove, selector, options)
42
+ end
43
+
44
+ def dispatch_event(selector, type, **options)
45
+ rpc(:dispatch_event, selector, event, options)
44
46
  end
45
47
 
46
48
  # Render the element.
47
- # @parameter builder [Trenni::Builder] The HTML builder.
49
+ # @parameter builder [XRB::Builder] The HTML builder.
48
50
  def render(builder)
49
51
  end
50
52
 
51
53
  # @returns [Object] The generated HTML.
52
54
  def to_html
53
- Trenni::Builder.fragment do |builder|
55
+ XRB::Builder.fragment do |builder|
54
56
  builder.tag :div, id: @id, class: 'live', data: @data do
55
57
  render(builder)
56
58
  end
data/lib/live.rb CHANGED
@@ -1,24 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright, 2021, by Samuel G. D. Williams. <http://www.codeotaku.com>
4
- #
5
- # Permission is hereby granted, free of charge, to any person obtaining a copy
6
- # of this software and associated documentation files (the "Software"), to deal
7
- # in the Software without restriction, including without limitation the rights
8
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- # copies of the Software, and to permit persons to whom the Software is
10
- # furnished to do so, subject to the following conditions:
11
- #
12
- # The above copyright notice and this permission notice shall be included in
13
- # all copies or substantial portions of the Software.
14
- #
15
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
- # THE SOFTWARE.
3
+ # Released under the MIT License.
4
+ # Copyright, 2021-2024, by Samuel Williams.
22
5
 
23
6
  require_relative "live/version"
24
7
 
data/license.md ADDED
@@ -0,0 +1,22 @@
1
+ # MIT License
2
+
3
+ Copyright, 2021-2024, by Samuel Williams.
4
+ Copyright, 2023, by Olle Jonsson.
5
+
6
+ Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ of this software and associated documentation files (the "Software"), to deal
8
+ in the Software without restriction, including without limitation the rights
9
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ copies of the Software, and to permit persons to whom the Software is
11
+ furnished to do so, subject to the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be included in all
14
+ copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
+ SOFTWARE.
data/readme.md ADDED
@@ -0,0 +1,43 @@
1
+ # Live
2
+
3
+ Provides bi-directional live HTML views using WebSockets for communication. You can try out a [live example](https://utopia-falcon-heroku.herokuapp.com/live/index)
4
+
5
+ [![Development Status](https://github.com/socketry/live/workflows/Test/badge.svg)](https://github.com/socketry/live/actions?workflow=Test)
6
+
7
+ ## Features
8
+
9
+ - Transparent support for both static initial rendering and dynamic updates.
10
+ - Bi-directional event handling for seamless client/server implementation.
11
+ - Event-driven architecture for efficient handling of thousands of active connections.
12
+
13
+ ## Usage
14
+
15
+ Please see the [project documentation](https://socketry.github.io/live/) for more details.
16
+
17
+ - [Getting Started](https://socketry.github.io/live/guides/getting-started/index) - This guide explains how to use `live` to render dynamic content in real-time.
18
+
19
+ - [Rails Integration](https://socketry.github.io/live/guides/rails-integration/index) - This guide explains how to use the `live` gem with Ruby on Rails.
20
+
21
+ ## Contributing
22
+
23
+ We welcome contributions to this project.
24
+
25
+ 1. Fork it.
26
+ 2. Create your feature branch (`git checkout -b my-new-feature`).
27
+ 3. Commit your changes (`git commit -am 'Add some feature'`).
28
+ 4. Push to the branch (`git push origin my-new-feature`).
29
+ 5. Create new Pull Request.
30
+
31
+ ### Developer Certificate of Origin
32
+
33
+ This project uses the [Developer Certificate of Origin](https://developercertificate.org/). All contributors to this project must agree to this document to have their contributions accepted.
34
+
35
+ ### Contributor Covenant
36
+
37
+ This project is governed by the [Contributor Covenant](https://www.contributor-covenant.org/). All contributors and participants agree to abide by its terms.
38
+
39
+ ## See Also
40
+
41
+ - [live-js](https://github.com/socketry/live-js) — The client-side JavaScript library.
42
+ - [morphdom](https://github.com/patrick-steele-idem/morphdom) — Efficiently update the client-side HTML.
43
+ - [stimulus-reflex](https://github.com/hopsoft/stimulus_reflex) — An alternative framework which provides similar functionality.
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,10 +1,11 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: live
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samuel Williams
8
+ - Olle Jonsson
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain:
@@ -37,7 +38,7 @@ cert_chain:
37
38
  Q2K9NVun/S785AP05vKkXZEFYxqG6EW012U4oLcFl5MySFajYXRYbuUpH6AY+HP8
38
39
  voD0MPg1DssDLKwXyt1eKD/+Fq0bFWhwVM/1XiAXL7lyYUyOq24KHgQ2Csg=
39
40
  -----END CERTIFICATE-----
40
- date: 2023-10-05 00:00:00.000000000 Z
41
+ date: 2024-05-04 00:00:00.000000000 Z
41
42
  dependencies:
42
43
  - !ruby/object:Gem::Dependency
43
44
  name: async-websocket
@@ -54,7 +55,7 @@ dependencies:
54
55
  - !ruby/object:Gem::Version
55
56
  version: '0.23'
56
57
  - !ruby/object:Gem::Dependency
57
- name: trenni
58
+ name: xrb
58
59
  requirement: !ruby/object:Gem::Requirement
59
60
  requirements:
60
61
  - - ">="
@@ -67,62 +68,6 @@ dependencies:
67
68
  - - ">="
68
69
  - !ruby/object:Gem::Version
69
70
  version: '0'
70
- - !ruby/object:Gem::Dependency
71
- name: async-rspec
72
- requirement: !ruby/object:Gem::Requirement
73
- requirements:
74
- - - "~>"
75
- - !ruby/object:Gem::Version
76
- version: '1.1'
77
- type: :development
78
- prerelease: false
79
- version_requirements: !ruby/object:Gem::Requirement
80
- requirements:
81
- - - "~>"
82
- - !ruby/object:Gem::Version
83
- version: '1.1'
84
- - !ruby/object:Gem::Dependency
85
- name: bundler
86
- requirement: !ruby/object:Gem::Requirement
87
- requirements:
88
- - - ">="
89
- - !ruby/object:Gem::Version
90
- version: '0'
91
- type: :development
92
- prerelease: false
93
- version_requirements: !ruby/object:Gem::Requirement
94
- requirements:
95
- - - ">="
96
- - !ruby/object:Gem::Version
97
- version: '0'
98
- - !ruby/object:Gem::Dependency
99
- name: covered
100
- requirement: !ruby/object:Gem::Requirement
101
- requirements:
102
- - - "~>"
103
- - !ruby/object:Gem::Version
104
- version: '0.10'
105
- type: :development
106
- prerelease: false
107
- version_requirements: !ruby/object:Gem::Requirement
108
- requirements:
109
- - - "~>"
110
- - !ruby/object:Gem::Version
111
- version: '0.10'
112
- - !ruby/object:Gem::Dependency
113
- name: rspec
114
- requirement: !ruby/object:Gem::Requirement
115
- requirements:
116
- - - "~>"
117
- - !ruby/object:Gem::Version
118
- version: '3.6'
119
- type: :development
120
- prerelease: false
121
- version_requirements: !ruby/object:Gem::Requirement
122
- requirements:
123
- - - "~>"
124
- - !ruby/object:Gem::Version
125
- version: '3.6'
126
71
  description:
127
72
  email:
128
73
  executables: []
@@ -135,10 +80,14 @@ files:
135
80
  - lib/live/resolver.rb
136
81
  - lib/live/version.rb
137
82
  - lib/live/view.rb
83
+ - license.md
84
+ - readme.md
138
85
  homepage: https://github.com/socketry/live
139
86
  licenses:
140
87
  - MIT
141
- metadata: {}
88
+ metadata:
89
+ documentation_uri: https://socketry.github.io/live/
90
+ source_code_uri: https://github.com/socketry/live.git
142
91
  post_install_message:
143
92
  rdoc_options: []
144
93
  require_paths:
@@ -147,14 +96,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
147
96
  requirements:
148
97
  - - ">="
149
98
  - !ruby/object:Gem::Version
150
- version: 2.5.0
99
+ version: '3.1'
151
100
  required_rubygems_version: !ruby/object:Gem::Requirement
152
101
  requirements:
153
102
  - - ">="
154
103
  - !ruby/object:Gem::Version
155
104
  version: '0'
156
105
  requirements: []
157
- rubygems_version: 3.4.19
106
+ rubygems_version: 3.5.3
158
107
  signing_key:
159
108
  specification_version: 4
160
109
  summary: Live HTML tags updated via a WebSocket.
metadata.gz.sig CHANGED
Binary file