clearwater 0.3.1 → 1.0.0.beta1

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
  SHA1:
3
- metadata.gz: afbb0bbf131048da2de56cb1d537494ae700f50d
4
- data.tar.gz: 7f8af1b4c90ec41c1b364694236e413eab834033
3
+ metadata.gz: 7209c39df1f317e2f636b5b18d19c800c051313e
4
+ data.tar.gz: de84c3390eb8008f4e4bad72382816c78417c15e
5
5
  SHA512:
6
- metadata.gz: 1b38f6d804c0ce1f75f50f26f54fdb0d86145d2aadc3bad8fdd0dc1899bb54ef400490c56d13ee73754eb4007a011ec72599f5ac75671a3cdd7b7a9918f49d92
7
- data.tar.gz: c395b5559c0fe7cf55fc21da688ecbb5e71c4553a4af70ce46b3a7677953a69ff13ffd6b2e0b5e655890aa41969d4951c84d4ca3471338b20c16a6d914ab6f8b
6
+ metadata.gz: 241b9c7654b51e7600ad9d2d9e77547f923035373f128ed9d4f221d21395f9a60cb38a51a398af34c5247c4bc55a1742df094b93e1a9876c7de480bc6c6c503d
7
+ data.tar.gz: 93657a5db3cf006c60b146ea50fea5ce8f141b6513f424c8d7cc5601d9aca430996f47005871a4b102b241a06a53f4fac75520824c79141b3d5d4d8352abfaf7
@@ -1,3 +1,3 @@
1
1
  module Clearwater
2
- VERSION = "0.3.1"
2
+ VERSION = "1.0.0.beta1"
3
3
  end
data/lib/clearwater.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  require "opal"
2
- require "opal/browser"
2
+ require "bowser"
3
3
 
4
4
  module Clearwater
5
5
  require_relative "clearwater/version"
@@ -1,7 +1,4 @@
1
- require 'browser'
2
- require 'browser/delay'
3
- require 'browser/event'
4
- require 'browser/animation_frame'
1
+ require 'bowser'
5
2
  require 'clearwater/router'
6
3
  require 'clearwater/application_registry'
7
4
  require 'native'
@@ -20,8 +17,8 @@ module Clearwater
20
17
  @router = options.fetch(:router) { Router.new }
21
18
  @component = options.fetch(:component) { nil }
22
19
  @element = options.fetch(:element) { nil }
23
- @document = options.fetch(:document) { $document }
24
- @window = options.fetch(:window) { $window }
20
+ @document = options.fetch(:document) { Bowser.document }
21
+ @window = options.fetch(:window) { Bowser.window }
25
22
  @on_render = []
26
23
 
27
24
  router.application = self
@@ -64,7 +61,7 @@ module Clearwater
64
61
  return
65
62
  end
66
63
 
67
- animation_frame { perform_render }
64
+ @window.animation_frame { perform_render }
68
65
 
69
66
  nil
70
67
  end
@@ -0,0 +1,67 @@
1
+ require 'bowser/element'
2
+ require 'clearwater/virtual_dom'
3
+
4
+ module Clearwater
5
+ module BlackBoxNode
6
+ def node
7
+ VirtualDOM.node :div
8
+ end
9
+
10
+ def mount node
11
+ end
12
+
13
+ def update previous, node
14
+ end
15
+
16
+ def unmount node
17
+ end
18
+
19
+ def render
20
+ Renderable.new(self)
21
+ end
22
+
23
+ class Renderable
24
+ def initialize delegate
25
+ @delegate = delegate
26
+ end
27
+
28
+ def wrap node
29
+ Bowser::Element.new(node)
30
+ end
31
+
32
+ def create_element
33
+ wrap(VirtualDOM.create_element(@delegate.node))
34
+ end
35
+
36
+ %x{
37
+ // Use the virtual-dom Widget type
38
+ Opal.defn(self, 'type', 'Widget');
39
+
40
+ // virtual-dom Widget init hook. Must return a real DOM node.
41
+ // We call the Ruby-land #mount method so we can define hooks for this
42
+ // in Ruby instead of requiring users to drop down to JS.
43
+ Opal.defn(self, 'init', function() {
44
+ var self = this;
45
+ var node = #{create_element};
46
+ #{@delegate.mount(`node`)};
47
+ return node.native;
48
+ });
49
+
50
+ // virtual-dom update hook
51
+ // previous: the instance of this object used in the previous render
52
+ // node: a Bowser-wrapped version of the DOM node
53
+ Opal.defn(self, 'update', function(previous, node) {
54
+ var self = this;
55
+ #{@delegate.update(`previous.delegate`, wrap(`node`))};
56
+ });
57
+
58
+ // virtual-dom destroy hook
59
+ // node: Bowser-wrapped version of the DOM node
60
+ Opal.defn(self, 'destroy', function(node) {
61
+ var self = this;
62
+ #{@delegate.unmount(wrap(`node`))};
63
+ });
64
+ }
65
+ end
66
+ end
67
+ end
@@ -1,13 +1,9 @@
1
1
  require 'clearwater/virtual_dom'
