live 0.5.1 → 0.7.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 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