wedge 0.0.1 → 0.0.2
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 +4 -4
- data/README.md +6 -6
- data/lib/roda/plugins/wedge.rb +10 -4
- data/lib/wedge.rb +8 -4
- data/lib/wedge/component.rb +25 -4
- data/lib/wedge/config.rb +13 -7
- data/lib/wedge/utilis/nokogiri.rb +3 -0
- data/lib/wedge/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 104befdb183707b249388b194de614ac87ebc47c
|
4
|
+
data.tar.gz: 9b007fe20e46d8207c4334c9defeebf8007e0fd3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a99bbb4dddcea088c59fc6e5600c169c9c77e025c73bbe59f68c97c4945a489b9d814c2a65505ed30b48f7f78ca4fcb25cf5d06cad4f5cabb317ab4e91fadfcb
|
7
|
+
data.tar.gz: 860a55ee486f858393be4bcb539fa94a23123f6adbcfb732850379e4e908c442acf0a6b0be0a75325dc2a13468f7787a0fd5f4f971307ede66ef31d8cf7c32ad
|
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
#
|
1
|
+
# Wedge
|
2
2
|
|
3
3
|
Components for Ruby.
|
4
4
|
|
@@ -7,7 +7,7 @@ Components for Ruby.
|
|
7
7
|
Add this line to your application's Gemfile:
|
8
8
|
|
9
9
|
```ruby
|
10
|
-
gem '
|
10
|
+
gem 'wedge'
|
11
11
|
```
|
12
12
|
|
13
13
|
And then execute:
|
@@ -16,13 +16,13 @@ And then execute:
|
|
16
16
|
|
17
17
|
Or install it yourself as:
|
18
18
|
|
19
|
-
$ gem install
|
19
|
+
$ gem install wedge
|
20
20
|
|
21
21
|
## Basic Usage
|
22
22
|
|
23
23
|
### Setup
|
24
24
|
|
25
|
-
class BasicComponent <
|
25
|
+
class BasicComponent < Wedge::Component
|
26
26
|
setup do |config|
|
27
27
|
config.name :basic
|
28
28
|
end
|
@@ -34,7 +34,7 @@ Or install it yourself as:
|
|
34
34
|
|
35
35
|
### Call
|
36
36
|
|
37
|
-
|
37
|
+
Wedge[:basic].foo
|
38
38
|
|
39
39
|
### Response
|
40
40
|
|
@@ -42,7 +42,7 @@ Or install it yourself as:
|
|
42
42
|
|
43
43
|
## Contributing
|
44
44
|
|
45
|
-
1. Fork it ( https://github.com/[my-github-username]/
|
45
|
+
1. Fork it ( https://github.com/[my-github-username]/Wedge/fork )
|
46
46
|
2. Create your feature branch (`git checkout -b my-new-feature`)
|
47
47
|
3. Commit your changes (`git commit -am 'Add some feature'`)
|
48
48
|
4. Push to the branch (`git push origin my-new-feature`)
|
data/lib/roda/plugins/wedge.rb
CHANGED
@@ -16,12 +16,12 @@ class Roda
|
|
16
16
|
v.each { |p| ::Wedge.config.plugin p }
|
17
17
|
when 'scope'
|
18
18
|
begin
|
19
|
-
::Wedge.config.scope v.new
|
19
|
+
::Wedge.config.opts[:scope] = v.new
|
20
20
|
rescue
|
21
|
-
::Wedge.config.scope v.new(
|
21
|
+
::Wedge.config.opts[:scope] = v.new({})
|
22
22
|
end
|
23
23
|
else
|
24
|
-
::Wedge.config.
|
24
|
+
::Wedge.config.opts[k.to_sym] = v
|
25
25
|
end
|
26
26
|
end
|
27
27
|
end
|
@@ -81,7 +81,13 @@ class Roda
|
|
81
81
|
|
82
82
|
res
|
83
83
|
else
|
84
|
-
|
84
|
+
scope.response.headers['Content-Type'] = 'application/javascript; charset=UTF-8'
|
85
|
+
|
86
|
+
if ::Wedge.opts[:debug]
|
87
|
+
"#{::Wedge.javascript(component)}\n//# sourceMappingURL=/assets/wedge/#{component}.map"
|
88
|
+
else
|
89
|
+
::Wedge.javascript(component)
|
90
|
+
end
|
85
91
|
end
|
86
92
|
end
|
87
93
|
end
|
data/lib/wedge.rb
CHANGED
@@ -24,7 +24,7 @@ module Wedge
|
|
24
24
|
attr_accessor :requires, :loaded_requires, :loaded_requires_events, :javascript_cache,
|
25
25
|
:wedge_javascript_loaded
|
26
26
|
|
27
|
-
def
|
27
|
+
def compile_opal
|
28
28
|
javascript
|
29
29
|
end
|
30
30
|
|
@@ -121,11 +121,15 @@ module Wedge
|
|
121
121
|
else
|
122
122
|
Wedge.loaded_requires ||= []
|
123
123
|
Wedge.loaded_requires_events ||= []
|
124
|
-
reqs = Wedge.requires[options[:name].to_sym]
|
124
|
+
reqs = Wedge.requires[options[:name].to_sym]
|
125
125
|
promise = Promise.new
|
126
|
-
requires = get_requires(reqs)
|
127
126
|
|
128
|
-
|
127
|
+
if reqs
|
128
|
+
requires = get_requires(reqs.dup)
|
129
|
+
load_requires(requires.dup, promise)
|
130
|
+
else
|
131
|
+
promise.resolve true
|
132
|
+
end
|
129
133
|
|
130
134
|
promise.then do
|
131
135
|
load_comp(options).then do
|
data/lib/wedge/component.rb
CHANGED
@@ -2,7 +2,7 @@ module Wedge
|
|
2
2
|
class Component
|
3
3
|
include Methods
|
4
4
|
|
5
|
-
|
5
|
+
ALLOWED_CLIENT_OPTS = %i(name path_name method_args method_called cache tmpl key cache_assets assets_key assets_url requires object_events)
|
6
6
|
|
7
7
|
class << self
|
8
8
|
# Override the default new behaviour
|
@@ -168,7 +168,7 @@ module Wedge
|
|
168
168
|
end
|
169
169
|
|
170
170
|
def client_wedge_opts
|
171
|
-
wedge_config.opts_dup.
|
171
|
+
wedge_config.opts_dup.select {|k, v| ALLOWED_CLIENT_OPTS.include? k }
|
172
172
|
end
|
173
173
|
|
174
174
|
def wedge_on_server(&block)
|
@@ -192,7 +192,8 @@ module Wedge
|
|
192
192
|
|
193
193
|
HTTP.post("/#{wedge_opts.assets_url}/#{path_name}.call",
|
194
194
|
headers: {
|
195
|
-
'X-CSRF-TOKEN' => Element.find('meta[name=_csrf]').attr('content')
|
195
|
+
'X-CSRF-TOKEN' => Element.find('meta[name=_csrf]').attr('content'),
|
196
|
+
'X-WEDGE-METHOD-REQUEST' => true
|
196
197
|
},
|
197
198
|
payload: payload) do |response|
|
198
199
|
|
@@ -216,6 +217,16 @@ module Wedge
|
|
216
217
|
end
|
217
218
|
end
|
218
219
|
|
220
|
+
def wedge_scope
|
221
|
+
wedge_opts[:scope]
|
222
|
+
end
|
223
|
+
alias_method :scope, :wedge_scope
|
224
|
+
|
225
|
+
def wedge_cache
|
226
|
+
wedge_opts[:cache]
|
227
|
+
end
|
228
|
+
alias_method :cache, :wedge_cache
|
229
|
+
|
219
230
|
# Duplicate of class condig [Config]
|
220
231
|
# @return config [Config]
|
221
232
|
def wedge_config
|
@@ -281,6 +292,16 @@ module Wedge
|
|
281
292
|
end
|
282
293
|
alias_method :function, :wedge_function
|
283
294
|
|
295
|
+
def wedge_from_server?
|
296
|
+
!defined?(request) || (request && !request.env.include?('HTTP_X_WEDGE_METHOD_REQUEST'))
|
297
|
+
end
|
298
|
+
alias_method :from_server?, :wedge_from_server?
|
299
|
+
|
300
|
+
def wedge_from_client?
|
301
|
+
!wedge_from_server?
|
302
|
+
end
|
303
|
+
alias_method :from_client?, :wedge_from_client?
|
304
|
+
|
284
305
|
def wedge_javascript
|
285
306
|
return unless server?
|
286
307
|
|
@@ -295,7 +316,7 @@ module Wedge
|
|
295
316
|
alias_method :javscript, :wedge_javascript
|
296
317
|
|
297
318
|
def client_wedge_opts
|
298
|
-
wedge_config.opts_dup.
|
319
|
+
wedge_config.opts_dup.select {|k, v| ALLOWED_CLIENT_OPTS.include? k }
|
299
320
|
end
|
300
321
|
alias_method :client_opts, :client_wedge_opts
|
301
322
|
|
data/lib/wedge/config.rb
CHANGED
@@ -16,6 +16,7 @@ module Wedge
|
|
16
16
|
def initialize(opts = {})
|
17
17
|
opts = {
|
18
18
|
cache_assets: false,
|
19
|
+
cache: OpenStruct.new,
|
19
20
|
assets_key: false,
|
20
21
|
tmpl: IndifferentHash.new,
|
21
22
|
scope: false,
|
@@ -48,18 +49,13 @@ module Wedge
|
|
48
49
|
opts.is_plugin
|
49
50
|
end
|
50
51
|
|
51
|
-
%w(scope assets_url cache_assets assets_key).each do |m|
|
52
|
-
define_method m do |v|
|
53
|
-
opts[m] = v
|
54
|
-
end
|
55
|
-
end
|
56
|
-
|
57
52
|
# Used to set and update the dom
|
58
53
|
def dom
|
59
54
|
if server?
|
60
55
|
yield
|
61
56
|
end
|
62
57
|
end
|
58
|
+
alias_method :setup, :dom
|
63
59
|
|
64
60
|
# Set the raw html
|
65
61
|
# @param html [String]
|
@@ -88,6 +84,12 @@ module Wedge
|
|
88
84
|
opts.to_h.inject({}) {|copy, (key, value)| copy[key] = value.dup rescue value; copy}
|
89
85
|
end
|
90
86
|
|
87
|
+
%w(scope assets_url cache_assets assets_key debug).each do |m|
|
88
|
+
define_method m do |v|
|
89
|
+
opts[m] = v
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
91
93
|
def plugin(name)
|
92
94
|
unless RUBY_ENGINE == 'opal'
|
93
95
|
require "wedge/plugins/#{name}"
|
@@ -108,7 +110,11 @@ module Wedge
|
|
108
110
|
previous_requires.each { |p| requires.delete(p) }
|
109
111
|
|
110
112
|
requires.each do |r|
|
111
|
-
|
113
|
+
begin
|
114
|
+
klass = Wedge.components[r.to_sym].klass
|
115
|
+
rescue
|
116
|
+
raise "No component named: #{r}"
|
117
|
+
end
|
112
118
|
o = klass.client_wedge_opts.select do |k, v|
|
113
119
|
%w(path_name name requires).include? k.to_s
|
114
120
|
end
|
data/lib/wedge/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wedge
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- cj
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-04-
|
11
|
+
date: 2015-04-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: opal
|