opal-forwardable 0.0.1

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/.gitignore ADDED
@@ -0,0 +1 @@
1
+ /build
data/README.md ADDED
@@ -0,0 +1,2 @@
1
+ Give to Opal access to typed arrays
2
+ ===================================
data/Rakefile ADDED
@@ -0,0 +1,14 @@
1
+ require 'bundler/setup'
2
+ require 'opal'
3
+
4
+ desc 'Build specified dependencies to build dir'
5
+ task :dependencies do
6
+ Opal::DependencyBuilder.new(out: 'build').build
7
+ end
8
+
9
+ desc 'Build latest opal-forwardable to build dir'
10
+ task :build => :dependencies do
11
+ Opal::Builder.new('lib', join: 'build/opal-forwardable.js').build
12
+ end
13
+
14
+ task :default => :build
@@ -0,0 +1,81 @@
1
+ #--
2
+ # DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
3
+ # Version 2, December 2004
4
+ #
5
+ # DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
6
+ # TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
7
+ #
8
+ # 0. You just DO WHAT THE FUCK YOU WANT TO.
9
+ #++
10
+
11
+ module Forwardable
12
+ def instance_delegate(hash)
13
+ hash.each {|methods, accessor|
14
+ methods = [methods] unless methods.respond_to?(:each)
15
+
16
+ methods.each {|method|
17
+ def_instance_delegator(accessor, method)
18
+ }
19
+ }
20
+ end
21
+
22
+ def def_instance_delegators(accessor, *methods)
23
+ methods.each {|method|
24
+ next if [:__send__, :__id__].member?(method)
25
+
26
+ def_instance_delegator(accessor, method)
27
+ }
28
+ end
29
+
30
+ def def_instance_delegator(accessor, method, ali = method)
31
+ if accessor.to_s.start_with?('@')
32
+ define_method ali do |*args, &block|
33
+ instance_variable_get(accessor).__send__(method, *args, &block)
34
+ end
35
+ else
36
+ define_method ali do |*args, &block|
37
+ __send__(accessor).__send__(method, *args, &block)
38
+ end
39
+ end
40
+ end
41
+
42
+ alias delegate instance_delegate
43
+ alias def_delegators def_instance_delegators
44
+ alias def_delegator def_instance_delegator
45
+ end
46
+
47
+ module SingleForwardable
48
+ def single_delegate(hash)
49
+ hash.each {|methods, accessor|
50
+ methods = [methods] unless methods.respond_to?(:each)
51
+
52
+ methods.each {|method|
53
+ def_single_delegator(accessor, method)
54
+ }
55
+ }
56
+ end
57
+
58
+ def def_single_delegators(accessor, *methods)
59
+ methods.each {|method|
60
+ next if [:__send__, :__id__].member?(method)
61
+
62
+ def_single_delegator(accessor, method)
63
+ }
64
+ end
65
+
66
+ def def_single_delegator(accessor, method, ali = method)
67
+ if accessor.to_s.start_with?('@')
68
+ define_singleton_method ali do |*args, &block|
69
+ instance_variable_get(accessor).__send__(method, *args, &block)
70
+ end
71
+ else
72
+ define_singleton_method ali do |*args, &block|
73
+ __send__(accessor).__send__(method, *args, &block)
74
+ end
75
+ end
76
+ end
77
+
78
+ alias delegate single_delegate
79
+ alias def_delegators def_single_delegators
80
+ alias def_delegator def_single_delegator
81
+ end
@@ -0,0 +1,16 @@
1
+ Gem::Specification.new {|s|
2
+ s.name = 'opal-forwardable'
3
+ s.version = '0.0.1'
4
+ s.author = 'meh.'
5
+ s.email = 'meh@paranoici.org'
6
+ s.homepage = 'http://github.com/opal/opal-forwardable'
7
+ s.platform = Gem::Platform::RUBY
8
+ s.summary = 'Opal implementation of forwardable'
9
+
10
+ s.files = `git ls-files`.split("\n")
11
+ s.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
12
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
13
+ s.require_paths = ['lib']
14
+
15
+ s.add_dependency 'opal'
16
+ }
metadata ADDED
@@ -0,0 +1,60 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: opal-forwardable
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - meh.
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-01-10 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: opal
16
+ requirement: &6737940 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *6737940
25
+ description:
26
+ email: meh@paranoici.org
27
+ executables: []
28
+ extensions: []
29
+ extra_rdoc_files: []
30
+ files:
31
+ - .gitignore
32
+ - README.md
33
+ - Rakefile
34
+ - lib/opal/forwardable.rb
35
+ - opal-forwardable.gemspec
36
+ homepage: http://github.com/opal/opal-forwardable
37
+ licenses: []
38
+ post_install_message:
39
+ rdoc_options: []
40
+ require_paths:
41
+ - lib
42
+ required_ruby_version: !ruby/object:Gem::Requirement
43
+ none: false
44
+ requirements:
45
+ - - ! '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ required_rubygems_version: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ requirements: []
55
+ rubyforge_project:
56
+ rubygems_version: 1.8.10
57
+ signing_key:
58
+ specification_version: 3
59
+ summary: Opal implementation of forwardable
60
+ test_files: []