2
- require 'browser'
3
2
 
4
3
  module Clearwater
5
4
  module Component
6
5
  attr_accessor :router, :outlet
7
6
 
8
- def render
9
- end
10
-
11
7
  HTML_TAGS = %w(
12
8
  a
13
9
  abbr
@@ -122,27 +118,8 @@ module Clearwater
122
118
  wbr
123
119
  )
124
120
 
125
- HTML_TAGS.each do |tag_name|
126
- define_method(tag_name) do |attributes, content|
127
- tag(tag_name, attributes, content)
128
- end
129
- end
130
-
131
- def tag tag_name, attributes=nil, content=nil
132
- if !(`attributes.$$is_hash || attributes === #{nil}`)
133
- content = attributes
134
- attributes = nil
135
- end
136
-
137
- VirtualDOM.node(
138
- tag_name,
139
- Component.sanitize_attributes(attributes),
140
- Component.sanitize_content(content)
141
- )
142
- end
143
-
144
121
  def params
145
- router.params_for_path(router.current_path)
122
+ router.params
146
123
  end
147
124
 
148
125
  def self.sanitize_attributes attributes
@@ -162,7 +139,7 @@ module Clearwater
162
139
  attributes.each do |key, handler|
163
140
  if key[0, 2] == 'on'
164
141
  attributes[key] = proc do |event|
165
- handler.call(Browser::Event.new(event))
142
+ handler.call(Bowser::Event.new(event))
166
143
  end
167
144
  end
168
145
  end
@@ -192,6 +169,31 @@ module Clearwater
192
169
  }
193
170
  end
194
171
 
172
+ # Default render method for stubbing
173
+ def render
174
+ end
175
+
176
+ module_function
177
+
178
+ HTML_TAGS.each do |tag_name|
179
+ define_method(tag_name) do |attributes, content|
180
+ tag(tag_name, attributes, content)
181
+ end
182
+ end
183
+
184
+ def tag tag_name, attributes=nil, content=nil
185
+ if !(`attributes.$$is_hash || attributes === #{nil}`)
186
+ content = attributes
187
+ attributes = nil
188
+ end
189
+
190
+ VirtualDOM.node(
191
+ tag_name,
192
+ Component.sanitize_attributes(attributes),
193
+ Component.sanitize_content(content)
194
+ )
195
+ end
196
+
195
197
  def call &block
196
198
  Clearwater::Application::AppRegistry.render_all(&block)
197
199
  end
@@ -0,0 +1,30 @@
1
+ module Clearwater
2
+ class DOMReference
3
+ def mount node, previous
4
+ @node = node
5
+ end
6
+
7
+ def unmount node, previous
8
+ end
9
+
10
+ def method_missing *args, &block
11
+ @node.public_send *args, &block
12
+ end
13
+
14
+ def wrap node
15
+ Bowser::Element.new(node)
16
+ end
17
+
18
+ %x{
19
+ Opal.defn(self, 'hook', function(node, name, previous) {
20
+ var self = this;
21
+ #{mount(wrap(`node`), `previous`)};
22
+ });
23
+
24
+ Opal.defn(self, 'unhook', function(node, name, previous) {
25
+ var self = this;
26
+ #{unmount(wrap(`node`), `previous`)};
27
+ });
28
+ }
29
+ end
30
+ end
@@ -1,22 +1,5 @@
1
1
  require 'clearwater/component'
