opal-jquery 0.0.11 → 0.0.12
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.
- data/Gemfile +2 -1
- data/README.md +18 -4
- data/lib/opal/jquery/version.rb +1 -1
- data/opal-jquery.gemspec +2 -2
- data/opal/opal-jquery/document.rb +12 -5
- data/opal/opal-jquery/element.rb +19 -16
- data/opal/opal-jquery/event.rb +10 -1
- data/opal/opal-jquery/http.rb +3 -7
- data/spec/document_spec.rb +20 -3
- data/spec/element/inspect_spec.rb +3 -3
- metadata +21 -15
- checksums.yaml +0 -7
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -8,13 +8,25 @@ opal-jquery is [hosted on github](http://github.com/opal/opal-jquery).
|
|
8
8
|
|
9
9
|
See the [website for documentation](http://opalrb.org/jquery).
|
10
10
|
|
11
|
-
|
11
|
+
## Documentation
|
12
|
+
|
13
|
+
### HTTP
|
14
|
+
|
15
|
+
The `HTTP` class wraps jQuery's ajax request into a ruby class.
|
16
|
+
|
17
|
+
```ruby
|
18
|
+
HTTP.get("/users/1.json") do |response|
|
19
|
+
puts "Got response!"
|
20
|
+
end
|
21
|
+
```
|
22
|
+
|
23
|
+
## Running Specs
|
12
24
|
|
13
25
|
Get the dependencies:
|
14
26
|
|
15
27
|
$ bundle install
|
16
28
|
|
17
|
-
|
29
|
+
### Browser
|
18
30
|
|
19
31
|
You can run the specs in any web browser, by running the `config.ru` rack file:
|
20
32
|
|
@@ -22,7 +34,7 @@ You can run the specs in any web browser, by running the `config.ru` rack file:
|
|
22
34
|
|
23
35
|
And then visiting `http://localhost:9292` in any web browser.
|
24
36
|
|
25
|
-
|
37
|
+
### Phantomjs
|
26
38
|
|
27
39
|
You will need phantomjs to run the specs outside the browser. It can
|
28
40
|
be downloaded at [http://phantomjs.org/download.html](http://phantomjs.org/download.html)
|
@@ -35,7 +47,9 @@ Run the tests inside a phantom.js runner:
|
|
35
47
|
|
36
48
|
$ bundle exec rake
|
37
49
|
|
38
|
-
|
50
|
+
## License
|
51
|
+
|
52
|
+
(The MIT License)
|
39
53
|
|
40
54
|
Copyright (C) 2013 by Adam Beynon
|
41
55
|
|
data/lib/opal/jquery/version.rb
CHANGED
data/opal-jquery.gemspec
CHANGED
@@ -15,6 +15,6 @@ Gem::Specification.new do |s|
|
|
15
15
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
16
16
|
s.require_paths = ['lib']
|
17
17
|
|
18
|
-
s.add_runtime_dependency 'opal', '>= 0.4.
|
19
|
-
s.add_development_dependency 'opal-spec', '>= 0.
|
18
|
+
s.add_runtime_dependency 'opal', '>= 0.4.3'
|
19
|
+
s.add_development_dependency 'opal-spec', '>= 0.3.0'
|
20
20
|
end
|
@@ -1,13 +1,20 @@
|
|
1
1
|
require 'opal-jquery/element'
|
2
2
|
|
3
|
-
|
3
|
+
Document = Element.find(`document`)
|
4
4
|
|
5
|
-
class <<
|
6
|
-
# Use Element.ready? instead
|
5
|
+
class << Document
|
7
6
|
def ready?(&block)
|
8
|
-
|
7
|
+
`$(#{ block })` if block
|
8
|
+
end
|
9
|
+
|
10
|
+
def title
|
11
|
+
`document.title`
|
12
|
+
end
|
13
|
+
|
14
|
+
def title=(title)
|
15
|
+
`document.title = #{title}`
|
9
16
|
end
|
10
17
|
end
|
11
18
|
|
12
19
|
# TODO: this will be removed soon (here for compatibility)
|
13
|
-
|
20
|
+
$document = Document
|
data/opal/opal-jquery/element.rb
CHANGED
@@ -1,16 +1,19 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
%x{
|
5
|
-
var root = __opal.global, dom_class;
|
1
|
+
class Element
|
2
|
+
%x{
|
3
|
+
var root = __opal.global, dom_class;
|
6
4
|
|
7
|
-
|
8
|
-
|
9
|
-
}
|
5
|
+
if (root.jQuery) {
|
6
|
+
dom_class = jQuery
|
7
|
+
}
|
8
|
+
else if (root.Zepto) {
|
9
|
+
dom_class = Zepto.zepto.Z;
|
10
|
+
}
|
10
11
|
|
11
|
-
|
12
|
+
#{self}._proto = dom_class.prototype, def = #{self}._proto;
|
13
|
+
dom_class.prototype._klass = #{self};
|
14
|
+
}
|
12
15
|
|
13
|
-
|
16
|
+
include Kernel
|
14
17
|
include Enumerable
|
15
18
|
|
16
19
|
def self.find(selector)
|
@@ -41,15 +44,11 @@ class Element
|
|
41
44
|
`$(str)`
|
42
45
|
end
|
43
46
|
|
44
|
-
def self.ready?(&block)
|
45
|
-
`$(#{ block })` if block
|
46
|
-
end
|
47
|
-
|
48
47
|
def self.expose(*methods)
|
49
48
|
%x{
|
50
49
|
for (var i = 0, length = methods.length, method; i < length; i++) {
|
51
50
|
method = methods[i];
|
52
|
-
#{self}.
|
51
|
+
#{self}._proto['$' + method] = #{self}._proto[method];
|
53
52
|
}
|
54
53
|
|
55
54
|
return nil;
|
@@ -102,6 +101,10 @@ class Element
|
|
102
101
|
super
|
103
102
|
end
|
104
103
|
|
104
|
+
def to_n
|
105
|
+
self
|
106
|
+
end
|
107
|
+
|
105
108
|
def [](name)
|
106
109
|
`#{self}.attr(name) || ""`
|
107
110
|
end
|
@@ -340,7 +343,7 @@ class Element
|
|
340
343
|
result.push(str + '>');
|
341
344
|
}
|
342
345
|
|
343
|
-
return '[' + result.join(', ') + ']';
|
346
|
+
return '#<Element [' + result.join(', ') + ']>';
|
344
347
|
}
|
345
348
|
end
|
346
349
|
|
data/opal/opal-jquery/event.rb
CHANGED
@@ -1,7 +1,16 @@
|
|
1
|
-
Class.bridge_class 'Event', `$.Event`
|
1
|
+
#Class.bridge_class 'Event', `$.Event`
|
2
2
|
|
3
3
|
# Wraps native jQuery event objects.
|
4
4
|
class Event
|
5
|
+
%x{
|
6
|
+
var bridge_class = $.Event;
|
7
|
+
|
8
|
+
#{self}._proto = bridge_class.prototype, def = #{self}._proto;
|
9
|
+
bridge_class.prototype._klass = #{self};
|
10
|
+
}
|
11
|
+
|
12
|
+
include Kernel
|
13
|
+
|
5
14
|
def [](name)
|
6
15
|
`#{self}[name]`
|
7
16
|
end
|
data/opal/opal-jquery/http.rb
CHANGED
@@ -1,9 +1,5 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
# HTTP.get("/users/1.json") do |response|
|
4
|
-
# puts "Got response!"
|
5
|
-
# end
|
6
|
-
#
|
1
|
+
require 'json'
|
2
|
+
|
7
3
|
class HTTP
|
8
4
|
attr_reader :body, :error_message, :method, :status_code, :url, :xhr
|
9
5
|
|
@@ -40,7 +36,7 @@ class HTTP
|
|
40
36
|
if (typeof(payload) === 'string') {
|
41
37
|
settings.data = payload;
|
42
38
|
}
|
43
|
-
else if (payload !=
|
39
|
+
else if (payload != nil) {
|
44
40
|
settings.data = payload.$to_json();
|
45
41
|
settings.contentType = 'application/json';
|
46
42
|
}
|
data/spec/document_spec.rb
CHANGED
@@ -1,7 +1,24 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
describe
|
4
|
-
|
5
|
-
|
3
|
+
describe Document do
|
4
|
+
describe "ready?" do
|
5
|
+
it "accepts a block" do
|
6
|
+
Document.ready? { }
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
describe "title" do
|
11
|
+
it "gets the document title" do
|
12
|
+
Document.title.should be_kind_of(String)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
describe "title=" do
|
17
|
+
it "sets the document title" do
|
18
|
+
old = Document.title
|
19
|
+
Document.title = "foo"
|
20
|
+
Document.title.should eq("foo")
|
21
|
+
Document.title = old
|
22
|
+
end
|
6
23
|
end
|
7
24
|
end
|
@@ -8,11 +8,11 @@ describe "Element#inspect" do
|
|
8
8
|
HTML
|
9
9
|
|
10
10
|
it "should return a string representation of the elements" do
|
11
|
-
Element.find('#foo').inspect.should == '[<div id="foo">]'
|
12
|
-
Element.find('.bar').inspect.should == '[<div class="bar">, <p id="lol" class="bar">]'
|
11
|
+
Element.find('#foo').inspect.should == '#<Element [<div id="foo">]>'
|
12
|
+
Element.find('.bar').inspect.should == '#<Element [<div class="bar">, <p id="lol" class="bar">]>'
|
13
13
|
end
|
14
14
|
|
15
15
|
it "should return '[]' when called on empty element set" do
|
16
|
-
Element.find('.inspect-spec-none').inspect.should == '[]'
|
16
|
+
Element.find('.inspect-spec-none').inspect.should == '#<Element []>'
|
17
17
|
end
|
18
18
|
end
|
metadata
CHANGED
@@ -1,43 +1,48 @@
|
|
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.12
|
5
|
+
prerelease:
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- Adam Beynon
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date: 2013-07-
|
12
|
+
date: 2013-07-27 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: opal
|
15
16
|
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
16
18
|
requirements:
|
17
|
-
- - '>='
|
19
|
+
- - ! '>='
|
18
20
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.4.
|
21
|
+
version: 0.4.3
|
20
22
|
type: :runtime
|
21
23
|
prerelease: false
|
22
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
23
26
|
requirements:
|
24
|
-
- - '>='
|
27
|
+
- - ! '>='
|
25
28
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.4.
|
29
|
+
version: 0.4.3
|
27
30
|
- !ruby/object:Gem::Dependency
|
28
31
|
name: opal-spec
|
29
32
|
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
30
34
|
requirements:
|
31
|
-
- - '>='
|
35
|
+
- - ! '>='
|
32
36
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0.
|
37
|
+
version: 0.3.0
|
34
38
|
type: :development
|
35
39
|
prerelease: false
|
36
40
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
37
42
|
requirements:
|
38
|
-
- - '>='
|
43
|
+
- - ! '>='
|
39
44
|
- !ruby/object:Gem::Version
|
40
|
-
version: 0.
|
45
|
+
version: 0.3.0
|
41
46
|
description: Opal DOM library for jquery
|
42
47
|
email: adam.beynon@gmail.com
|
43
48
|
executables: []
|
@@ -94,26 +99,27 @@ files:
|
|
94
99
|
- spec/zepto.js
|
95
100
|
homepage: http://opalrb.org
|
96
101
|
licenses: []
|
97
|
-
metadata: {}
|
98
102
|
post_install_message:
|
99
103
|
rdoc_options: []
|
100
104
|
require_paths:
|
101
105
|
- lib
|
102
106
|
required_ruby_version: !ruby/object:Gem::Requirement
|
107
|
+
none: false
|
103
108
|
requirements:
|
104
|
-
- - '>='
|
109
|
+
- - ! '>='
|
105
110
|
- !ruby/object:Gem::Version
|
106
111
|
version: '0'
|
107
112
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
113
|
+
none: false
|
108
114
|
requirements:
|
109
|
-
- - '>='
|
115
|
+
- - ! '>='
|
110
116
|
- !ruby/object:Gem::Version
|
111
117
|
version: '0'
|
112
118
|
requirements: []
|
113
119
|
rubyforge_project:
|
114
|
-
rubygems_version:
|
120
|
+
rubygems_version: 1.8.23
|
115
121
|
signing_key:
|
116
|
-
specification_version:
|
122
|
+
specification_version: 3
|
117
123
|
summary: Opal access to jquery
|
118
124
|
test_files:
|
119
125
|
- spec/data/simple.txt
|
checksums.yaml
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
---
|
2
|
-
SHA1:
|
3
|
-
metadata.gz: 1a1320ee8ce46da9f6e13f8fae2cf9dc5b062057
|
4
|
-
data.tar.gz: 68176702723fe79fa9a41b4aa72e9f80a3197055
|
5
|
-
SHA512:
|
6
|
-
metadata.gz: c2374379fc2299c09c9102b042d83551031efacd1552a7b56fd1a7575c073e30d8e799abc42998785ddcfb425acc3acfca56696a3f4f48a4a10912257c82bb24
|
7
|
-
data.tar.gz: b16dbca570cf895d958b0a5a81f65b0aa2d302169b5827b764167ef6e2648e9804685748956fbf402e8c238de2db8b303c253b8bc4e29030f27e65e498e9b402
|