opal-jquery 0.4.2 → 0.4.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (52) hide show
  1. checksums.yaml +5 -5
  2. data/.editorconfig +12 -0
  3. data/.travis.yml +22 -15
  4. data/CHANGELOG.md +59 -3
  5. data/Gemfile +13 -2
  6. data/README.md +5 -3
  7. data/Rakefile +22 -4
  8. data/config.ru +4 -6
  9. data/lib/opal/jquery/document.rb +2 -0
  10. data/lib/opal/jquery/element.rb +86 -24
  11. data/lib/opal/jquery/http.rb +5 -1
  12. data/lib/opal/jquery/version.rb +1 -1
  13. data/lib/opal/jquery/window.rb +2 -1
  14. data/opal-jquery.gemspec +8 -7
  15. data/{spec → spec-opal}/document_spec.rb +11 -4
  16. data/{spec → spec-opal}/element/after_spec.rb +1 -1
  17. data/{spec → spec-opal}/element/animations_spec.rb +5 -5
  18. data/{spec → spec-opal}/element/append_spec.rb +1 -1
  19. data/{spec → spec-opal}/element/append_to_spec.rb +1 -1
  20. data/{spec → spec-opal}/element/at_spec.rb +1 -1
  21. data/{spec → spec-opal}/element/attributes_spec.rb +1 -1
  22. data/{spec → spec-opal}/element/before_spec.rb +1 -1
  23. data/{spec → spec-opal}/element/class_name_spec.rb +2 -2
  24. data/{spec → spec-opal}/element/css_spec.rb +3 -3
  25. data/{spec → spec-opal}/element/display_spec.rb +6 -6
  26. data/spec-opal/element/expose_spec.rb +73 -0
  27. data/{spec → spec-opal}/element/height_width_spec.rb +1 -1
  28. data/{spec → spec-opal}/element/inspect_spec.rb +1 -1
  29. data/{spec → spec-opal}/element/iterable_spec.rb +1 -1
  30. data/{spec → spec-opal}/element/length_spec.rb +1 -1
  31. data/spec-opal/element/method_missing_spec.rb +34 -0
  32. data/{spec → spec-opal}/element/prepend_spec.rb +1 -1
  33. data/{spec → spec-opal}/element/to_s_spec.rb +1 -1
  34. data/{spec → spec-opal}/element/traversing_spec.rb +5 -5
  35. data/spec-opal/element_spec.rb +261 -0
  36. data/{spec → spec-opal}/event_spec.rb +1 -1
  37. data/{spec → spec-opal}/fixtures/simple.txt +0 -0
  38. data/{spec → spec-opal}/fixtures/user.json +0 -0
  39. data/{spec → spec-opal}/http_spec.rb +1 -1
  40. data/{spec → spec-opal}/jquery/index.html.erb +1 -1
  41. data/spec-opal/jquery/index3.html.erb +10 -0
  42. data/{spec/jquery/jquery.js → spec-opal/jquery/jquery-1.8.3.js} +0 -0
  43. data/spec-opal/jquery/jquery-3.0.0.js +4 -0
  44. data/spec-opal/kernel_spec.rb +15 -0
  45. data/{spec → spec-opal}/local_storage_spec.rb +1 -1
  46. data/{spec → spec-opal}/spec_helper.rb +10 -0
  47. data/{spec → spec-opal}/zepto/index.html.erb +0 -0
  48. data/{spec → spec-opal}/zepto/zepto.js +0 -0
  49. metadata +81 -83
  50. data/spec/element/method_missing_spec.rb +0 -32
  51. data/spec/element_spec.rb +0 -273
  52. data/spec/kernel_spec.rb +0 -7
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 5756803ad9fee99689694217261dfbba137d50d7
4
- data.tar.gz: 4bfe28a1b93a06735ed6a83fce93855d8e52ca7e
2
+ SHA256:
3
+ metadata.gz: 17e1701d287a5fb7acf42bbeb048aa016cd6d8227f0934553bba451497f19137
4
+ data.tar.gz: fc349c46157151fc8d61f29c353d8e9f4ea52ac961a6046b8895d4aa1fbb995f
5
5
  SHA512:
6
- metadata.gz: 87271b5c13e5c02aadf0faa1515f8a8c65c5771c1e2343d8675f3ea0fdf603094a5eae73792481b7aa8b0c637e30956dc9ddc8895c50d17d6dffffcd0fbfa05f
7
- data.tar.gz: f86975805b7a90566de578722020aba59c512754895220e365ae109a4a78c8e4e5f1781b30d756929a0ed1c27102d5404a69f863cc337bf717772e4ff0adb5f3
6
+ metadata.gz: bf2238899bdcd262622da77911e9ec21486130386b7cf4cb1abf01fee14379f180e11cdc67f5f25e69a718294cf11ebf8e05f11c15ac5585f5386d684a0200a6
7
+ data.tar.gz: c6832e7ce09f567586f234ce1a94c447f602f0a792ced7dee29f7d827f24058796ec8015eff2fd4d15376edbe2cf61c020f03b14cfe4ee8ffe980989e9ce73be
data/.editorconfig ADDED
@@ -0,0 +1,12 @@
1
+ root = true
2
+
3
+ [*]
4
+ indent_style = space
5
+ indent_size = 2
6
+ end_of_line = lf
7
+ charset = utf-8
8
+ trim_trailing_whitespace = true
9
+ insert_final_newline = true
10
+
11
+ [*.md]
12
+ trim_trailing_whitespace = false
data/.travis.yml CHANGED
@@ -2,25 +2,18 @@ language: ruby
2
2
  sudo: false
3
3
 
4
4
  fast_finish: true
5
- script: rake $RUN
6
-
7
- before_install:
8
- # thanks to https://mediocre.com/forum/topics/phantomjs-2-and-travis-ci-we-beat-our-heads-against-a-wall-so-you-dont-have-to
9
- - wget https://s3.amazonaws.com/travis-phantomjs/phantomjs-2.0.0-ubuntu-12.04.tar.bz2
10
- - tar -xjf phantomjs-2.0.0-ubuntu-12.04.tar.bz2
11
- # Keep track of which version of phantomjs we're running the specs against
12
- - phantomjs -v
5
+ script: bundle exec rake $RUN
13
6
 
14
7
  matrix:
15
8
  include:
16
- - rvm: 2.3.1
17
- env: PATH=".:$PATH"
18
- - rvm: 2.2.4
19
- env: PATH=".:$PATH"
9
+ - rvm: 2.4.2
10
+ env: OPAL_VERSION='master'
11
+ - rvm: 2.3.4
12
+ env: OPAL_VERSION='~> 0.10.5'
20
13
  - rvm: 2.1.10
21
- env: PATH=".:$PATH" RACK_VERSION='< 2.0'
14
+ env: RACK_VERSION='< 2.0'
22
15
  - rvm: 2.0.0
23
- env: PATH=".:$PATH" RACK_VERSION='< 2.0'
16
+ env: RACK_VERSION='< 2.0'
24
17
 
25
18
  # We use 2.1.9 to differentiate the rvm version
26
19
  # as travis doesn't allow failures by env.
@@ -28,5 +21,19 @@ matrix:
28
21
  env: RUN=zepto PATH=".:$PATH" RACK_VERSION='< 2.0'
29
22
 
30
23
  allow_failures:
31
- - rvm: 2.1.9
24
+ - rvm: 2.1.9 # zepto
25
+
26
+
27
+ cache:
28
+ bundler: true
29
+ directories:
30
+ - node_modules
31
+
32
+ before_install:
33
+ - gem update --system
34
+ - "export PATH=$PWD/travis_phantomjs/phantomjs-2.1.1-linux-x86_64/bin:$PATH"
35
+ - "if [ $(phantomjs --version) != '2.1.1' ]; then rm -rf $PWD/travis_phantomjs; mkdir -p $PWD/travis_phantomjs; fi"
36
+ - "if [ $(phantomjs --version) != '2.1.1' ]; then wget https://assets.membergetmember.co/software/phantomjs-2.1.1-linux-x86_64.tar.bz2 -O $PWD/travis_phantomjs/phantomjs-2.1.1-linux-x86_64.tar.bz2; fi"
37
+ - "if [ $(phantomjs --version) != '2.1.1' ]; then tar -xvf $PWD/travis_phantomjs/phantomjs-2.1.1-linux-x86_64.tar.bz2 -C $PWD/travis_phantomjs; fi"
38
+ - "phantomjs --version"
32
39
 
data/CHANGELOG.md CHANGED
@@ -1,8 +1,64 @@
1
- ## 0.4.2 2016-07-04
1
+ ## [0.5.0](https://github.com/opal/opal-jquery/compare/v0.4.6...HEAD) Unreleased
2
+
3
+ *see diff*
4
+
5
+ ## [0.4.6](https://github.com/opal/opal-jquery/compare/v0.4.5...v0.4.6) Unreleased
6
+
7
+ * Initialize @@__isReady (#115)
8
+
9
+ * Added `Element#select` (#111)
10
+
11
+ ## [0.4.5](https://github.com/opal/opal-jquery/compare/v0.4.4...v0.4.5) 2021-07-28
12
+
13
+ * Expose `Element#replace_all` and `Element#replace_with` (#110)
14
+
15
+ * Open the opal dependency to any 1.x
16
+
17
+ ## [0.4.4](https://github.com/opal/opal-jquery/compare/v0.4.3...v0.4.4) 2019-07-01
18
+
19
+ * Use `::Native::Wrapper` where available
20
+
21
+ * Allow Opal 1.0 in gemspec
22
+
23
+ ## [0.4.3](https://github.com/opal/opal-jquery/compare/v0.4.2...v0.4.3) 2018-09-07
24
+
25
+ * Add `Element#==` as an alias of `.is()`
26
+
27
+ * Add `Element#method_missing` to allow not yet wrapped methods and plugins to be accessed with zero setup
28
+
29
+ * Avoid `||` in JS-land because it would consider some values as falsy (e.g. `""` and `0`). **breaking**
30
+
31
+ * Call `Element#prop` via `Native.call` to get the right semantics around `nil` vs. `undefined` **breaking**
32
+
33
+ * Expose `Element#click`
34
+
35
+ * Fix semantics of `Element#attr` to better reflect jQuery's **breaking**
36
+
37
+ * Skip sending a callback to `Element#animate` if no block is given
38
+
39
+ * Let `Element#data` return a usable Ruby object (`Array`/`Hash`) instead of a native one **breaking**
40
+
41
+ * Don't wrap events with `Event.new` if no args are provided or the event is not a native object to increase performance in `Element#on` and `Element#one`
42
+
43
+ * Rename the internal property holding the callback wrapper in `Element#on` and `Element#one` from `._jq_wrap` to `.$$jqwrap` to avoid polluting instance variables and following the custom of Opal's core classes
44
+
45
+ * Fix `Element#value`, `Element#height` and `Element#width` to perform the `||` at ruby level to avoid overwriting values that are *falsy* in JavaScript with `nil` **breaking**
46
+
47
+ * Add `Element#==` as an alias to jQuery's `.is()`
48
+
49
+ * Add `Element#method_missing` and `Element#respond_to_missing?` to forward calls to native plugins
50
+
51
+ * Add `HTTP#inspect` with a basic summary
52
+
53
+ * Updated specs to also use jQuery 3
54
+
55
+ * Allow Opal v0.11.0
56
+
57
+ ## [0.4.2](https://github.com/opal/opal-jquery/compare/v0.4.1...v0.4.2) 2016-07-04
2
58
 
3
59
  * Allow Opal v0.10.0
4
60
 
5
- ## 0.4.1 2015-11-02
61
+ ## [0.4.1](https://github.com/opal/opal-jquery/compare/v0.4.0...v0.4.1) 2015-11-02
6
62
 
7
63
  * Updated specs to use jQuery 1.8 (that was initially released in 2012)
8
64
 
@@ -12,7 +68,7 @@
12
68
 
13
69
  * `Document.ready?` now works even after the document is loaded (unlike jQuery)
14
70
 
15
- ## 0.4.0 2015-07-17
71
+ ## [0.4.0](https://github.com/opal/opal-jquery/compare/v0.3.0...v0.4.0) 2015-07-17
16
72
 
17
73
  * `Element#[]=` now removes the attribute when the assigned value is nil.
18
74
 
data/Gemfile CHANGED
@@ -1,6 +1,17 @@
1
1
  source 'https://rubygems.org'
2
2
  gemspec
3
3
 
4
- gem 'opal', ENV['OPAL_VERSION'] || '~> 0.10.0'
5
- gem 'opal-rspec', github: 'opal/opal-rspec', submodules: true
4
+ case (opal_version = ENV['OPAL_VERSION'])
5
+ when 'master'
6
+ gem 'opal', github: 'opal/opal', branch: 'master'
7
+ gem 'opal-sprockets', github: 'opal/opal-sprockets'
8
+ gem 'opal-rspec', github: 'opal/opal-rspec', branch: 'master', submodules: true
9
+ when nil
10
+ gem 'opal' # let bundler pick a version
11
+ else
12
+ gem 'opal', opal_version
13
+ end
14
+
15
+ # gem 'opal-rspec', github: 'opal/opal-rspec', submodules: true
16
+ # gem 'opal-rspec', path: '../opal-rspec'
6
17
  gem 'rack', ENV['RACK_VERSION'] || '> 0'
data/README.md CHANGED
@@ -1,11 +1,13 @@
1
- # opal-jquery: jQuery wrapper for Opal
1
+ # Opal jQuery
2
+
3
+ *jQuery wrapper for Opal*
2
4
 
3
5
  [![Build Status](http://img.shields.io/travis/opal/opal-jquery/master.svg)](http://travis-ci.org/opal/opal-jquery)
4
6
 
5
- opal-jquery provides DOM access to opal by wrapping jQuery (or zepto)
7
+ **opal-jquery** provides DOM access to opal by wrapping jQuery (or zepto)
6
8
  and providing a nice ruby syntax for dealing with jQuery instances.
7
9
 
8
- See the Opal website for [documentation](http://opalrb.org/docs/jquery).
10
+ <!-- See the Opal website for [documentation](http://opalrb.org/docs/jquery). -->
9
11
 
10
12
 
11
13
 
data/Rakefile CHANGED
@@ -2,13 +2,22 @@ require 'bundler'
2
2
  Bundler.require
3
3
  Bundler::GemHelper.install_tasks
4
4
 
5
+ ENV['RUNNER'] = 'chrome'
6
+
5
7
  require 'opal/rspec/rake_task'
6
- Opal::RSpec::RakeTask.new(:default) do |s|
7
- s.index_path = 'spec/jquery/index.html.erb'
8
+ Opal::RSpec::RakeTask.new(:default) do |server, task|
9
+ server.index_path = 'spec-opal/jquery/index.html.erb'
10
+ task.default_path = 'spec-opal'
11
+ end
12
+
13
+ Opal::RSpec::RakeTask.new(:jquery3) do |server, task|
14
+ server.index_path = 'spec-opal/jquery/index3.html.erb'
15
+ task.default_path = 'spec-opal'
8
16
  end
9
17
 
10
- Opal::RSpec::RakeTask.new(:zepto) do |s|
11
- s.index_path = 'spec/zepto/index.html.erb'
18
+ Opal::RSpec::RakeTask.new(:zepto) do |server, task|
19
+ server.index_path = 'spec-opal/zepto/index.html.erb'
20
+ task.default_path = 'spec-opal'
12
21
  end
13
22
 
14
23
  desc "Build build/opal-jquery.js"
@@ -64,6 +73,11 @@ namespace :doc do
64
73
  sh 'git', 'clone', '-b', 'gh-pages', '--', remote, doc_repo.to_s
65
74
  end
66
75
 
76
+ # To generate docs that live on http://opalrb.org/opal-jquery/ use the
77
+ # `rake doc` task
78
+ #
79
+ # DOC_REPO_REMOTE=https://github.com/opal/opal-jquery.git bundle exec rake doc
80
+ # open gh-pages/index.html
67
81
  task :default => doc_repo.to_s do
68
82
  git = current_git_release.call
69
83
  name = 'api'
@@ -72,6 +86,10 @@ namespace :doc do
72
86
  "--readme opal/README.md -o gh-pages/doc/#{git}/#{name}"
73
87
  puts command; system command
74
88
  end
89
+
90
+ # To generate api docs on rubygems: http://www.rubydoc.info/gems/opal-jquery/0.4.2
91
+ # yard --main README.md --markup markdown --github
92
+ # open doc/index.html
75
93
  end
76
94
 
77
95
  task :doc => 'doc:default'
data/config.ru CHANGED
@@ -1,13 +1,11 @@
1
1
  require 'bundler'
2
2
  Bundler.require
3
3
 
4
- require 'opal-rspec'
5
- Opal.append_path File.expand_path('../spec', __FILE__)
4
+ require 'opal/rspec'
6
5
 
7
- run Opal::Server.new { |s|
6
+ sprockets_env = Opal::RSpec::SprocketsEnvironment.new
7
+ run Opal::Server.new(sprockets: sprockets_env) { |s|
8
8
  s.main = 'opal/rspec/sprockets_runner'
9
- s.append_path 'spec'
9
+ sprockets_env.add_spec_paths_to_sprockets
10
10
  s.debug = false
11
- s.index_path = 'spec/jquery/index.html.erb'
12
11
  }
13
-
@@ -50,6 +50,8 @@ module Browser
50
50
  # end
51
51
  #
52
52
  module DocumentMethods
53
+ @@__isReady = false
54
+
53
55
  `var $ = #{JQUERY_SELECTOR.to_n}` # cache $ for SPEED
54
56
 
55
57
  # Register a block to run once the document/page is ready.
@@ -298,10 +298,12 @@ class Element < `#{JQUERY_CLASS.to_n}`
298
298
  # @!method get
299
299
  alias_native :get
300
300
 
301
- # @!method prop(name, value = nil)
301
+ # @!method prop(name, value = undefined)
302
302
  #
303
303
  # Get or set the property `name` on each element in collection.
304
- alias_native :prop
304
+ def prop(*args)
305
+ Native.call(self, :prop, *args)
306
+ end
305
307
 
306
308
  alias succ next
307
309
  alias << append
@@ -335,9 +337,21 @@ class Element < `#{JQUERY_CLASS.to_n}`
335
337
  # @!method remove_class(class_name)
336
338
  alias_native :remove_class, :removeClass
337
339
 
340
+ # @!method replace_all(target)
341
+ alias_native :replace_all, :replaceAll
342
+
343
+ # @!method replace_with(new_content)
344
+ alias_native :replace_with, :replaceWith
345
+
346
+ # @!method select()
347
+ alias_native :select
348
+
338
349
  # @!method submit()
339
350
  alias_native :submit
340
351
 
352
+ # @!method click()
353
+ alias_native :click
354
+
341
355
  # @!method text=(text)
342
356
  #
343
357
  # Set text content of each element in this collection.
@@ -416,10 +430,11 @@ class Element < `#{JQUERY_CLASS.to_n}`
416
430
  var size = args.length;
417
431
  switch (size) {
418
432
  case 1:
419
- return #{self[`args[0]`]};
433
+ var result = self.attr(args[0]);
434
+ return( (result == null) ? nil : result );
420
435
  break;
421
436
  case 2:
422
- return #{self[`args[0]`] = `args[1]`};
437
+ return self.attr(args[0], args[1]);
423
438
  break;
424
439
  default:
425
440
  #{raise ArgumentError, '#attr only accepts 1 or 2 arguments'}
@@ -508,16 +523,21 @@ class Element < `#{JQUERY_CLASS.to_n}`
508
523
  # is given, the block is run as a callback when the animation finishes.
509
524
  def animate(params, &block)
510
525
  speed = params.has_key?(:speed) ? params.delete(:speed) : 400
511
- %x{
512
- self.animate(#{params.to_n}, #{speed}, function() {
513
- #{block.call if block_given?}
514
- })
515
- }
526
+ if block_given?
527
+ `self.animate(#{params.to_n}, #{speed}, block)`
528
+ else
529
+ `self.animate(#{params.to_n}, #{speed})`
530
+ end
516
531
  end
517
532
 
518
533
  def data(*args)
519
534
  %x{
520
535
  var result = self.data.apply(self, args);
536
+ if (
537
+ (typeof(result) === 'object') && !(result instanceof #{JQUERY_CLASS})
538
+ ) {
539
+ result = #{ JSON.from_object `result` };
540
+ }
521
541
  return result == null ? nil : result;
522
542
  }
523
543
  end
@@ -646,15 +666,22 @@ class Element < `#{JQUERY_CLASS.to_n}`
646
666
 
647
667
  def on(name, sel = nil, &block)
648
668
  %x{
649
- var wrapper = function(evt) {
650
- if (evt.preventDefault) {
651
- evt = #{Event.new `evt`};
669
+ var has_args = #{block.arity} !== 0;
670
+
671
+ var wrapper = function() {
672
+ for(var args = new Array(arguments.length), i = 0, ii = args.length; i < ii; i++) {
673
+ args[i] = arguments[i];
652
674
  }
653
675
 
654
- return block.apply(null, arguments);
676
+ // Use preventDefault as a canary for native events
677
+ if (has_args && args[0].preventDefault) {
678
+ args[0] = #{Event.new `args[0]`};
679
+ }
680
+
681
+ return block.apply(null, args);
655
682
  };
656
683
 
657
- block._jq_wrap = wrapper;
684
+ block.$$jqwrap = wrapper;
658
685
 
659
686
  if (sel == nil) {
660
687
  self.on(name, wrapper);
@@ -669,15 +696,22 @@ class Element < `#{JQUERY_CLASS.to_n}`
669
696
 
670
697
  def one(name, sel = nil, &block)
671
698
  %x{
672
- var wrapper = function(evt) {
673
- if (evt.preventDefault) {
674
- evt = #{Event.new `evt`};
699
+ var has_args = #{block.arity} !== 0;
700
+
701
+ var wrapper = function() {
702
+ for(var args = new Array(arguments.length), i = 0, ii = args.length; i < ii; i++) {
703
+ args[i] = arguments[i];
704
+ }
705
+
706
+ // Use preventDefault as a canary for native events
707
+ if (has_args && args[0].preventDefault) {
708
+ args[0] = #{Event.new `args[0]`};
675
709
  }
676
710
 
677
- return block.apply(null, arguments);
711
+ return block.apply(null, args);
678
712
  };
679
713
 
680
- block._jq_wrap = wrapper;
714
+ block.$$jqwrap = wrapper;
681
715
 
682
716
  if (sel == nil) {
683
717
  self.one(name, wrapper);
@@ -696,10 +730,10 @@ class Element < `#{JQUERY_CLASS.to_n}`
696
730
  return self.off(name);
697
731
  }
698
732
  else if (block === nil) {
699
- return self.off(name, sel._jq_wrap);
733
+ return self.off(name, sel.$$jqwrap);
700
734
  }
701
735
  else {
702
- return self.off(name, sel, block._jq_wrap);
736
+ return self.off(name, sel, block.$$jqwrap);
703
737
  }
704
738
  }
705
739
  end
@@ -714,18 +748,46 @@ class Element < `#{JQUERY_CLASS.to_n}`
714
748
  alias size length
715
749
 
716
750
  def value
717
- `self.val() || ""`
751
+ `self.val()` || ""
718
752
  end
719
753
 
720
754
  def height
721
- `self.height() || nil`
755
+ `self.height()` || nil
722
756
  end
723
757
 
724
758
  def width
725
- `self.width() || nil`
759
+ `self.width()` || nil
726
760
  end
727
761
 
728
762
  def position
729
763
  Native(`self.position()`)
730
764
  end
765
+
766
+ def ==(other)
767
+ `self.is(other)`
768
+ end
769
+
770
+ def respond_to_missing?(name, _)
771
+ %x{
772
+ var method = self[#{name}];
773
+ if (typeof(method) === 'function') {
774
+ return true;
775
+ } else {
776
+ return #{super};
777
+ }
778
+ }
779
+ end
780
+
781
+ def method_missing(name, *args, &block)
782
+ args << block if block_given?
783
+
784
+ %x{
785
+ var method = self[#{name}];
786
+ if (typeof(method) === 'function') {
787
+ return method.apply(self, #{args.to_n});
788
+ } else {
789
+ return #{super};
790
+ }
791
+ }
792
+ end
731
793
  end
@@ -165,7 +165,7 @@ class HTTP
165
165
 
166
166
  %x{
167
167
  if (typeof(#{payload}) === 'string') {
168
- #{settings}.data = payload;
168
+ settings.data = payload;
169
169
  }
170
170
  else if (payload != nil) {
171
171
  settings.data = payload.$to_json();
@@ -231,6 +231,10 @@ class HTTP
231
231
  }
232
232
  end
233
233
 
234
+ def inspect
235
+ "#<HTTP @url=#{@url} @method=#{@method}>"
236
+ end
237
+
234
238
  private
235
239
 
236
240
  def promise
@@ -1,5 +1,5 @@
1
1
  module Opal
2
2
  module JQuery
3
- VERSION = '0.4.2'
3
+ VERSION = '0.4.6'
4
4
  end
5
5
  end
@@ -6,7 +6,8 @@ module Browser
6
6
  # Generally, you will want to use the top level {::Window} instance, which
7
7
  # wraps `window` from the main page.
8
8
  class Window
9
- include Native
9
+ # In more recent Opal versions Native::Wrapper should be used
10
+ include defined?(Native::Wrapper) ? Native::Wrapper : Native
10
11
 
11
12
  # Returns this {Window} instance wrapped as an {Element}. Useful for
12
13
  # delegating jQuery events, which allows the use of `window` as target.
data/opal-jquery.gemspec CHANGED
@@ -4,19 +4,20 @@ require File.expand_path('../lib/opal/jquery/version', __FILE__)
4
4
  Gem::Specification.new do |s|
5
5
  s.name = 'opal-jquery'
6
6
  s.version = Opal::JQuery::VERSION
7
- s.author = 'Adam Beynon'
8
- s.email = 'adam.beynon@gmail.com'
9
- s.homepage = 'http://opalrb.org'
10
- s.summary = 'Opal access to jquery'
11
- s.description = 'Opal DOM library for jquery'
7
+ s.authors = ['Adam Beynon', 'Elia Schito']
8
+ s.email = 'elia@schito.me'
9
+ s.homepage = 'https://github.com/opal/opal-jquery#readme'
10
+ s.summary = 'Opal access to jQuery'
11
+ s.description = 'Opal DOM library for jQuery'
12
12
 
13
13
  s.files = `git ls-files`.split("\n")
14
14
  s.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
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.7.0', '< 0.11.0'
19
- s.add_development_dependency 'opal-rspec', '~> 0.5'
18
+ s.add_runtime_dependency 'opal', ['>= 0.10.0', '< 2.0']
19
+ s.add_development_dependency 'opal-rspec', ['>= 0.7', '< 2.0']
20
+ s.add_development_dependency 'opal-sprockets', ['>= 0.4.1', '< 2.0']
20
21
  s.add_development_dependency 'yard'
21
22
  s.add_development_dependency 'rake'
22
23
  end
@@ -1,22 +1,29 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Document do
3
+ RSpec.describe 'Document' do
4
4
  subject { Document }
5
5
 
6
6
  describe "ready?" do
7
+ it "accepts a block" do
8
+ Document.ready? {
9
+ puts `$.fn.jquery`
10
+ }
11
+ end
12
+
7
13
  it "accepts a block" do
8
14
  Document.ready? { }
9
15
  end
10
16
  end
11
-
17
+
12
18
  describe "ready" do
19
+ p self.ancestors
13
20
  async "resolves when document is ready" do
14
- Document.ready.then do
21
+ Document.ready.then do
15
22
  async { Document.ready.resolved?.should be_truthy }
16
23
  end
17
24
  end
18
25
  end
19
-
26
+
20
27
  describe "title" do
21
28
  it "gets the document title" do
22
29
  Document.title.should be_kind_of(String)
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe 'Element#after' do
3
+ RSpec.describe 'Element#after' do
4
4
  html <<-HTML
5
5
  <div id="some-header" class="kapow"></div>
6
6
  <div id="foo" class="after-spec-first"></div>
@@ -1,6 +1,6 @@
1
1
  require "spec_helper"
2
2
 
3
- describe "Element animation methods" do
3
+ RSpec.describe "Element animation methods" do
4
4
  html <<-HTML
5
5
  <div id="animate-foo"></div>
6
6
  HTML
@@ -41,16 +41,16 @@ describe "Element animation methods" do
41
41
  end
42
42
  end
43
43
 
44
- describe "Element effects methods" do
44
+ RSpec.describe "Element effects methods" do
45
45
  html <<-HTML
46
46
  <div id="effects-foo"></div>
47
47
  HTML
48
-
48
+
49
49
  describe "#fadeout / #fadein" do
50
50
  async "should fade the element out first" do
51
51
  foo = Element.find "#effects-foo"
52
52
  foo.effect(:fade_out)
53
-
53
+
54
54
  delay 1 do
55
55
  async {
56
56
  foo.css("display").should eq("none")
@@ -64,4 +64,4 @@ describe "Element effects methods" do
64
64
  end
65
65
  end
66
66
  end
67
- end
67
+ end
@@ -1,6 +1,6 @@
1
1
  require "spec_helper"
2
2
 
3
- describe "Element#append" do
3
+ RSpec.describe "Element#append" do
4
4
  html <<-HTML
5
5
  <div id="foo" class="first-append"></div>
6
6
  <div id="bar" class="first-append"></div>
@@ -1,6 +1,6 @@
1
1
  require "spec_helper"
2
2
 
3
- describe "Element#append_to" do
3
+ RSpec.describe "Element#append_to" do
4
4
  html <<-HTML
5
5
  <div id="foo"></div>
6
6
  <div id="bar"></div>
@@ -1,6 +1,6 @@
1
1
  require "spec_helper"
2
2
 
3
- describe "Element#at" do
3
+ RSpec.describe "Element#at" do
4
4
  html <<-HTML
5
5
  <div class="foo" id="blah"></div>
6
6
  <div class="foo" id="bleh"></div>
@@ -1,6 +1,6 @@
1
1
  require "spec_helper"
2
2
 
3
- describe Element do
3
+ RSpec.describe Element do
4
4
  html <<-HTML
5
5
  <div id="foo"></div>
6
6
  <div id="bar" class="apples"></div>
@@ -1,6 +1,6 @@
1
1
  require "spec_helper"
2
2
 
3
- describe "Element#before" do
3
+ RSpec.describe "Element#before" do
4
4
  html <<-HTML
5
5
  <div id="some-header" class="kapow"></div>
6
6
  <div id="foo" class="before-spec-first"></div>