2
- require 'browser'
3
- require 'browser/history'
4
-
5
- # TODO: Remove this once opal-browser supports coordinates natively
6
- # for touch events.
7
- module Browser
8
- class Event
9
- class Touch
10
- def x
11
- `#@native.pageX`
12
- end
13
-
14
- def y
15
- `#@native.pageY`
16
- end
17
- end
18
- end
19
- end
2
+ require 'bowser'
20
3
 
21
4
  class Link
22
5
  include Clearwater::Component
@@ -56,6 +39,8 @@ class Link
56
39
  end
57
40
 
58
41
  def handle_touch event
42
+ document = Bowser.document
43
+
59
44
  # All links will treat this as touch because this is a touch device
60
45
  @@touch = true
61
46
  moved = false
@@ -78,24 +63,32 @@ class Link
78
63
  navigate event
79
64
  end
80
65
 
81
- $document.off 'touchmove', &touch_move_handler
82
- $document.off 'touchend', &touch_end_handler
66
+ document.off 'touchmove', &touch_move_handler
67
+ document.off 'touchend', &touch_end_handler
83
68
  end
84
69
 
85
- $document.on 'touchmove', &touch_move_handler
86
- $document.on 'touchend', &touch_end_handler
70
+ document.on 'touchmove', &touch_move_handler
71
+ document.on 'touchend', &touch_end_handler
87
72
  end
88
73
 
89
74
  def navigate event
90
75
  # Don't handle middle-button clicks and clicks with modifier keys. Let them
91
76
  # pass through to the browser's default handling or the user's modified handling.
92
- unless event.meta? || event.shift? || event.ctrl? || event.alt? || (event.respond_to?(:button) && event.button == 1)
93
- event.prevent
94
- if href != $window.location.path
95
- $window.history.push href
96
- call
97
- $window.scroll.to x: 0, y: 0
98
- end
77
+ modified = (
78
+ event.meta? ||
79
+ event.shift? ||
80
+ event.ctrl? ||
81
+ event.alt? ||
82
+ event.button == 1
83
+ )
84
+
85
+ return if modified
86
+
87
+ event.prevent
88
+ window = Bowser.window
89
+ if href != window.location.path
90
+ Clearwater::Router.navigate_to href
91
+ window.scroll 0, 0
99
92
  end
100
93
  end
101
94
 
@@ -112,7 +105,7 @@ class Link
112
105
  end
113
106
 
114
107
  def check_active href
