opal-jquery 0.4.2 → 0.4.6

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.
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>