opal-jquery 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +2 -7
- data/Rakefile +1 -49
- data/lib/opal-jquery/document.rb +2 -1
- data/lib/opal-jquery/element.rb +32 -1
- data/lib/opal-jquery/event.rb +3 -2
- data/lib/opal-jquery/http.rb +3 -2
- data/opal-jquery.gemspec +2 -2
- data/spec/document_spec.rb +11 -17
- data/spec/element/after_spec.rb +9 -17
- data/spec/element/animations_spec.rb +5 -13
- data/spec/element/append_spec.rb +9 -17
- data/spec/element/append_to_spec.rb +8 -14
- data/spec/element/at_spec.rb +8 -16
- data/spec/element/attributes_spec.rb +31 -39
- data/spec/element/before_spec.rb +9 -17
- data/spec/element/class_name_spec.rb +11 -19
- data/spec/element/css_spec.rb +7 -15
- data/spec/element/display_spec.rb +6 -15
- data/spec/element/inspect_spec.rb +8 -16
- data/spec/element/iterable_spec.rb +52 -0
- data/spec/element/length_spec.rb +3 -1
- data/spec/element/traversing_spec.rb +41 -1
- data/spec/element_spec.rb +23 -19
- data/spec/event_spec.rb +10 -16
- data/spec/http_spec.rb +3 -1
- data/spec/local_storage_spec.rb +3 -1
- data/spec/spec_helper.rb +32 -1
- metadata +5 -5
- data/docs/post.html +0 -3
- data/docs/pre.html +0 -18
data/Gemfile
CHANGED
data/Rakefile
CHANGED
@@ -6,52 +6,4 @@ Opal::RakeTask.new do |t|
|
|
6
6
|
t.dependencies = ['opal-spec']
|
7
7
|
end
|
8
8
|
|
9
|
-
task :default => :'opal:test'
|
10
|
-
|
11
|
-
namespace :docs do
|
12
|
-
desc "Build docs"
|
13
|
-
task :build do
|
14
|
-
require 'redcarpet'
|
15
|
-
require 'albino'
|
16
|
-
|
17
|
-
klass = Class.new(Redcarpet::Render::HTML) do
|
18
|
-
def block_code(code, language)
|
19
|
-
Albino.new(code, language || :text).colorize
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
markdown = Redcarpet::Markdown.new(klass, :fenced_code_blocks => true)
|
24
|
-
|
25
|
-
File.open('gh-pages/index.html', 'w+') do |o|
|
26
|
-
puts " * index.html"
|
27
|
-
# remove first 2 lines (header/build status), as pre.html has a docs version
|
28
|
-
src = File.read("README.md").sub(/^(?:[^\n]*\n){4}/, '')
|
29
|
-
|
30
|
-
o.write File.read('docs/pre.html')
|
31
|
-
o.write markdown.render(src)
|
32
|
-
o.write File.read('docs/post.html')
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
desc "Clone repo"
|
37
|
-
task :clone do
|
38
|
-
if File.exists? 'gh-pages'
|
39
|
-
Dir.chdir('gh-pages') { sh 'git pull origin gh-pages' }
|
40
|
-
else
|
41
|
-
FileUtils.mkdir_p 'gh-pages'
|
42
|
-
Dir.chdir('gh-pages') do
|
43
|
-
sh 'git clone git@github.com:/opal/opal-jquery.git .'
|
44
|
-
sh 'git checkout gh-pages'
|
45
|
-
end
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
|
-
desc "commit and push"
|
50
|
-
task :push do
|
51
|
-
Dir.chdir('gh-pages') do
|
52
|
-
sh "git add ."
|
53
|
-
sh "git commit -a -m \"Documentation update #{Time.new}\""
|
54
|
-
sh "git push origin gh-pages"
|
55
|
-
end
|
56
|
-
end
|
57
|
-
end
|
9
|
+
task :default => [:opal, :'opal:test']
|
data/lib/opal-jquery/document.rb
CHANGED
data/lib/opal-jquery/element.rb
CHANGED
@@ -241,6 +241,30 @@ class Element < `jQuery`
|
|
241
241
|
self
|
242
242
|
end
|
243
243
|
|
244
|
+
# return an opal array mapped with block yielded for any element
|
245
|
+
#
|
246
|
+
# @example
|
247
|
+
#
|
248
|
+
# list = Document.find('table.players td.surname').map {|el| el.html }
|
249
|
+
#
|
250
|
+
# @return an Array
|
251
|
+
def map
|
252
|
+
list = []
|
253
|
+
each {|el| list << yield(el) }
|
254
|
+
list
|
255
|
+
end
|
256
|
+
|
257
|
+
# return an opal Array of elements
|
258
|
+
#
|
259
|
+
# @example
|
260
|
+
#
|
261
|
+
# Document.find('table.players td.surname').to_a.last
|
262
|
+
#
|
263
|
+
# @return an Array
|
264
|
+
def to_a
|
265
|
+
map {|el| el }
|
266
|
+
end
|
267
|
+
|
244
268
|
# Find all the elements that match the given `selector` within the
|
245
269
|
# scope of elements in #{self} given collection. Might return an empty
|
246
270
|
# collection if no elements match.
|
@@ -316,6 +340,8 @@ class Element < `jQuery`
|
|
316
340
|
|
317
341
|
alias_native :next, :next
|
318
342
|
|
343
|
+
alias_native :siblings, :siblings
|
344
|
+
|
319
345
|
def off(event_name, selector, handler=nil)
|
320
346
|
%x{
|
321
347
|
if (handler === nil) {
|
@@ -333,8 +359,13 @@ class Element < `jQuery`
|
|
333
359
|
def on(event_name, selector=nil, &block)
|
334
360
|
return unless block_given?
|
335
361
|
|
362
|
+
# The choice of allowing a maximum of four parameters is arbitrary. arg1 is typically the
|
363
|
+
# event object and the rest are parameters passed by trigger(). For example, Rails 3 AJAX
|
364
|
+
# event handlers get passed up to three additional parameters in addition to the event object.
|
336
365
|
%x{
|
337
|
-
var handler = function(
|
366
|
+
var handler = function(arg1, arg2, arg3, arg4) {
|
367
|
+
return #{ block.call `arg1, arg2, arg3, arg4` }
|
368
|
+
};
|
338
369
|
block._jq = handler;
|
339
370
|
|
340
371
|
if (selector === nil) {
|
data/lib/opal-jquery/event.rb
CHANGED
@@ -24,7 +24,7 @@ class Event < `$.Event`
|
|
24
24
|
if (#{self}._opalTarget) {
|
25
25
|
return #{self}._opalTarget;
|
26
26
|
}
|
27
|
-
|
27
|
+
|
28
28
|
return #{self}._opalTarget = $(#{self}.target);
|
29
29
|
}
|
30
30
|
end
|
@@ -36,4 +36,5 @@ class Event < `$.Event`
|
|
36
36
|
def which
|
37
37
|
`#{self}.which`
|
38
38
|
end
|
39
|
-
end
|
39
|
+
end
|
40
|
+
|
data/lib/opal-jquery/http.rb
CHANGED
@@ -10,7 +10,7 @@ class HTTP
|
|
10
10
|
attr_reader :method
|
11
11
|
attr_reader :status_code
|
12
12
|
attr_reader :url
|
13
|
-
|
13
|
+
|
14
14
|
def self.get(url, opts={}, &block)
|
15
15
|
self.new(url, :GET, opts, block).send!
|
16
16
|
end
|
@@ -110,4 +110,5 @@ class HTTP
|
|
110
110
|
def succeed
|
111
111
|
@callback.call self if @callback
|
112
112
|
end
|
113
|
-
end
|
113
|
+
end
|
114
|
+
|
data/opal-jquery.gemspec
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = 'opal-jquery'
|
5
|
-
s.version = '0.0.
|
5
|
+
s.version = '0.0.2'
|
6
6
|
s.author = 'Adam Beynon'
|
7
7
|
s.email = 'adam.beynon@gmail.com'
|
8
8
|
s.homepage = 'http://opalrb.org'
|
@@ -13,4 +13,4 @@ Gem::Specification.new do |s|
|
|
13
13
|
s.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
|
14
14
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
15
15
|
s.require_paths = ['lib']
|
16
|
-
end
|
16
|
+
end
|
data/spec/document_spec.rb
CHANGED
@@ -1,20 +1,14 @@
|
|
1
|
-
|
2
|
-
before do
|
3
|
-
@div = Document.parse <<-HTML
|
4
|
-
<div id="foo" class="bar"></div>
|
5
|
-
<div class="woosh"></div>
|
6
|
-
<div class="woosh"></div>
|
7
|
-
<div class="find-foo"></div>
|
8
|
-
<div class="find-bar"></div>
|
9
|
-
<div class="find-foo"></div>
|
10
|
-
HTML
|
11
|
-
|
12
|
-
@div.append_to_body
|
13
|
-
end
|
1
|
+
require "spec_helper"
|
14
2
|
|
15
|
-
|
16
|
-
|
17
|
-
|
3
|
+
describe Document do
|
4
|
+
html <<-HTML
|
5
|
+
<div id="foo" class="bar"></div>
|
6
|
+
<div class="woosh"></div>
|
7
|
+
<div class="woosh"></div>
|
8
|
+
<div class="find-foo"></div>
|
9
|
+
<div class="find-bar"></div>
|
10
|
+
<div class="find-foo"></div>
|
11
|
+
HTML
|
18
12
|
|
19
13
|
describe ".[]" do
|
20
14
|
it "should be able to find elements with given id" do
|
@@ -88,4 +82,4 @@ describe Document do
|
|
88
82
|
Document.title = current
|
89
83
|
end
|
90
84
|
end
|
91
|
-
end
|
85
|
+
end
|
data/spec/element/after_spec.rb
CHANGED
@@ -1,20 +1,12 @@
|
|
1
|
-
|
2
|
-
before do
|
3
|
-
@div = Document.parse <<-HTML
|
4
|
-
<div id="after-spec">
|
5
|
-
<div id="some-header" class="kapow"></div>
|
6
|
-
<div id="foo" class="after-spec-first"></div>
|
7
|
-
<div id="bar" class="after-spec-first"></div>
|
8
|
-
<div id="baz"></div>
|
9
|
-
</div>
|
10
|
-
HTML
|
11
|
-
|
12
|
-
@div.append_to_body
|
13
|
-
end
|
1
|
+
require "spec_helper"
|
14
2
|
|
15
|
-
|
16
|
-
|
17
|
-
|
3
|
+
describe "Element#after" do
|
4
|
+
html <<-HTML
|
5
|
+
<div id="some-header" class="kapow"></div>
|
6
|
+
<div id="foo" class="after-spec-first"></div>
|
7
|
+
<div id="bar" class="after-spec-first"></div>
|
8
|
+
<div id="baz"></div>
|
9
|
+
HTML
|
18
10
|
|
19
11
|
it "should insert the given html string after each element" do
|
20
12
|
el = Document['.after-spec-first']
|
@@ -30,4 +22,4 @@ describe "Element#after" do
|
|
30
22
|
Document.id('baz').after Document.id('some-header')
|
31
23
|
Document.id('baz').next.id.should == "some-header"
|
32
24
|
end
|
33
|
-
end
|
25
|
+
end
|
@@ -1,17 +1,9 @@
|
|
1
|
-
|
2
|
-
before do
|
3
|
-
@div = Document.parse <<-HTML
|
4
|
-
<div id="animate-foo"></div>
|
5
|
-
HTML
|
6
|
-
|
7
|
-
@div.append_to_body
|
8
|
-
|
9
|
-
Document.id("animate-foo").css("width", "0px")
|
10
|
-
end
|
1
|
+
require "spec_helper"
|
11
2
|
|
12
|
-
|
13
|
-
|
14
|
-
|
3
|
+
describe "Element animation methods" do
|
4
|
+
html <<-HTML
|
5
|
+
<div id="animate-foo"></div>
|
6
|
+
HTML
|
15
7
|
|
16
8
|
describe "#animate" do
|
17
9
|
### HACKY
|
data/spec/element/append_spec.rb
CHANGED
@@ -1,20 +1,12 @@
|
|
1
|
-
|
2
|
-
before do
|
3
|
-
@div = Document.parse <<-HTML
|
4
|
-
<div id="append-spec">
|
5
|
-
<div id="foo" class="first-append"></div>
|
6
|
-
<div id="bar" class="first-append"></div>
|
7
|
-
<div id="baz"></div>
|
8
|
-
<div id="buz"></div>
|
9
|
-
</div>
|
10
|
-
HTML
|
11
|
-
|
12
|
-
@div.append_to_body
|
13
|
-
end
|
1
|
+
require "spec_helper"
|
14
2
|
|
15
|
-
|
16
|
-
|
17
|
-
|
3
|
+
describe "Element#append" do
|
4
|
+
html <<-HTML
|
5
|
+
<div id="foo" class="first-append"></div>
|
6
|
+
<div id="bar" class="first-append"></div>
|
7
|
+
<div id="baz"></div>
|
8
|
+
<div id="buz"></div>
|
9
|
+
HTML
|
18
10
|
|
19
11
|
it "should insert the HTML string to the end of each element" do
|
20
12
|
Document.find('.first-append').append '<p class="woosh"></p>'
|
@@ -33,4 +25,4 @@ describe "Element#append" do
|
|
33
25
|
baz.children.size.should == 1
|
34
26
|
baz.children.id.should == "buz"
|
35
27
|
end
|
36
|
-
end
|
28
|
+
end
|
@@ -1,17 +1,11 @@
|
|
1
|
-
|
2
|
-
before do
|
3
|
-
@div = Document.parse <<-HTML
|
4
|
-
<div id="foo"></div>
|
5
|
-
<div id="bar"></div>
|
6
|
-
<div id="baz"></div>
|
7
|
-
HTML
|
8
|
-
|
9
|
-
@div.append_to_body
|
10
|
-
end
|
1
|
+
require "spec_helper"
|
11
2
|
|
12
|
-
|
13
|
-
|
14
|
-
|
3
|
+
describe "Element#append_to" do
|
4
|
+
html <<-HTML
|
5
|
+
<div id="foo"></div>
|
6
|
+
<div id="bar"></div>
|
7
|
+
<div id="baz"></div>
|
8
|
+
HTML
|
15
9
|
|
16
10
|
it "should insert the receiver into the target element" do
|
17
11
|
Document.id('foo').children.size.should == 0
|
@@ -22,4 +16,4 @@ describe "Element#append_to" do
|
|
22
16
|
Document.id('bar').append_to Document.id('baz')
|
23
17
|
Document.id('baz').children.id.should == "bar"
|
24
18
|
end
|
25
|
-
end
|
19
|
+
end
|
data/spec/element/at_spec.rb
CHANGED
@@ -1,19 +1,11 @@
|
|
1
|
-
|
2
|
-
before do
|
3
|
-
@div = Document.parse <<-HTML
|
4
|
-
<div id="at-spec">
|
5
|
-
<div class="foo" id="blah"></div>
|
6
|
-
<div class="foo" id="bleh"></div>
|
7
|
-
<div class="foo" id="bluh"></div>
|
8
|
-
</div>
|
9
|
-
HTML
|
10
|
-
|
11
|
-
@div.append_to_body
|
12
|
-
end
|
1
|
+
require "spec_helper"
|
13
2
|
|
14
|
-
|
15
|
-
|
16
|
-
|
3
|
+
describe "Element#at" do
|
4
|
+
html <<-HTML
|
5
|
+
<div class="foo" id="blah"></div>
|
6
|
+
<div class="foo" id="bleh"></div>
|
7
|
+
<div class="foo" id="bluh"></div>
|
8
|
+
HTML
|
17
9
|
|
18
10
|
it "returns the element at the given index" do
|
19
11
|
foos = Document.find '.foo'
|
@@ -38,4 +30,4 @@ describe "Element#at" do
|
|
38
30
|
foos.at(-4).should == nil
|
39
31
|
foos.at(4).should == nil
|
40
32
|
end
|
41
|
-
end
|
33
|
+
end
|
@@ -1,52 +1,44 @@
|
|
1
|
-
|
2
|
-
before do
|
3
|
-
@div = Document.parse <<-HTML
|
4
|
-
<div id="attributes-spec">
|
5
|
-
<div id="foo"></div>
|
6
|
-
<div id="bar" class="apples"></div>
|
7
|
-
<div id="baz" class="lemons"></div>
|
1
|
+
require "spec_helper"
|
8
2
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
3
|
+
describe Element do
|
4
|
+
html <<-HTML
|
5
|
+
<div id="foo"></div>
|
6
|
+
<div id="bar" class="apples"></div>
|
7
|
+
<div id="baz" class="lemons"></div>
|
14
8
|
|
15
|
-
|
16
|
-
|
9
|
+
<div id="attr-foo" title="Hello there!"></div>
|
10
|
+
<div id="attr-bar"></div>
|
11
|
+
<div id="attr-baz" title=""></div>
|
12
|
+
<div id="attr-woosh"></div>
|
13
|
+
<div id="attr-kapow" title="Apples"></div>
|
17
14
|
|
18
|
-
|
19
|
-
|
15
|
+
<div id="has-foo" class="apples"></div>
|
16
|
+
<div id="has-bar" class="lemons bananas"></div>
|
20
17
|
|
21
|
-
|
22
|
-
|
18
|
+
<div id="html-foo">Hey there</div>
|
19
|
+
<div id="html-bar"><p>Erm</p></div>
|
23
20
|
|
24
|
-
|
21
|
+
<div class="html-bridge">Hello</div>
|
22
|
+
<div class="html-bridge">Hello as well</div>
|
25
23
|
|
26
|
-
|
27
|
-
<div id="remove-baz" class="apples oranges"></div>
|
28
|
-
<div id="remove-buz" class="pineapples mangos"></div>
|
24
|
+
<div id="remove-foo"></div>
|
29
25
|
|
30
|
-
|
26
|
+
<div id="remove-bar" class="lemons"></div>
|
27
|
+
<div id="remove-baz" class="apples oranges"></div>
|
28
|
+
<div id="remove-buz" class="pineapples mangos"></div>
|
31
29
|
|
32
|
-
|
33
|
-
<option selected="selected">Hello</option>
|
34
|
-
<option>World</option>
|
35
|
-
</select>
|
30
|
+
<div id="remove-bleh" class="fruit"></div>
|
36
31
|
|
37
|
-
|
38
|
-
|
32
|
+
<select id="value-foo">
|
33
|
+
<option selected="selected">Hello</option>
|
34
|
+
<option>World</option>
|
35
|
+
</select>
|
39
36
|
|
40
|
-
|
41
|
-
|
42
|
-
HTML
|
37
|
+
<input id="value-bar" type="text" value="Blah"></input>
|
38
|
+
<div id="value-baz"></div>
|
43
39
|
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
after do
|
48
|
-
@div.remove
|
49
|
-
end
|
40
|
+
<input type="text" id="value-woosh" value=""></input>
|
41
|
+
HTML
|
50
42
|
|
51
43
|
describe '#[]' do
|
52
44
|
it 'should retrieve the attr value from the element' do
|
@@ -199,4 +191,4 @@ describe Element do
|
|
199
191
|
foo.value.should == "There"
|
200
192
|
end
|
201
193
|
end
|
202
|
-
end
|
194
|
+
end
|
data/spec/element/before_spec.rb
CHANGED
@@ -1,20 +1,12 @@
|
|
1
|
-
|
2
|
-
before do
|
3
|
-
@div = Document.parse <<-HTML
|
4
|
-
<div id="before-spec">
|
5
|
-
<div id="some-header" class="kapow"></div>
|
6
|
-
<div id="foo" class="before-spec-first"></div>
|
7
|
-
<div id="bar" class="before-spec-first"></div>
|
8
|
-
<div id="baz"></div>
|
9
|
-
</div>
|
10
|
-
HTML
|
11
|
-
|
12
|
-
@div.append_to_body
|
13
|
-
end
|
1
|
+
require "spec_helper"
|
14
2
|
|
15
|
-
|
16
|
-
|
17
|
-
|
3
|
+
describe "Element#before" do
|
4
|
+
html <<-HTML
|
5
|
+
<div id="some-header" class="kapow"></div>
|
6
|
+
<div id="foo" class="before-spec-first"></div>
|
7
|
+
<div id="bar" class="before-spec-first"></div>
|
8
|
+
<div id="baz"></div>
|
9
|
+
HTML
|
18
10
|
|
19
11
|
it "should insert the given html string before each element" do
|
20
12
|
el = Document['.before-spec-first']
|
@@ -30,4 +22,4 @@ describe "Element#before" do
|
|
30
22
|
Document['#baz'].before Document['#some-header']
|
31
23
|
Document['#baz'].prev.id.should == "some-header"
|
32
24
|
end
|
33
|
-
end
|
25
|
+
end
|
@@ -1,23 +1,15 @@
|
|
1
|
-
|
2
|
-
before do
|
3
|
-
@div = Document.parse <<-HTML
|
4
|
-
<div id="class-name-spec">
|
5
|
-
<div id="foo" class="whiskey"></div>
|
6
|
-
<div id="bar" class="scotch brandy"></div>
|
7
|
-
<div id="baz" class=""></div>
|
8
|
-
<div id="buz"></div>
|
9
|
-
|
10
|
-
<div class="red dark"></div>
|
11
|
-
<div class="red light"></div>
|
12
|
-
</div>
|
13
|
-
HTML
|
1
|
+
require "spec_helper"
|
14
2
|
|
15
|
-
|
16
|
-
|
3
|
+
describe "Element#class_name" do
|
4
|
+
html <<-HTML
|
5
|
+
<div id="foo" class="whiskey"></div>
|
6
|
+
<div id="bar" class="scotch brandy"></div>
|
7
|
+
<div id="baz" class=""></div>
|
8
|
+
<div id="buz"></div>
|
17
9
|
|
18
|
-
|
19
|
-
|
20
|
-
|
10
|
+
<div class="red dark"></div>
|
11
|
+
<div class="red light"></div>
|
12
|
+
HTML
|
21
13
|
|
22
14
|
it "should return the elements' class name" do
|
23
15
|
Document.id('foo').class_name.should == "whiskey"
|
@@ -79,4 +71,4 @@ describe "Element#class_name=" do
|
|
79
71
|
Document.id('baz').class_name.should == "pop"
|
80
72
|
Document.id('buz').class_name.should == "pop"
|
81
73
|
end
|
82
|
-
end
|
74
|
+
end
|
data/spec/element/css_spec.rb
CHANGED
@@ -1,19 +1,11 @@
|
|
1
|
-
|
2
|
-
before do
|
3
|
-
@div = Document.parse <<-HTML
|
4
|
-
<div id="css-spec">
|
5
|
-
<div id="foo" style="background-color:rgb(15,99,30); color:;"></div>
|
6
|
-
<div id="bar"></div>
|
7
|
-
<div id="hash"></div>
|
8
|
-
</div>
|
9
|
-
HTML
|
10
|
-
|
11
|
-
@div.append_to_body
|
12
|
-
end
|
1
|
+
require "spec_helper"
|
13
2
|
|
14
|
-
|
15
|
-
|
16
|
-
|
3
|
+
describe "Element#css" do
|
4
|
+
html <<-HTML
|
5
|
+
<div id="foo" style="background-color:rgb(15,99,30); color:;"></div>
|
6
|
+
<div id="bar"></div>
|
7
|
+
<div id="hash"></div>
|
8
|
+
HTML
|
17
9
|
|
18
10
|
describe "with a given name" do
|
19
11
|
it "returns the value of the CSS property for the given name" do
|
@@ -1,18 +1,10 @@
|
|
1
|
-
|
2
|
-
before do
|
3
|
-
@div = Document.parse <<-HTML
|
4
|
-
<div id="css-spec">
|
5
|
-
<div id="shown"></div>
|
6
|
-
<div id="hidden" style="display: none"></div>
|
7
|
-
</div>
|
8
|
-
HTML
|
9
|
-
|
10
|
-
@div.append_to_body
|
11
|
-
end
|
1
|
+
require "spec_helper"
|
12
2
|
|
13
|
-
|
14
|
-
|
15
|
-
|
3
|
+
describe "Element display methods" do
|
4
|
+
html <<-HTML
|
5
|
+
<div id="shown"></div>
|
6
|
+
<div id="hidden" style="display: none"></div>
|
7
|
+
HTML
|
16
8
|
|
17
9
|
it "hides an element" do
|
18
10
|
element = Document.id('shown')
|
@@ -41,5 +33,4 @@ describe "Element display methods" do
|
|
41
33
|
element.toggle
|
42
34
|
element.css('display').should == 'none'
|
43
35
|
end
|
44
|
-
|
45
36
|
end
|
@@ -1,19 +1,11 @@
|
|
1
|
-
|
2
|
-
before do
|
3
|
-
@div = Document.parse <<-HTML
|
4
|
-
<div id="insert-spec">
|
5
|
-
<div id="foo"></div>
|
6
|
-
<div class="bar"></div>
|
7
|
-
<p id="lol" class="bar"></div>
|
8
|
-
</div>
|
9
|
-
HTML
|
10
|
-
|
11
|
-
@div.append_to_body
|
12
|
-
end
|
1
|
+
require "spec_helper"
|
13
2
|
|
14
|
-
|
15
|
-
|
16
|
-
|
3
|
+
describe "Element#inspect" do
|
4
|
+
html <<-HTML
|
5
|
+
<div id="foo"></div>
|
6
|
+
<div class="bar"></div>
|
7
|
+
<p id="lol" class="bar"></div>
|
8
|
+
HTML
|
17
9
|
|
18
10
|
it "should return a string representation of the elements" do
|
19
11
|
Document.id('foo').inspect.should == '[<div id="foo">]'
|
@@ -23,4 +15,4 @@ describe "Element#inspect" do
|
|
23
15
|
it "should return '[]' when called on empty element set" do
|
24
16
|
Document['.inspect-spec-none'].inspect.should == '[]'
|
25
17
|
end
|
26
|
-
end
|
18
|
+
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe Element do
|
4
|
+
html <<-HTML
|
5
|
+
<table class="players">
|
6
|
+
<tr class="player">
|
7
|
+
<td class="name">mario</td>
|
8
|
+
<td class="surname">rossi</td>
|
9
|
+
</tr>
|
10
|
+
<tr class="player">
|
11
|
+
<td class="name">paolo</td>
|
12
|
+
<td class="surname">bianchi</td>
|
13
|
+
</tr>
|
14
|
+
|
15
|
+
</table>
|
16
|
+
HTML
|
17
|
+
|
18
|
+
describe '#each' do
|
19
|
+
it "should change all td to pippa" do
|
20
|
+
Document.find('table.players td').each do |el|
|
21
|
+
el.html = "pippa"
|
22
|
+
end
|
23
|
+
|
24
|
+
Document.find('table.players td').first.html.should == 'pippa'
|
25
|
+
#Document.find('table.players td').last.html.should == 'pippa'
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
describe '#map' do
|
30
|
+
it "should change all td.surname as array of stirng" do
|
31
|
+
lst=Document.find('table.players td.surname').map {|el| el.html }
|
32
|
+
|
33
|
+
lst.should == ['rossi','bianchi']
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
describe "#to_a" do
|
38
|
+
it "should return a list of class Array" do
|
39
|
+
Document.find('table.players td.surname').to_a.class.should == Array
|
40
|
+
end
|
41
|
+
|
42
|
+
it "should check first and last element" do
|
43
|
+
Document.find('table.players td.surname').to_a.first.html == "rossi"
|
44
|
+
Document.find('table.players td.surname').to_a.last.html == "bianchi"
|
45
|
+
end
|
46
|
+
|
47
|
+
it "should get only element with class surname" do
|
48
|
+
Document.find('table.players td').to_a.select {|el| el.has_class?('surname') }.
|
49
|
+
map {|el| el.class }.uniq == ['surname']
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
data/spec/element/length_spec.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
1
3
|
describe Element do
|
2
4
|
before do
|
3
5
|
@div = Document.parse <<-HTML
|
@@ -147,4 +149,42 @@ describe "Element#succ" do
|
|
147
149
|
it "should return an empty instance when no next element" do
|
148
150
|
Document.id('bar').succ.size.should == 0
|
149
151
|
end
|
150
|
-
end
|
152
|
+
end
|
153
|
+
|
154
|
+
describe "Element#siblings" do
|
155
|
+
before do
|
156
|
+
@div = Document.parse <<-HTML
|
157
|
+
<div id="siblings-spec">
|
158
|
+
<div>
|
159
|
+
<div id="foo"></div>
|
160
|
+
<div id="bar"></div>
|
161
|
+
<div id="baz" class="special"></div>
|
162
|
+
</div>
|
163
|
+
<div>
|
164
|
+
<div id="uno"></div>
|
165
|
+
</div>
|
166
|
+
</div>
|
167
|
+
HTML
|
168
|
+
|
169
|
+
@div.append_to_body
|
170
|
+
end
|
171
|
+
|
172
|
+
after do
|
173
|
+
@div.remove
|
174
|
+
end
|
175
|
+
|
176
|
+
it "should return all siblings" do
|
177
|
+
Document.id('bar').siblings.size.should == 2
|
178
|
+
Document.id('bar').siblings.at(0).id.should == "foo"
|
179
|
+
Document.id('bar').siblings.at(1).id.should == "baz"
|
180
|
+
end
|
181
|
+
|
182
|
+
it "should return all siblings that match the selector" do
|
183
|
+
Document.id('bar').siblings('.special').size.should == 1
|
184
|
+
Document.id('bar').siblings('.special').at(0).id.should == "baz"
|
185
|
+
end
|
186
|
+
|
187
|
+
it "should return an empty instance when there are no siblings" do
|
188
|
+
Document.id('uno').siblings.size.should == 0
|
189
|
+
end
|
190
|
+
end
|
data/spec/element_spec.rb
CHANGED
@@ -1,20 +1,12 @@
|
|
1
|
-
|
2
|
-
before do
|
3
|
-
@div = Document.parse <<-HTML
|
4
|
-
<div id="on-spec">
|
5
|
-
<div id="foo">
|
6
|
-
<div id="bar" class="apples"></div>
|
7
|
-
</div>
|
8
|
-
<div id="baz"></div>
|
9
|
-
</div>
|
10
|
-
HTML
|
11
|
-
|
12
|
-
@div.append_to_body
|
13
|
-
end
|
1
|
+
require "spec_helper"
|
14
2
|
|
15
|
-
|
16
|
-
|
17
|
-
|
3
|
+
describe Element do
|
4
|
+
html <<-HTML
|
5
|
+
<div id="foo">
|
6
|
+
<div id="bar" class="apples"></div>
|
7
|
+
</div>
|
8
|
+
<div id="baz"></div>
|
9
|
+
HTML
|
18
10
|
|
19
11
|
describe '#on' do
|
20
12
|
it 'adds an event listener onto the elements' do
|
@@ -67,11 +59,23 @@ describe Element do
|
|
67
59
|
|
68
60
|
it 'has an Event instance passed to the handler' do
|
69
61
|
foo = Document['#foo']
|
70
|
-
foo.on :click do |
|
71
|
-
|
62
|
+
foo.on :click do |event|
|
63
|
+
event.should be_kind_of(Event)
|
72
64
|
end
|
73
65
|
foo.trigger(:click)
|
74
66
|
end
|
67
|
+
|
68
|
+
it 'has an Event instance, plus up to three additional parameters passed to the handler' do
|
69
|
+
foo = Document['#foo']
|
70
|
+
foo.on :bozo do |event, foo, bar, baz, buz|
|
71
|
+
event.should be_kind_of(Event)
|
72
|
+
foo.should == 'foo'
|
73
|
+
bar.should == 'bar'
|
74
|
+
baz.should == 'baz'
|
75
|
+
buz.should be_nil
|
76
|
+
end
|
77
|
+
foo.trigger(:bozo, ['foo', 'bar', 'baz', 'buz'])
|
78
|
+
end
|
75
79
|
end
|
76
80
|
|
77
81
|
describe '#off' do
|
@@ -104,4 +108,4 @@ describe Element do
|
|
104
108
|
count.should == 1
|
105
109
|
end
|
106
110
|
end
|
107
|
-
end
|
111
|
+
end
|
data/spec/event_spec.rb
CHANGED
@@ -1,20 +1,14 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
1
3
|
describe Event do
|
2
|
-
|
3
|
-
|
4
|
-
<div id="
|
5
|
-
<div id="
|
6
|
-
<div id="bar"></div>
|
7
|
-
</div>
|
8
|
-
<div id="baz"></div>
|
4
|
+
html <<-HTML
|
5
|
+
<div id="on-spec">
|
6
|
+
<div id="foo">
|
7
|
+
<div id="bar"></div>
|
9
8
|
</div>
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
end
|
14
|
-
|
15
|
-
after do
|
16
|
-
@div.remove
|
17
|
-
end
|
9
|
+
<div id="baz"></div>
|
10
|
+
</div>
|
11
|
+
HTML
|
18
12
|
|
19
13
|
it '#current_target returns the current element in the bubbling' do
|
20
14
|
foo = Document['#foo']
|
@@ -63,4 +57,4 @@ describe Event do
|
|
63
57
|
bar.trigger(:click)
|
64
58
|
target.should == 'bar'
|
65
59
|
end
|
66
|
-
end
|
60
|
+
end
|
data/spec/http_spec.rb
CHANGED
data/spec/local_storage_spec.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
@@ -1 +1,32 @@
|
|
1
|
-
OpalSpec
|
1
|
+
module OpalSpec
|
2
|
+
class ExampleGroup
|
3
|
+
|
4
|
+
# Add some html code to the body tag ready for testing. This will
|
5
|
+
# be added before each test, then removed after each test. It is
|
6
|
+
# convenient for adding html setup quickly. The code is wrapped
|
7
|
+
# inside a div, which is directly inside the body element.
|
8
|
+
#
|
9
|
+
# describe "DOM feature" do
|
10
|
+
# html <<-HTML
|
11
|
+
# <div id="foo"></div>
|
12
|
+
# HTML
|
13
|
+
#
|
14
|
+
# it "foo should exist" do
|
15
|
+
# Document["#foo"]
|
16
|
+
# end
|
17
|
+
# end
|
18
|
+
#
|
19
|
+
# @param [String] html_string html content to add
|
20
|
+
def html(html_string='')
|
21
|
+
html = '<div id="opal-jquery-test-div">' + html_string + '</div>'
|
22
|
+
before do
|
23
|
+
@__html = Document.parse(html)
|
24
|
+
@__html.append_to_body
|
25
|
+
end
|
26
|
+
|
27
|
+
after { @__html.remove }
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
OpalSpec::Runner.autorun
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: opal-jquery
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-10
|
12
|
+
date: 2012-12-10 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: Opal DOM library for jquery
|
15
15
|
email: adam.beynon@gmail.com
|
@@ -23,8 +23,6 @@ files:
|
|
23
23
|
- LICENSE
|
24
24
|
- README.md
|
25
25
|
- Rakefile
|
26
|
-
- docs/post.html
|
27
|
-
- docs/pre.html
|
28
26
|
- lib/opal-jquery.rb
|
29
27
|
- lib/opal-jquery/document.rb
|
30
28
|
- lib/opal-jquery/element.rb
|
@@ -47,6 +45,7 @@ files:
|
|
47
45
|
- spec/element/css_spec.rb
|
48
46
|
- spec/element/display_spec.rb
|
49
47
|
- spec/element/inspect_spec.rb
|
48
|
+
- spec/element/iterable_spec.rb
|
50
49
|
- spec/element/length_spec.rb
|
51
50
|
- spec/element/traversing_spec.rb
|
52
51
|
- spec/element_spec.rb
|
@@ -76,7 +75,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
76
75
|
version: '0'
|
77
76
|
requirements: []
|
78
77
|
rubyforge_project:
|
79
|
-
rubygems_version: 1.8.
|
78
|
+
rubygems_version: 1.8.24
|
80
79
|
signing_key:
|
81
80
|
specification_version: 3
|
82
81
|
summary: Opal access to jquery
|
@@ -95,6 +94,7 @@ test_files:
|
|
95
94
|
- spec/element/css_spec.rb
|
96
95
|
- spec/element/display_spec.rb
|
97
96
|
- spec/element/inspect_spec.rb
|
97
|
+
- spec/element/iterable_spec.rb
|
98
98
|
- spec/element/length_spec.rb
|
99
99
|
- spec/element/traversing_spec.rb
|
100
100
|
- spec/element_spec.rb
|
data/docs/post.html
DELETED
data/docs/pre.html
DELETED
@@ -1,18 +0,0 @@
|
|
1
|
-
<!DOCTYPE html>
|
2
|
-
<html>
|
3
|
-
<head>
|
4
|
-
<title>opal-jquery</title>
|
5
|
-
<link rel="stylesheet" href="css/bootstrap.css" type="text/css">
|
6
|
-
<link rel="stylesheet" href="css/pygment_trac.css" type="text/css">
|
7
|
-
<style>
|
8
|
-
body {
|
9
|
-
padding-top: 42px;
|
10
|
-
}
|
11
|
-
</style>
|
12
|
-
</head>
|
13
|
-
<body>
|
14
|
-
<a href="https://github.com/opal/opal-jquery"><img style="position: absolute; top: 0; right: 0; border: 0;" src="https://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png" alt="Fork me on GitHub"></a>
|
15
|
-
<div class="container">
|
16
|
-
<div class="page-header">
|
17
|
-
<h1>opal-jquery <small>jquery wrapper for opal</small></h1>
|
18
|
-
</div>
|