115
- if $window.location.path == href
108
+ if Bowser.window.location.path == href
116
109
  class_name = (
117
110
  @attributes.delete(:class_name) ||
118
111
  @attributes.delete(:class) ||
@@ -6,9 +6,9 @@ module Clearwater
6
6
  attr_accessor :application
7
7
 
8
8
  def initialize options={}, &block
9
- @window = options.fetch(:window) { Native(`window`) }
10
- @location = options.fetch(:location) { window[:location] }
11
- @history = options.fetch(:history) { window[:history] }
9
+ @window = options.fetch(:window) { Bowser.window }
10
+ @location = options.fetch(:location) { window.location }
11
+ @history = options.fetch(:history) { window.history }
12
12
  @routes = RouteCollection.new(self)
13
13
  @application = options[:application]
14
14
 
@@ -32,17 +32,17 @@ module Clearwater
32
32
  routes_for_path(path).map(&:target)
33
33
  end
34
34
 
35
- def params_for_path path
35
+ def params path=current_path
36
36
  path_parts = path.split("/").reject(&:empty?)
37
37
  canonical_parts = canonical_path_for_path(path).split("/").reject(&:empty?)
38
38
 
39
39
  canonical_parts.each_with_index.reduce({}) { |params, (part, index)|
40
40
  if part.start_with? ":"
41
41
  param = part[1..-1]
42
- params.merge! param => path_parts[index]
43
- else
44
- params
42
+ params[param] = path_parts[index]
45
43
  end
44
+
45
+ params
46
46
  }
47
47
  end
48
48
 
@@ -50,21 +50,38 @@ module Clearwater
50
50
  end
51
51
 
52
52
  def current_path
53
- location[:pathname]
53
+ location.path
54
+ end
55
+
56
+ def self.current_path
57
+ location.path
58
+ end
59
+
60
+ def current_url
61
+ location.href
62
+ end
63
+
64
+ def self.current_url
65
+ location.href
66
+ end
67
+
68
+ def self.location
69
+ Bowser.window.location
54
70
  end
55
71
 
56
72
  def navigate_to path
57
- push_state path
73
+ history.push path
58
74
  set_outlets
59
75
  render_application
60
76
  end
61
77
 
62
- def navigate_to_remote path
63
- location[:href] = path
78
+ def self.navigate_to path
79
+ Bowser.window.history.push path
80
+ render_all_apps
64
81
  end
65
82
 
66
- def current_url
67
- location[:href]
83
+ def navigate_to_remote path
84
+ location.href = path
68
85
  end
69
86
 
70
87
  def back
@@ -85,14 +102,14 @@ module Clearwater
85
102
 
86
103
  private
87
104
 
88
- def push_state path
89
- history.pushState({}, nil, path)
90
- end
91
-
92
105
  def render_application
93
106
  if application && application.component
94
107
  application.component.call
95
108
  end
96
109
  end
110
+
111
+ def self.render_all_apps
112
+ Clearwater::Application.render
113
+ end
97
114
  end
98
115
  end
@@ -1,4 +1,3 @@
1
- require 'browser'
2
1
  require 'clearwater/virtual_dom/js/virtual_dom.js'
3
2
 
4
3
  module VirtualDOM
@@ -40,7 +39,7 @@ module VirtualDOM
40
39
  end
41
40
 
42
41
  class Document
43
- def initialize(root=$document.create_element('div'))
42
+ def initialize(root=Bowser.document.create_element('div'))
44
43
  @root = root
45
44
  end
46
45
 
data/opal/clearwater.rb CHANGED
@@ -1,4 +1,3 @@
1
- require 'browser'
2
1
  require 'clearwater/component'
3
2
  require 'clearwater/svg_component'
4
3
  require 'clearwater/cached_render'
@@ -1,5 +1,6 @@
1
1
  require 'clearwater'
2
2
  require 'clearwater/svg_component'
3
+ require 'bowser'
3
4
 
4
5
  module Clearwater
5
6
  RSpec.describe Application do
@@ -33,7 +34,7 @@ module Clearwater
33
34
  end
34
35
  end.new
35
36
  }
36
- let(:element) { $document.create_element('div') }
37
+ let(:element) { Bowser.document.create_element('div') }
37
38
 
38
39
  it 'renders to the specified element' do
39
40
  app.perform_render
@@ -0,0 +1,64 @@
1
+ require 'clearwater/black_box_node'
2
+
3
+ module Clearwater
4
+ describe BlackBoxNode do
5
+ let(:object) {
6
+ Class.new do
7
+ include Clearwater::BlackBoxNode
8
+
9
+ attr_reader :last_update
10
+
11
+ def node
12
+ VirtualDOM.node :span, { id: 'foo' }, ['hi']
13
+ end
14
+
15
+ def mount node
16
+ @mounted = true
17
+ end
18
+
19
+ def update
20
+ @last_update = Time.now
21
+ end
22
+
23
+ def unmount
24
+ @mounted = false
25
+ end
26
+
27
+ def mounted?
28
+ !!@mounted
29
+ end
30
+ end.new
31
+ }
32
+ let(:renderable) { BlackBoxNode::Renderable.new(object) }
33
+
34
+ it 'has the special type of "Widget"' do
35
+ r = renderable
36
+ expect(`r.type`).to eq 'Widget'
37
+ end
38
+
39
+ it 'uses the delegate node to render into the DOM' do
40
+ r = renderable
41
+ expect(`#{renderable.create_element}.native.outerHTML`).to eq '<span id="foo">hi</span>'
42
+ end
43
+
44
+ it 'calls mount when inserted into the DOM' do
45
+ r = renderable
46
+ `r.init()`
47
+ expect(object).to be_mounted
48
+ end
49
+
50
+ it 'calls unmount when removed from the DOM' do
51
+ r = renderable
52
+ `r.init()`
53
+ `r.destroy()`
54
+ expect(object).not_to be_mounted
55
+ end
56
+
57
+ it 'calls update when updated in the DOM' do
58
+ r = renderable
59
+ `r.update({})`
60
+
61
+ expect(object.last_update).not_to be_nil
62
+ end
63
+ end
64
+ end
@@ -0,0 +1,15 @@
1
+ require 'clearwater/dom_reference'
2
+
3
+ module Clearwater
4
+ describe DOMReference do
5
+ let(:ref) { DOMReference.new }
6
+
7
+ it 'delegates to the DOM node passed in on mount' do
8
+ r = ref
9
+
10
+ `r.hook({ value: 'hi' })`
11
+
12
+ expect(r.value).to eq 'hi'
13
+ end
14
+ end
15
+ end
@@ -1,4 +1,5 @@
1
1
  require 'clearwater/router'
