opal-browser 0.3.3 → 0.3.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/build.yml +28 -17
- data/.github/workflows/pages.yml +21 -0
- data/.gitignore +1 -0
- data/CHANGELOG.md +10 -0
- data/Gemfile +15 -5
- data/Rakefile +32 -9
- data/bin/rake +7 -0
- data/bin/setup +8 -0
- data/config.ru +19 -12
- data/opal/browser/animation_frame.rb +1 -0
- data/opal/browser/audio/node.rb +1 -0
- data/opal/browser/audio/param_schedule.rb +1 -0
- data/opal/browser/audio.rb +2 -1
- data/opal/browser/blob.rb +1 -0
- data/opal/browser/canvas/data.rb +1 -0
- data/opal/browser/canvas/gradient.rb +1 -0
- data/opal/browser/canvas/style.rb +1 -0
- data/opal/browser/canvas/text.rb +1 -0
- data/opal/browser/canvas.rb +1 -0
- data/opal/browser/console.rb +1 -0
- data/opal/browser/cookies.rb +1 -0
- data/opal/browser/crypto.rb +1 -0
- data/opal/browser/css/declaration.rb +1 -0
- data/opal/browser/css/rule/style.rb +1 -0
- data/opal/browser/css/rule.rb +1 -0
- data/opal/browser/css/style_sheet.rb +1 -0
- data/opal/browser/database/sql.rb +1 -0
- data/opal/browser/delay.rb +1 -0
- data/opal/browser/dom/builder.rb +1 -0
- data/opal/browser/dom/character_data.rb +1 -0
- data/opal/browser/dom/document.rb +1 -0
- data/opal/browser/dom/document_fragment.rb +1 -0
- data/opal/browser/dom/document_or_shadow_root.rb +1 -0
- data/opal/browser/dom/element/attributes.rb +2 -0
- data/opal/browser/dom/element/button.rb +2 -0
- data/opal/browser/dom/element/custom.rb +2 -1
- data/opal/browser/dom/element/data.rb +2 -0
- data/opal/browser/dom/element/editable.rb +2 -0
- data/opal/browser/dom/element/form.rb +25 -1
- data/opal/browser/dom/element/iframe.rb +2 -0
- data/opal/browser/dom/element/image.rb +6 -15
- data/opal/browser/dom/element/input.rb +7 -19
- data/opal/browser/dom/element/media.rb +5 -3
- data/opal/browser/dom/element/offset.rb +2 -0
- data/opal/browser/dom/element/scroll.rb +2 -0
- data/opal/browser/dom/element/select.rb +4 -7
- data/opal/browser/dom/element/size.rb +6 -12
- data/opal/browser/dom/element/template.rb +2 -0
- data/opal/browser/dom/element/textarea.rb +3 -3
- data/opal/browser/dom/element.rb +4 -0
- data/opal/browser/dom/mutation_observer.rb +1 -0
- data/opal/browser/dom/node.rb +1 -0
- data/opal/browser/dom/node_set.rb +1 -0
- data/opal/browser/dom/text.rb +1 -0
- data/opal/browser/dom.rb +1 -0
- data/opal/browser/effects.rb +1 -0
- data/opal/browser/event/animation.rb +5 -7
- data/opal/browser/event/audio_processing.rb +5 -11
- data/opal/browser/event/base.rb +4 -6
- data/opal/browser/event/before_unload.rb +2 -0
- data/opal/browser/event/clipboard.rb +4 -7
- data/opal/browser/event/close.rb +4 -7
- data/opal/browser/event/composition.rb +4 -7
- data/opal/browser/event/custom.rb +5 -3
- data/opal/browser/event/data_transfer.rb +3 -1
- data/opal/browser/event/device_light.rb +3 -3
- data/opal/browser/event/device_motion.rb +6 -15
- data/opal/browser/event/device_orientation.rb +6 -15
- data/opal/browser/event/device_proximity.rb +5 -11
- data/opal/browser/event/drag.rb +6 -14
- data/opal/browser/event/focus.rb +4 -7
- data/opal/browser/event/gamepad.rb +3 -1
- data/opal/browser/event/hash_change.rb +4 -7
- data/opal/browser/event/keyboard.rb +2 -0
- data/opal/browser/event/message.rb +5 -11
- data/opal/browser/event/mouse.rb +20 -65
- data/opal/browser/event/page_transition.rb +3 -3
- data/opal/browser/event/pop_state.rb +3 -1
- data/opal/browser/event/progress.rb +5 -11
- data/opal/browser/event/sensor.rb +2 -0
- data/opal/browser/event/storage.rb +7 -19
- data/opal/browser/event/touch.rb +2 -0
- data/opal/browser/event/ui.rb +4 -7
- data/opal/browser/event/wheel.rb +5 -11
- data/opal/browser/event.rb +1 -0
- data/opal/browser/event_source.rb +1 -0
- data/opal/browser/form_data.rb +1 -0
- data/opal/browser/history.rb +1 -0
- data/opal/browser/http/binary.rb +1 -0
- data/opal/browser/http/request.rb +1 -0
- data/opal/browser/http/response.rb +1 -0
- data/opal/browser/immediate.rb +1 -0
- data/opal/browser/interval.rb +1 -0
- data/opal/browser/location.rb +1 -0
- data/opal/browser/navigator.rb +1 -0
- data/opal/browser/polyfill/visual_viewport.rb +1 -0
- data/opal/browser/screen.rb +1 -0
- data/opal/browser/socket.rb +1 -0
- data/opal/browser/storage.rb +1 -0
- data/opal/browser/support.rb +22 -33
- data/opal/browser/utils.rb +1 -0
- data/opal/browser/version.rb +1 -1
- data/opal/browser/visual_viewport.rb +1 -0
- data/opal/browser/window/size.rb +1 -0
- data/opal/browser/window/view.rb +1 -0
- data/opal/browser/window.rb +1 -0
- data/opal-browser.gemspec +23 -18
- data/spec/browser_runner.rb.erb +14 -0
- data/spec/browser_runner_compat.rb +29 -0
- data/{index.html.erb → spec/browser_runner_index.html.erb} +1 -5
- data/spec/database/sql_spec.rb +1 -1
- data/spec/event_spec.rb +43 -0
- data/spec/immediate_spec.rb +1 -1
- data/spec/runner.rb +3 -3
- data/spec/spec_helper_promise.rb.erb +13 -5
- metadata +206 -34
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: eb39e46b217ad59531c8e196d73683d791ed49376fa8c6742139f15fa57bb8bd
|
4
|
+
data.tar.gz: 15492a102172754413473a4e40d66d02f145c9f427a7077f4206bb5deff82bd2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5e2b7ff449a375fcf48a96224cee1ac441ab7058aa22578a215ddb90b483eaafbe771ddfee5c9a6c5e12a38e9b2eeefd51e9718b947cfc9885f6964ccc3efb49
|
7
|
+
data.tar.gz: d8fcdd4e5382884a0c43cd2f920a9f36e04e03793726c9c167aa4d3bfc5f69df59eefec58aa0f27ac7e72d46b3484e356277b0268705f5def0dc3bebba4d95a4
|
data/.github/workflows/build.yml
CHANGED
@@ -17,19 +17,29 @@ jobs:
|
|
17
17
|
combo:
|
18
18
|
- name: Chromium/Linux/Opal-master
|
19
19
|
opal: master
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
opal: 1.
|
20
|
+
opal-rspec: '1.1'
|
21
|
+
- name: Chromium/Linux/Opal-1.8
|
22
|
+
opal: 1.8
|
23
|
+
opal-rspec: '1.1'
|
24
|
+
- name: Chromium/Linux/Opal-1.7
|
25
|
+
opal: 1.7
|
26
|
+
opal-rspec: '1.0'
|
27
|
+
- name: Chromium/Linux/Opal-1.5
|
28
|
+
opal: 1.5
|
29
|
+
- name: Chromium/Linux/Opal-1.5/PromiseV2
|
30
|
+
opal: 1.5
|
24
31
|
promise: v2
|
25
32
|
- name: Chromium/Linux/Opal-1.3
|
26
33
|
opal: 1.3
|
27
|
-
- name: Chromium/Linux/Opal-1.0
|
28
|
-
opal:
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
34
|
+
- name: Chromium/Linux/Opal-1.0/Ruby-3.1
|
35
|
+
opal: 1.1
|
36
|
+
ruby: 3.1
|
37
|
+
- name: Chromium/Linux/Ruby-head
|
38
|
+
ruby: head
|
39
|
+
- name: Chromium/Linux/Ruby-3.1
|
40
|
+
ruby: '3.1'
|
41
|
+
- name: Chromium/Linux/Ruby-3.0
|
42
|
+
ruby: '3.0'
|
33
43
|
- name: Firefox/Linux
|
34
44
|
browser: gecko
|
35
45
|
- name: Chromium/Windows
|
@@ -55,21 +65,22 @@ jobs:
|
|
55
65
|
- uses: actions/checkout@v2
|
56
66
|
- name: set environment variables
|
57
67
|
run: |
|
58
|
-
echo "OPAL_VERSION=${{ matrix.combo.opal || '1.
|
68
|
+
echo "OPAL_VERSION=${{ matrix.combo.opal || '1.8' }}" >> $GITHUB_ENV
|
69
|
+
echo "OPAL_RSPEC_VERSION=${{ matrix.combo.opal-rspec || '' }}" >> $GITHUB_ENV
|
59
70
|
echo "OPAL_BROWSER_PROMISE=${{ matrix.combo.promise || 'v1' }}" >> $GITHUB_ENV
|
60
71
|
- uses: ruby/setup-ruby@v1
|
61
72
|
with:
|
62
|
-
ruby-version: ${{ matrix.combo.ruby || '3.
|
73
|
+
ruby-version: ${{ matrix.combo.ruby || '3.2' }}
|
63
74
|
- run: bundle lock
|
64
75
|
- uses: actions/cache@v2
|
65
76
|
with:
|
66
77
|
path: ./vendor/bundle
|
67
|
-
key: ${{ runner.os }}-${{ matrix.combo.ruby || '3.
|
78
|
+
key: ${{ runner.os }}-${{ matrix.combo.ruby || '3.2' }}-gems-${{ matrix.combo.opal || '1.8' }}-${{ github.ref }}-${{ hashFiles('**/Gemfile.lock') }}
|
68
79
|
restore-keys: |
|
69
|
-
${{ runner.os }}-${{ matrix.combo.ruby || '3.
|
70
|
-
${{ runner.os }}-${{ matrix.combo.ruby || '3.
|
71
|
-
${{ runner.os }}-${{ matrix.combo.ruby || '3.
|
72
|
-
${{ runner.os }}-${{ matrix.combo.ruby || '3.
|
80
|
+
${{ runner.os }}-${{ matrix.combo.ruby || '3.2' }}-gems-${{ matrix.combo.opal || '1.8' }}-${{ github.ref }}
|
81
|
+
${{ runner.os }}-${{ matrix.combo.ruby || '3.2' }}-gems-${{ matrix.combo.opal || '1.8' }}-master
|
82
|
+
${{ runner.os }}-${{ matrix.combo.ruby || '3.2' }}-gems-${{ matrix.combo.opal || '1.8' }}-
|
83
|
+
${{ runner.os }}-${{ matrix.combo.ruby || '3.2' }}-gems-
|
73
84
|
- name: bundle install
|
74
85
|
run: |
|
75
86
|
bundle config path $PWD/vendor/bundle
|
@@ -0,0 +1,21 @@
|
|
1
|
+
name: Build and Deploy GH Pages
|
2
|
+
on: [push]
|
3
|
+
jobs:
|
4
|
+
pages:
|
5
|
+
concurrency: ci-${{ github.ref }} # Recommended if you intend to make multiple deployments in quick succession.
|
6
|
+
runs-on: ubuntu-latest
|
7
|
+
steps:
|
8
|
+
- name: Checkout 🛎️
|
9
|
+
uses: actions/checkout@v2
|
10
|
+
- name: Setup Ruby
|
11
|
+
uses: ruby/setup-ruby@v1
|
12
|
+
with:
|
13
|
+
ruby-version: "3.0" # Not needed with a .ruby-version file
|
14
|
+
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
|
15
|
+
- name: Install and Build 🔧 # This example project is built using npm and outputs the result to the 'build' folder. Replace with the commands required to build your project, or remove this step entirely if your site is pre-built.
|
16
|
+
run: bundle exec rake build_gh_pages
|
17
|
+
- name: Deploy 🚀
|
18
|
+
uses: JamesIves/github-pages-deploy-action@v4.2.3
|
19
|
+
with:
|
20
|
+
branch: gh-pages # The branch the action should deploy to.
|
21
|
+
folder: gh-pages # The folder the action should deploy.
|
data/.gitignore
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,13 @@
|
|
1
|
+
## 0.3.5
|
2
|
+
* Add backtick_javascript magic comment to squelch warnings since Opal 1.8
|
3
|
+
|
4
|
+
## 0.3.4
|
5
|
+
* Element#children=
|
6
|
+
* Support more methods on Media
|
7
|
+
* Event::Custom to support non-enumerable properties
|
8
|
+
* DOM::Element::Form: #valid?, #request_submit, #ajax_submit
|
9
|
+
* Compatibility for Opal-RSpec 1.0
|
10
|
+
|
1
11
|
## 0.3.3
|
2
12
|
* Compatibility fix for Opal 1.4
|
3
13
|
|
data/Gemfile
CHANGED
@@ -6,25 +6,35 @@ gem 'rake'
|
|
6
6
|
gem 'rack'
|
7
7
|
gem 'sinatra'
|
8
8
|
gem 'sinatra-websocket'
|
9
|
-
|
10
|
-
|
9
|
+
case ENV['OPAL_RSPEC_VERSION']
|
10
|
+
when nil, ''
|
11
|
+
gem 'opal-rspec'
|
12
|
+
when /\./
|
13
|
+
gem 'opal-rspec', "~> #{ENV['OPAL_RSPEC_VERSION']}.0a"
|
14
|
+
else
|
15
|
+
gem 'opal-rspec', github: 'opal/opal-rspec', ref: ENV['OPAL_RSPEC_VERSION'], submodules: true
|
16
|
+
end
|
11
17
|
# Force build of eventmachine... I wish we could find a way to not use
|
12
18
|
# this unmaintained library anymore.
|
13
19
|
gem 'eventmachine', github: 'eventmachine/eventmachine'
|
14
20
|
gem 'thin', github: 'macournoyer/thin' unless RUBY_PLATFORM =~ /mingw/
|
15
21
|
|
16
22
|
# runner
|
17
|
-
gem 'selenium-webdriver', require: false
|
23
|
+
gem 'selenium-webdriver', '>= 4.14.0', require: false
|
18
24
|
gem 'rest-client', require: false
|
19
|
-
gem 'webdrivers', require: false
|
20
25
|
gem 'rexml', require: false
|
26
|
+
gem 'ffi'
|
21
27
|
|
22
28
|
# browser
|
23
29
|
case ENV['OPAL_VERSION']
|
24
|
-
when nil
|
30
|
+
when nil, ''
|
31
|
+
# noop
|
32
|
+
when ->(path) { File.exist? path }
|
33
|
+
gem 'opal', path: ENV['OPAL_VERSION']
|
25
34
|
when /\./
|
26
35
|
gem 'opal', "~> #{ENV['OPAL_VERSION']}.0a"
|
27
36
|
else
|
28
37
|
gem 'opal', github: 'opal/opal', ref: ENV['OPAL_VERSION']
|
29
38
|
end
|
30
39
|
|
40
|
+
gem 'opal-sprockets'
|
data/Rakefile
CHANGED
@@ -2,9 +2,6 @@ require 'bundler'
|
|
2
2
|
Bundler.require
|
3
3
|
require 'bundler/gem_tasks'
|
4
4
|
|
5
|
-
require 'webdrivers'
|
6
|
-
load 'webdrivers/Rakefile'
|
7
|
-
|
8
5
|
require 'opal/rspec/rake_task'
|
9
6
|
Opal::RSpec::RakeTask.new(:broken_rspec) do |_, task|
|
10
7
|
task.default_path = 'spec'
|
@@ -14,12 +11,8 @@ end
|
|
14
11
|
task(:nil) {}
|
15
12
|
|
16
13
|
%w[chrome edge gecko safari].each do |i|
|
17
|
-
dependency = nil
|
18
|
-
if %w[chrome edge gecko].include? i
|
19
|
-
dependency = "webdrivers:#{i}driver:update"
|
20
|
-
end
|
21
14
|
desc "Run Selenium tests with #{i}"
|
22
|
-
task :"selenium_#{i}"
|
15
|
+
task :"selenium_#{i}" do
|
23
16
|
server = Process.spawn("bundle", "exec", "rackup")
|
24
17
|
at_exit { Process.kill(9, server) rescue nil }
|
25
18
|
sleep 2
|
@@ -30,4 +23,34 @@ task(:nil) {}
|
|
30
23
|
end
|
31
24
|
end
|
32
25
|
|
33
|
-
task :default => :selenium_chrome
|
26
|
+
task :default => :selenium_chrome
|
27
|
+
|
28
|
+
task :build_gh_pages do
|
29
|
+
require 'fileutils'
|
30
|
+
|
31
|
+
output_dir = __dir__+"/gh-pages/examples/"
|
32
|
+
FileUtils.mkdir_p output_dir
|
33
|
+
|
34
|
+
Dir['examples/*'].reject { |i| i =~ /integrations|svg/ }.each do |example_path|
|
35
|
+
example = File.basename(example_path)
|
36
|
+
|
37
|
+
output_example_dir = output_dir+"/"+example
|
38
|
+
FileUtils.mkdir_p output_example_dir
|
39
|
+
|
40
|
+
Dir.chdir(example_path) do
|
41
|
+
Bundler.with_unbundled_env do
|
42
|
+
`bundle install`
|
43
|
+
`bundle exec opal -qopal-browser -c app/application.rb > #{output_example_dir}/app.js`
|
44
|
+
end
|
45
|
+
File.write("#{output_example_dir}/index.html", <<~HTML)
|
46
|
+
<!DOCTYPE html>
|
47
|
+
<html>
|
48
|
+
<head></head>
|
49
|
+
<body>
|
50
|
+
<script src="app.js"></script>
|
51
|
+
</body>
|
52
|
+
</html>
|
53
|
+
HTML
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
data/bin/rake
ADDED
data/bin/setup
ADDED
data/config.ru
CHANGED
@@ -3,17 +3,24 @@ Bundler.require
|
|
3
3
|
|
4
4
|
apps = []
|
5
5
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
6
|
+
require 'opal/rspec'
|
7
|
+
|
8
|
+
Opal::Config.arity_check_enabled = true
|
9
|
+
Opal::Config.enable_source_location = true if Opal::Config.respond_to? :enable_file_source_location=
|
10
|
+
Opal::Config.enable_file_source_embed = true if Opal::Config.respond_to? :enable_file_source_embed=
|
11
|
+
|
12
|
+
Opal.append_path "#{__dir__}/spec"
|
13
|
+
|
14
|
+
apps << Opal::SimpleServer.new do |s|
|
15
|
+
require_relative './spec/browser_runner_compat'
|
16
|
+
|
17
|
+
$locator = Opal::RSpec::Locator.new(
|
18
|
+
pattern: 'spec/**/*_spec.{rb,opal}',
|
19
|
+
default_path: 'spec'
|
20
|
+
)
|
21
|
+
|
22
|
+
s.index_path = 'spec/browser_runner_index.html.erb'
|
23
|
+
end
|
17
24
|
|
18
25
|
apps << Class.new(Sinatra::Base) {
|
19
26
|
get '/http' do
|
@@ -78,4 +85,4 @@ apps << Class.new(Sinatra::Base) {
|
|
78
85
|
end
|
79
86
|
}
|
80
87
|
|
81
|
-
run Rack::Cascade.new(apps)
|
88
|
+
run Rack::Cascade.new(apps.reverse)
|
data/opal/browser/audio/node.rb
CHANGED
data/opal/browser/audio.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
# backtick_javascript: true
|
1
2
|
require 'browser/audio/node'
|
2
3
|
|
3
4
|
module Browser; module Audio
|
@@ -55,7 +56,7 @@ class Context
|
|
55
56
|
end
|
56
57
|
|
57
58
|
def periodic_wave(real, imaginary)
|
58
|
-
`#{@native}.createPeriodicWave(new Float32Array(#{real}), new Float32Array(#{imaginary}))
|
59
|
+
`#{@native}.createPeriodicWave(new Float32Array(#{real}), new Float32Array(#{imaginary}))`
|
59
60
|
end
|
60
61
|
|
61
62
|
alias_native :suspend
|
data/opal/browser/blob.rb
CHANGED
data/opal/browser/canvas/data.rb
CHANGED
data/opal/browser/canvas/text.rb
CHANGED
data/opal/browser/canvas.rb
CHANGED
data/opal/browser/console.rb
CHANGED
data/opal/browser/cookies.rb
CHANGED
data/opal/browser/crypto.rb
CHANGED
data/opal/browser/css/rule.rb
CHANGED
data/opal/browser/delay.rb
CHANGED
data/opal/browser/dom/builder.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# backtick_javascript: true
|
2
|
+
|
1
3
|
module Browser; module DOM; class Element < Node
|
2
4
|
|
3
5
|
class Form < Element
|
@@ -10,11 +12,33 @@ class Form < Element
|
|
10
12
|
FormData.create(self)
|
11
13
|
end
|
12
14
|
|
13
|
-
#
|
15
|
+
# Returns true if form is valid, false otherwise
|
16
|
+
def valid?
|
17
|
+
`#@native.reportValidity()`
|
18
|
+
end
|
19
|
+
|
20
|
+
# Submit a form. This will NOT fire a submit event.
|
14
21
|
def submit
|
15
22
|
`#@native.submit()`
|
16
23
|
end
|
17
24
|
|
25
|
+
# Submit a form, optionally with a button argument.
|
26
|
+
# This will fire a submit event.
|
27
|
+
def request_submit(submitter = nil)
|
28
|
+
if submitter
|
29
|
+
`#@native.requestSubmit(#{submitter.to_n})`
|
30
|
+
else
|
31
|
+
`#@native.requestSubmit()`
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
# Submit a form using AJAX.
|
36
|
+
def ajax_submit(&block)
|
37
|
+
data = form_data
|
38
|
+
data = data.to_h unless encoding == 'multipart/form-data'
|
39
|
+
HTTP.send(method, target, form_data, &block)
|
40
|
+
end
|
41
|
+
|
18
42
|
# Reset a form. This will fire a reset event.
|
19
43
|
def reset
|
20
44
|
`#@native.reset()`
|
@@ -1,23 +1,14 @@
|
|
1
|
+
# backtick_javascript: true
|
2
|
+
|
1
3
|
module Browser; module DOM; class Element < Node
|
2
4
|
|
3
5
|
class Image < Element
|
4
6
|
def_selector "img"
|
5
7
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
def cross?
|
11
|
-
`#@native.crossOrigin`
|
12
|
-
end
|
13
|
-
|
14
|
-
def height
|
15
|
-
`#@native.naturalHeight`
|
16
|
-
end
|
17
|
-
|
18
|
-
def width
|
19
|
-
`#@native.naturalWidth`
|
20
|
-
end
|
8
|
+
alias_native :complete?, :complete
|
9
|
+
alias_native :cross?, :crossOrigin
|
10
|
+
alias_native :height, :naturalHeight
|
11
|
+
alias_native :width, :naturalWidth
|
21
12
|
end
|
22
13
|
|
23
14
|
Img = Image
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# backtick_javascript: true
|
2
|
+
|
1
3
|
module Browser; module DOM; class Element < Node
|
2
4
|
|
3
5
|
class Input < Element
|
@@ -14,21 +16,11 @@ class Input < Element
|
|
14
16
|
}
|
15
17
|
end
|
16
18
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
`#@native.name`
|
23
|
-
end
|
24
|
-
|
25
|
-
def type
|
26
|
-
`#@native.type`
|
27
|
-
end
|
28
|
-
|
29
|
-
def checked?
|
30
|
-
`#@native.checked`
|
31
|
-
end
|
19
|
+
alias_native :value=
|
20
|
+
alias_native :name_, :name
|
21
|
+
alias_native :type
|
22
|
+
alias_native :checked?, :checked
|
23
|
+
alias_native :enabled?, :enabled
|
32
24
|
|
33
25
|
def check!
|
34
26
|
`#@native.checked = 'checked'`
|
@@ -38,10 +30,6 @@ class Input < Element
|
|
38
30
|
`#@native.checked = ''`
|
39
31
|
end
|
40
32
|
|
41
|
-
def enabled?
|
42
|
-
`#@native.enabled`
|
43
|
-
end
|
44
|
-
|
45
33
|
def disable!
|
46
34
|
`#@native.disabled = 'disabled'`
|
47
35
|
end
|
@@ -1,9 +1,11 @@
|
|
1
1
|
module Browser; module DOM; class Element < Node
|
2
2
|
|
3
3
|
class Media < Element
|
4
|
-
|
5
|
-
|
6
|
-
|
4
|
+
alias_native :load
|
5
|
+
alias_native :play
|
6
|
+
alias_native :pause
|
7
|
+
alias_native :time, :currentTime
|
8
|
+
alias_native :time=, :currentTime=
|
7
9
|
end
|
8
10
|
|
9
11
|
class Video < Media
|