2
+ require 'ostruct'
2
3
 
3
4
  module Clearwater
4
5
  RSpec.describe Router do
@@ -22,7 +23,7 @@ module Clearwater
22
23
  end
23
24
 
24
25
  it 'gets the params for a given path' do
25
- expect(router.params_for_path('/articles/foo')).to eq article_id: 'foo'
26
+ expect(router.params('/articles/foo')).to eq article_id: 'foo'
26
27
  end
27
28
 
28
29
  it 'gets the components for a given path' do
@@ -34,18 +35,18 @@ module Clearwater
34
35
  end
35
36
 
36
37
  it 'gets the current path' do
37
- location = { pathname: '/foo' }
38
+ location = OpenStruct.new(path: '/foo')
38
39
  router = Router.new(location: location)
39
40
 
40
41
  expect(router.current_path).to eq '/foo'
41
42
 
42
- location[:pathname] = '/bar'
43
+ location.path = '/bar'
43
44
 
44
45
  expect(router.current_path).to eq '/bar'
45
46
  end
46
47
 
47
48
  it 'gets the params from the path' do
48
- expect(router.params_for_path('/articles/123')).to eq({ article_id: '123' })
49
+ expect(router.params('/articles/123')).to eq({ article_id: '123' })
49
50
  end
50
51
  end
51
52
  end
@@ -1,15 +1,5 @@
1
1
  require 'clearwater/component'
2
2
 
3
- # When running specs from the CLI, it doesn't define this class
4
- unless defined? Browser::Event
5
- module Browser
6
- class Event
7
- def initialize event
8
- end
9
- end
10
- end
11
- end
12
-
13
3
  module Clearwater
14
4
  RSpec.describe Component do
15
5
  let(:component_class) {
@@ -32,13 +22,13 @@ module Clearwater
32
22
  it 'sanitizes element attributes' do
33
23
  attributes = Component.sanitize_attributes({
34
24
  class: 'foo',
35
- onclick: proc { |event| expect(event).to be_a Browser::Event },
25
+ onclick: proc { |event| expect(event).to be_a Bowser::Event },
36
26
  })
37
27
 
38
28
  # Renames :class to :class_name
39
29
  expect(attributes[:class_name]).to eq 'foo'
40
30
 
41
- # Wraps yielded events in a Browser::Event
31
+ # Wraps yielded events in a Bowser::Event
42
32
  attributes[:onclick].call(`document.createEvent('MouseEvent')`)
43
33
  end
44
34
 
@@ -57,7 +47,7 @@ module Clearwater
57
47
  it 'retrieves params from the router' do
58
48
  router = double('Router')
59
49
  params = { article_id: 123 }
60
- allow(router).to receive(:params_for_path) { params }
50
+ allow(router).to receive(:params) { params }
61
51
  allow(router).to receive(:current_path) { '/articles/123' }
62
52
  component.router = router
63
53
 
metadata CHANGED
@@ -1,97 +1,97 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: clearwater
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 1.0.0.beta1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jamie Gaskins
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-12-04 00:00:00.000000000 Z
11
+ date: 2016-01-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: opal
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ~>
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0.7'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ~>
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0.7'
27
27
  - !ruby/object:Gem::Dependency
28
- name: opal-browser
28
+ name: bowser
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - ~>
32
32
  - !ruby/object:Gem::Version
33
- version: '0'
33
+ version: 0.1.2
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
38
+ - - ~>
39
39
  - !ruby/object:Gem::Version
40
- version: '0'
40
+ version: 0.1.2
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: bundler
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ~>
46
46
  - !ruby/object:Gem::Version
47
47
  version: '1.3'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ~>
53
53
  - !ruby/object:Gem::Version
54
54
  version: '1.3'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: opal-rspec
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - "~>"
59
+ - - ~>
60
60
  - !ruby/object:Gem::Version
61
61
  version: 0.5.0.beta2
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - "~>"
66
+ - - ~>
67
67
  - !ruby/object:Gem::Version
68
68
  version: 0.5.0.beta2
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rake
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - "~>"
73
+ - - ~>
74
74
  - !ruby/object:Gem::Version
75
75
  version: '10.1'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - "~>"
80
+ - - ~>
81
81
  - !ruby/object:Gem::Version
82
82
  version: '10.1'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: pry
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - "~>"
87
+ - - ~>
88
88
  - !ruby/object:Gem::Version
89
89
  version: '0.9'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - "~>"
94
+ - - ~>
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0.9'
97
97
  description: Front-end web framework built on Opal
@@ -101,22 +101,26 @@ executables: []
101
101
  extensions: []
102
102
  extra_rdoc_files: []
103
103
  files:
104
- - lib/clearwater.rb
105
104
  - lib/clearwater/version.rb
106
- - opal/clearwater.rb
105
+ - lib/clearwater.rb
107
106
  - opal/clearwater/application.rb
108
107
  - opal/clearwater/application_registry.rb
108
+ - opal/clearwater/black_box_node.rb
109
109
  - opal/clearwater/cached_render.rb
110
110
  - opal/clearwater/component.rb
111
+ - opal/clearwater/dom_reference.rb
111
112
  - opal/clearwater/link.rb
112
- - opal/clearwater/router.rb
113
113
  - opal/clearwater/router/route.rb
114
114
  - opal/clearwater/router/route_collection.rb
115
+ - opal/clearwater/router.rb
115
116
  - opal/clearwater/svg_component.rb
116
- - opal/clearwater/virtual_dom.rb
117
117
  - opal/clearwater/virtual_dom/js/virtual_dom.js
118
+ - opal/clearwater/virtual_dom.rb
119
+ - opal/clearwater.rb
118
120
  - spec/clearwater/application_spec.rb
121
+ - spec/clearwater/black_box_node_spec.rb
119
122
  - spec/clearwater/cached_render_spec.rb
123
+ - spec/clearwater/dom_reference_spec.rb
120
124
  - spec/clearwater/router_spec.rb
121
125
  - spec/component_spec.rb
122
126
  homepage: https://clearwater-rb.github.io/
@@ -129,22 +133,24 @@ require_paths:
129
133
  - lib
130
134
  required_ruby_version: !ruby/object:Gem::Requirement
131
135
  requirements:
132
- - - ">="
136
+ - - '>='
133
137
  - !ruby/object:Gem::Version
134
138
  version: '0'
135
139
  required_rubygems_version: !ruby/object:Gem::Requirement
136
140
  requirements:
137
- - - ">="
141
+ - - '>'
138
142
  - !ruby/object:Gem::Version
139
- version: '0'
143
+ version: 1.3.1
140
144
  requirements: []
141
145
  rubyforge_project:
142
- rubygems_version: 2.4.8
146
+ rubygems_version: 2.0.14
143
147
  signing_key:
144
148
  specification_version: 4
145
149
  summary: Front-end web framework built on Opal
146
150
  test_files:
147
151
  - spec/clearwater/application_spec.rb
152
+ - spec/clearwater/black_box_node_spec.rb
148
153
  - spec/clearwater/cached_render_spec.rb
154
+ - spec/clearwater/dom_reference_spec.rb
149
155
  - spec/clearwater/router_spec.rb
150
156
  - spec/component_spec.rb