iolite 0.0.3 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- metadata +17 -122
- data/.gitignore +0 -24
- data/.rspec +0 -2
- data/.travis.yml +0 -5
- data/Gemfile +0 -4
- data/LICENSE.txt +0 -22
- data/README.md +0 -88
- data/Rakefile +0 -7
- data/docs/iolite.md +0 -314
- data/docs/release_note.md +0 -15
- data/example/array.rb +0 -17
- data/example/compare_lambda_driver.rb +0 -78
- data/example/fizzbuzz.rb +0 -15
- data/example/hash.rb +0 -14
- data/example/lazy_list.rb +0 -14
- data/example/minimal_implement.rb +0 -42
- data/example/simple.rb +0 -46
- data/example/to_lazy.rb +0 -37
- data/iolite.gemspec +0 -24
- data/lib/iolite/adaptor/all.rb +0 -22
- data/lib/iolite/adaptor/apply.rb +0 -10
- data/lib/iolite/adaptor/bind.rb +0 -9
- data/lib/iolite/adaptor/callable.rb +0 -7
- data/lib/iolite/adaptor/define_send_original_methods.rb +0 -12
- data/lib/iolite/adaptor/method_missing.rb +0 -10
- data/lib/iolite/adaptor/operators.rb +0 -26
- data/lib/iolite/adaptor/send.rb +0 -11
- data/lib/iolite/adaptor/to_lazy.rb +0 -11
- data/lib/iolite/adaptor/to_proc.rb +0 -10
- data/lib/iolite/adaptor.rb +0 -2
- data/lib/iolite/adaptored/array.rb +0 -12
- data/lib/iolite/adaptored/hash.rb +0 -14
- data/lib/iolite/adaptored/iolite_lazy_with_hash.rb +0 -7
- data/lib/iolite/adaptored/object_with_to_lazy.rb +0 -5
- data/lib/iolite/adaptored/proc.rb +0 -5
- data/lib/iolite/adaptored/proc_with_callable.rb +0 -5
- data/lib/iolite/adaptored/string.rb +0 -21
- data/lib/iolite/functinal/bind.rb +0 -12
- data/lib/iolite/functinal/define_iolite_functinal_send_method.rb +0 -9
- data/lib/iolite/functinal/invoke.rb +0 -11
- data/lib/iolite/functinal/send.rb +0 -13
- data/lib/iolite/functinal.rb +0 -4
- data/lib/iolite/lazy.rb +0 -40
- data/lib/iolite/placeholders.rb +0 -30
- data/lib/iolite/refinements/array.rb +0 -16
- data/lib/iolite/refinements/hash.rb +0 -18
- data/lib/iolite/refinements/object_with_to_lazy.rb +0 -9
- data/lib/iolite/refinements/proc.rb +0 -9
- data/lib/iolite/refinements/string.rb +0 -26
- data/lib/iolite/refinements.rb +0 -6
- data/lib/iolite/statement/if.rb +0 -50
- data/lib/iolite/statement/if_else.rb +0 -12
- data/lib/iolite/statement.rb +0 -3
- data/lib/iolite/version.rb +0 -3
- data/lib/iolite.rb +0 -14
- data/spec/iolite_adaptored_spec.rb +0 -105
- data/spec/iolite_functinal_spec.rb +0 -87
- data/spec/iolite_lazy_spec.rb +0 -92
- data/spec/iolite_spec.rb +0 -212
- data/spec/spec_helper.rb +0 -2
@@ -1,78 +0,0 @@
|
|
1
|
-
# Compare lambda_driver and iolite
|
2
|
-
# lambda_driver : http://yuroyoro.github.io/lambda_driver/
|
3
|
-
# http://yuroyoro.hatenablog.com/entry/2013/03/27/190640
|
4
|
-
|
5
|
-
require "iolite"
|
6
|
-
require "lambda_driver"
|
7
|
-
|
8
|
-
include Iolite::Placeholders
|
9
|
-
using Iolite::Refinements::ObjectWithToLazy
|
10
|
-
|
11
|
-
|
12
|
-
###########################################################
|
13
|
-
# default
|
14
|
-
[:foo, :bar, :baz].map{|s| s.to_s }.map{|s| s.upcase }
|
15
|
-
# or
|
16
|
-
[:foo, :bar, :baz].map(&:to_s).map(&:upcase)
|
17
|
-
# => ["FOO", "BAR", "BAZ"]
|
18
|
-
|
19
|
-
# lambda_driver
|
20
|
-
[:foo, :bar, :baz].map(&:to_s >> :upcase )
|
21
|
-
|
22
|
-
# iolite
|
23
|
-
[:foo, :bar, :baz].map &arg1.to_s.upcase
|
24
|
-
|
25
|
-
|
26
|
-
###########################################################
|
27
|
-
# default
|
28
|
-
[:foo, :hoge, :bar, :fuga].select{|s| s.to_s.length > 3}
|
29
|
-
# => [:hoge, :fuga]
|
30
|
-
|
31
|
-
# lambda_driver
|
32
|
-
[:foo, :hoge, :bar, :fuga].select(&:to_s >> :length >> 3._(:<))
|
33
|
-
|
34
|
-
# iolite
|
35
|
-
[:foo, :hoge, :bar, :fuga].select &arg1.to_s.length > 3
|
36
|
-
|
37
|
-
|
38
|
-
###########################################################
|
39
|
-
# default
|
40
|
-
[:foo, :hoge, :bar, :fuga].select{|s| s.to_s.length > 3}
|
41
|
-
# => [:hoge, :fuga]
|
42
|
-
|
43
|
-
# lambda_driver
|
44
|
-
[:foo, :hoge, :bar, :fuga].select(&:to_s >> :length >> 3._(:<))
|
45
|
-
|
46
|
-
# iolite
|
47
|
-
[:foo, :hoge, :bar, :fuga].select &arg1.to_s.length > 3
|
48
|
-
|
49
|
-
|
50
|
-
###########################################################
|
51
|
-
# default
|
52
|
-
(1..10).select { |it| it % 2 == 0 }
|
53
|
-
# => [2, 4, 6, 8, 10]
|
54
|
-
|
55
|
-
# lambda_driver
|
56
|
-
(1..10).select &(:% * 2) >> (:== * 0)
|
57
|
-
|
58
|
-
# iolite
|
59
|
-
(1..10).select &arg1 % 2 == 0
|
60
|
-
|
61
|
-
|
62
|
-
###########################################################
|
63
|
-
def twice n
|
64
|
-
n + n
|
65
|
-
end
|
66
|
-
|
67
|
-
# default
|
68
|
-
puts twice(10).to_s.length
|
69
|
-
|
70
|
-
# lambda_driver
|
71
|
-
_.twice >> :to_s >> :length >> _.puts < 10
|
72
|
-
|
73
|
-
# iolite
|
74
|
-
using Iolite::Refinements::ObjectWithToLazy
|
75
|
-
to_l.puts(to_l.twice(arg1).to_s.length).call(10)
|
76
|
-
|
77
|
-
|
78
|
-
|
data/example/fizzbuzz.rb
DELETED
data/example/hash.rb
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
require "iolite"
|
2
|
-
|
3
|
-
# Use require
|
4
|
-
# define Hash#to_proc
|
5
|
-
require "iolite/adaptored/hash"
|
6
|
-
|
7
|
-
include Iolite::Placeholders
|
8
|
-
|
9
|
-
p ({arg1 => arg2}).to_proc.call(:name, "homu")
|
10
|
-
# => {:name=>"homu"}
|
11
|
-
|
12
|
-
p ["homu", "mami", "mado"]. map &({ name: arg1 })
|
13
|
-
# => [{:name=>"homu"}, {:name=>"mami"}, {:name=>"mado"}]
|
14
|
-
|
data/example/lazy_list.rb
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
require "iolite"
|
2
|
-
|
3
|
-
include Iolite::Placeholders
|
4
|
-
|
5
|
-
# Using Object#to_lazy
|
6
|
-
using Iolite::Refinements::ObjectWithToLazy
|
7
|
-
|
8
|
-
evens = (1..Float::INFINITY).to_lazy # to lazy list
|
9
|
-
.first(arg1).select(&arg1 % 2 == 0)
|
10
|
-
|
11
|
-
p evens.call(10)
|
12
|
-
# => [2, 4, 6, 8, 10]
|
13
|
-
p evens.call(20)
|
14
|
-
# => [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
|
@@ -1,42 +0,0 @@
|
|
1
|
-
|
2
|
-
# invoke call function
|
3
|
-
def invoke func, *args
|
4
|
-
func.respond_to?(:call) ? func.call(*args) : func
|
5
|
-
end
|
6
|
-
|
7
|
-
class Proc
|
8
|
-
# send method
|
9
|
-
def send symbol, *args_
|
10
|
-
Proc.new { |*args|
|
11
|
-
self.call(*args).send(symbol, *args_.map{ |it| invoke(it, *args) })
|
12
|
-
}
|
13
|
-
end
|
14
|
-
|
15
|
-
# call any method
|
16
|
-
def method_missing symbol, *args
|
17
|
-
send(symbol, *args)
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
|
22
|
-
# return args[N]
|
23
|
-
arg1 = Proc.new { |*args| args[0] }
|
24
|
-
arg2 = Proc.new { |*args| args[1] }
|
25
|
-
|
26
|
-
|
27
|
-
# assemble expr
|
28
|
-
f = arg1 + arg2
|
29
|
-
|
30
|
-
# apply expr
|
31
|
-
result = f.call(1, 2)
|
32
|
-
# => 3
|
33
|
-
|
34
|
-
# call
|
35
|
-
# 1. (arg1 + arg2).call(1, 2)
|
36
|
-
# 2. arg1.send(:+, arg2).call(1, 2)
|
37
|
-
# 3. arg1.call(1, 2).send(invoke(:+, 1, 2), invoke(arg2, 1, 2))
|
38
|
-
# 4. arg1.call(1, 2).send(:+, arg2.call(1, 2))
|
39
|
-
# 5. [1, 2][0].send(:+, [1, 2][1])
|
40
|
-
# 6. 1.send(:+, 2)
|
41
|
-
# 7. 3
|
42
|
-
|
data/example/simple.rb
DELETED
@@ -1,46 +0,0 @@
|
|
1
|
-
require "iolite"
|
2
|
-
|
3
|
-
|
4
|
-
#######################################
|
5
|
-
# Using block
|
6
|
-
#######################################
|
7
|
-
|
8
|
-
p (1..5).map { |it| it + 3 }
|
9
|
-
# => [4, 5, 6, 7, 8]
|
10
|
-
|
11
|
-
p (1..5).inject { |memo, item| memo + item }
|
12
|
-
# => 15
|
13
|
-
|
14
|
-
p ["homu", "mami", "an"].inject(0) { |memo, item| memo + item.length }
|
15
|
-
# => 10
|
16
|
-
|
17
|
-
p [{name: :homu}, {name: :mami}].map { |it| it[:name] }
|
18
|
-
# => [:homu, :mami]
|
19
|
-
|
20
|
-
p [:homu, :mami, :mado].select { |it| it =~ /^m/ }
|
21
|
-
# => [:mami, :mado]
|
22
|
-
|
23
|
-
|
24
|
-
#######################################
|
25
|
-
# Using iolite
|
26
|
-
#######################################
|
27
|
-
|
28
|
-
# using arg1, arg2...
|
29
|
-
include Iolite::Placeholders
|
30
|
-
|
31
|
-
p (1..5).map &arg1 + 3
|
32
|
-
# => [4, 5, 6, 7, 8]
|
33
|
-
|
34
|
-
p (1..5).inject &arg1 + arg2
|
35
|
-
# => 15
|
36
|
-
|
37
|
-
p ["homu", "mami", "an"].inject 0, &arg1 + arg2.length
|
38
|
-
# => 10
|
39
|
-
|
40
|
-
p [{name: :homu}, {name: :mami}].map &arg1[:name]
|
41
|
-
# => [:homu, :mami]
|
42
|
-
|
43
|
-
p [:homu, :mami, :mado].select &arg1 =~ /^m/
|
44
|
-
# => [:mami, :mado]
|
45
|
-
|
46
|
-
|
data/example/to_lazy.rb
DELETED
@@ -1,37 +0,0 @@
|
|
1
|
-
require "iolite"
|
2
|
-
|
3
|
-
require "iolite/refinements/object_with_to_lazy"
|
4
|
-
using Iolite::Refinements::ObjectWithToLazy
|
5
|
-
|
6
|
-
# Using 1.9.x
|
7
|
-
# require "iolite/adaptored/object_with_to_lazy"
|
8
|
-
|
9
|
-
|
10
|
-
include Iolite::Placeholders
|
11
|
-
|
12
|
-
|
13
|
-
class X
|
14
|
-
def plus a, b
|
15
|
-
a + b
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
x = X.new
|
20
|
-
|
21
|
-
# To to_lazy object
|
22
|
-
# to_lazy return "Iolite.lazy { |*args| self }"
|
23
|
-
to_lazy_x = x.to_lazy
|
24
|
-
|
25
|
-
# To to_lazy function
|
26
|
-
to_lazy_f = to_lazy_x.plus(arg1, arg2)
|
27
|
-
|
28
|
-
puts to_lazy_f.call(1, 2)
|
29
|
-
# => 3
|
30
|
-
|
31
|
-
|
32
|
-
str = "saya."
|
33
|
-
["homu", "mami", "mado"].each &str.to_lazy.concat(arg1 + ".")
|
34
|
-
puts str
|
35
|
-
# => saya.homu.mami.mado.
|
36
|
-
|
37
|
-
|
data/iolite.gemspec
DELETED
@@ -1,24 +0,0 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
lib = File.expand_path('../lib', __FILE__)
|
3
|
-
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
-
require 'iolite/version'
|
5
|
-
|
6
|
-
Gem::Specification.new do |spec|
|
7
|
-
spec.name = "iolite"
|
8
|
-
spec.version = Iolite::VERSION
|
9
|
-
spec.authors = ["manga_osyo"]
|
10
|
-
spec.email = ["manga.osyo@gmail.com"]
|
11
|
-
spec.summary = %q{unblockable library}
|
12
|
-
spec.description = %q{unblockable library}
|
13
|
-
spec.homepage = ""
|
14
|
-
spec.license = "MIT"
|
15
|
-
|
16
|
-
spec.files = `git ls-files -z`.split("\x0")
|
17
|
-
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
|
-
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
|
-
spec.require_paths = ["lib"]
|
20
|
-
|
21
|
-
spec.add_development_dependency "bundler", "~> 1.6"
|
22
|
-
spec.add_development_dependency "rake"
|
23
|
-
spec.add_development_dependency "rspec"
|
24
|
-
end
|
data/lib/iolite/adaptor/all.rb
DELETED
@@ -1,22 +0,0 @@
|
|
1
|
-
require "iolite/adaptor/define_send_original_methods"
|
2
|
-
require "iolite/adaptor/callable"
|
3
|
-
require "iolite/adaptor/bind"
|
4
|
-
require "iolite/adaptor/send"
|
5
|
-
require "iolite/adaptor/to_proc"
|
6
|
-
require "iolite/adaptor/apply"
|
7
|
-
require "iolite/adaptor/operators"
|
8
|
-
require "iolite/adaptor/method_missing"
|
9
|
-
require "iolite/adaptor/to_lazy"
|
10
|
-
|
11
|
-
module Iolite module Adaptor
|
12
|
-
module All
|
13
|
-
include Callable
|
14
|
-
include Bind
|
15
|
-
include Send
|
16
|
-
include MethodMissing
|
17
|
-
include ToProc
|
18
|
-
include Apply
|
19
|
-
include Operators
|
20
|
-
include ToLazy
|
21
|
-
end
|
22
|
-
end end
|
data/lib/iolite/adaptor/apply.rb
DELETED
data/lib/iolite/adaptor/bind.rb
DELETED
@@ -1,12 +0,0 @@
|
|
1
|
-
require "iolite/functinal/send"
|
2
|
-
|
3
|
-
class Module
|
4
|
-
def iolite_define_send_original_methods prefix = "_"
|
5
|
-
instance_methods.each{ |method|
|
6
|
-
next if method !~ /\w/
|
7
|
-
define_method("#{prefix + method.to_s}"){ |*args|
|
8
|
-
Iolite::Functinal.send(self, method, *args)
|
9
|
-
}
|
10
|
-
}
|
11
|
-
end
|
12
|
-
end
|
@@ -1,26 +0,0 @@
|
|
1
|
-
require "iolite/functinal/define_iolite_functinal_send_method"
|
2
|
-
|
3
|
-
module Iolite module Adaptor
|
4
|
-
module Operators
|
5
|
-
define_iolite_functinal_send_method :==
|
6
|
-
define_iolite_functinal_send_method :=~
|
7
|
-
define_iolite_functinal_send_method :!
|
8
|
-
define_iolite_functinal_send_method :!=
|
9
|
-
define_iolite_functinal_send_method :!~
|
10
|
-
define_iolite_functinal_send_method :===
|
11
|
-
|
12
|
-
# &&
|
13
|
-
def product rhs
|
14
|
-
Lazy.new { |*args|
|
15
|
-
Functinal.invoke(self, *args) && Functinal.invoke(rhs, *args)
|
16
|
-
}
|
17
|
-
end
|
18
|
-
|
19
|
-
# ||
|
20
|
-
def disjunction rhs
|
21
|
-
Lazy.new { |*args|
|
22
|
-
Functinal.invoke(self, *args) || Functinal.invoke(rhs, *args)
|
23
|
-
}
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end end
|
data/lib/iolite/adaptor/send.rb
DELETED
data/lib/iolite/adaptor.rb
DELETED
@@ -1,12 +0,0 @@
|
|
1
|
-
require "iolite/adaptor/all"
|
2
|
-
require "iolite/functinal/invoke"
|
3
|
-
|
4
|
-
class Array
|
5
|
-
include Iolite::Adaptor::ToProc
|
6
|
-
include Iolite::Adaptor::Bind
|
7
|
-
include Iolite::Adaptor::Apply
|
8
|
-
include Iolite::Adaptor::Callable
|
9
|
-
def call *args
|
10
|
-
Iolite::Functinal.invoke_a(self, *args)
|
11
|
-
end
|
12
|
-
end
|
@@ -1,14 +0,0 @@
|
|
1
|
-
require "iolite/adaptor/all"
|
2
|
-
require "iolite/adaptored/iolite_lazy_with_hash"
|
3
|
-
|
4
|
-
class Hash
|
5
|
-
include Iolite::Adaptor::ToProc
|
6
|
-
include Iolite::Adaptor::Bind
|
7
|
-
include Iolite::Adaptor::Apply
|
8
|
-
include Iolite::Adaptor::Callable
|
9
|
-
def call *args
|
10
|
-
Hash[ self.map { |key, value|
|
11
|
-
Iolite::Functinal.invoke_a([key, value], *args)
|
12
|
-
} ]
|
13
|
-
end
|
14
|
-
end
|
@@ -1,21 +0,0 @@
|
|
1
|
-
require "iolite/placeholders"
|
2
|
-
|
3
|
-
class String
|
4
|
-
include Iolite::Adaptor::ToProc
|
5
|
-
include Iolite::Adaptor::Callable
|
6
|
-
def call *args
|
7
|
-
result = self.clone
|
8
|
-
args.each_with_index { |it, i|
|
9
|
-
result.gsub! "#{Iolite::Placeholders.const_get("ARG#{i+1}")}", it.to_s
|
10
|
-
}
|
11
|
-
result
|
12
|
-
end
|
13
|
-
|
14
|
-
def to_call_by_eval binding = nil
|
15
|
-
Iolite.lazy { |*args|
|
16
|
-
gsub(/#{'#{(.*?)}'}/) {
|
17
|
-
eval($1, binding).call(*args)
|
18
|
-
}
|
19
|
-
}
|
20
|
-
end
|
21
|
-
end
|
@@ -1,12 +0,0 @@
|
|
1
|
-
require "iolite/functinal/invoke"
|
2
|
-
|
3
|
-
module Iolite module Functinal
|
4
|
-
def bind func, *args_
|
5
|
-
Iolite.lazy { |*args|
|
6
|
-
# func.call(*invoke_a(args_, *args))
|
7
|
-
invoke(func, *args).call(*invoke_a(args_, *args))
|
8
|
-
# func.call(*args).call(*invoke_a(args_, *args))
|
9
|
-
}
|
10
|
-
end
|
11
|
-
module_function :bind
|
12
|
-
end end
|
@@ -1,11 +0,0 @@
|
|
1
|
-
module Iolite module Functinal
|
2
|
-
def invoke func, *args
|
3
|
-
func.respond_to?(:iolite_functinal_invoke_call) ? func.iolite_functinal_invoke_call(*args) : func
|
4
|
-
end
|
5
|
-
module_function :invoke
|
6
|
-
|
7
|
-
def invoke_a funcs, *args
|
8
|
-
funcs.map{ |it| invoke(it, *args) }
|
9
|
-
end
|
10
|
-
module_function :invoke_a
|
11
|
-
end end
|
@@ -1,13 +0,0 @@
|
|
1
|
-
require "iolite/functinal/invoke"
|
2
|
-
|
3
|
-
module Iolite module Functinal
|
4
|
-
def send func, method, *args_, &block
|
5
|
-
Lazy.new { |*args|
|
6
|
-
# block = invoke(block, *args) if block
|
7
|
-
invoke(func, *args).send(method, *invoke_a(args_, *args), &block)
|
8
|
-
# invoke(func, *args).send(method, *invoke_a(args_, *args), &block)
|
9
|
-
# func.call(*args).send(method, *invoke_a(args_, *args), &block)
|
10
|
-
}
|
11
|
-
end
|
12
|
-
module_function :send
|
13
|
-
end end
|
data/lib/iolite/functinal.rb
DELETED
data/lib/iolite/lazy.rb
DELETED
@@ -1,40 +0,0 @@
|
|
1
|
-
require "iolite/adaptor"
|
2
|
-
|
3
|
-
module Iolite
|
4
|
-
class Lazy < BasicObject
|
5
|
-
# include ::Iolite::Adaptor::All
|
6
|
-
include ::Iolite::Adaptor::Callable
|
7
|
-
include ::Iolite::Adaptor::Bind
|
8
|
-
include ::Iolite::Adaptor::Send
|
9
|
-
include ::Iolite::Adaptor::MethodMissing
|
10
|
-
include ::Iolite::Adaptor::ToProc
|
11
|
-
include ::Iolite::Adaptor::Apply
|
12
|
-
include ::Iolite::Adaptor::Operators
|
13
|
-
include ::Iolite::Adaptor::ToLazy
|
14
|
-
|
15
|
-
def initialize &block
|
16
|
-
@block = block
|
17
|
-
end
|
18
|
-
|
19
|
-
def call *args
|
20
|
-
@block.call(*args)
|
21
|
-
end
|
22
|
-
|
23
|
-
# iolite_define_send_original_methods
|
24
|
-
end
|
25
|
-
|
26
|
-
def lazy &block
|
27
|
-
Iolite::Lazy.new &block
|
28
|
-
end
|
29
|
-
module_function :lazy
|
30
|
-
|
31
|
-
# def wrap value
|
32
|
-
# Iolite.lazy { |*args| value }
|
33
|
-
# end
|
34
|
-
# module_function :wrap
|
35
|
-
#
|
36
|
-
# def lazy_func func
|
37
|
-
# Iolite.lazy { |*args| func.call(*args) }
|
38
|
-
# end
|
39
|
-
# module_function :wrap
|
40
|
-
end
|
data/lib/iolite/placeholders.rb
DELETED
@@ -1,30 +0,0 @@
|
|
1
|
-
require "iolite/lazy"
|
2
|
-
|
3
|
-
module Iolite module Placeholders
|
4
|
-
def args
|
5
|
-
Lazy.new { |*args|
|
6
|
-
args
|
7
|
-
}
|
8
|
-
end
|
9
|
-
module_function :args
|
10
|
-
|
11
|
-
def argument index
|
12
|
-
Lazy.new { |*args|
|
13
|
-
args[index-1]
|
14
|
-
}
|
15
|
-
end
|
16
|
-
module_function :argument
|
17
|
-
|
18
|
-
def prepare n
|
19
|
-
1.upto(n).each { |i|
|
20
|
-
const_set("ARG#{i}", argument(i))
|
21
|
-
define_method("arg#{i}") do
|
22
|
-
Placeholders.const_get("ARG#{i}")
|
23
|
-
end
|
24
|
-
module_function "arg#{i}"
|
25
|
-
alias_method "_#{i}", "arg#{i}"
|
26
|
-
}
|
27
|
-
end
|
28
|
-
module_function :prepare
|
29
|
-
prepare(10)
|
30
|
-
end end
|
@@ -1,16 +0,0 @@
|
|
1
|
-
require "iolite/adaptor/all"
|
2
|
-
require "iolite/functinal/invoke"
|
3
|
-
|
4
|
-
module Iolite module Refinements
|
5
|
-
module Array
|
6
|
-
refine ::Array do
|
7
|
-
include Iolite::Adaptor::ToProc
|
8
|
-
include Iolite::Adaptor::Bind
|
9
|
-
include Iolite::Adaptor::Apply
|
10
|
-
include Iolite::Adaptor::Callable
|
11
|
-
def call *args
|
12
|
-
Iolite::Functinal.invoke_a(self, *args)
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end end
|
@@ -1,18 +0,0 @@
|
|
1
|
-
require "iolite/adaptor/all"
|
2
|
-
require "iolite/functinal/invoke"
|
3
|
-
|
4
|
-
module Iolite module Refinements
|
5
|
-
module Hash
|
6
|
-
refine ::Hash do
|
7
|
-
include Iolite::Adaptor::ToProc
|
8
|
-
include Iolite::Adaptor::Bind
|
9
|
-
include Iolite::Adaptor::Apply
|
10
|
-
include Iolite::Adaptor::Callable
|
11
|
-
def call *args
|
12
|
-
Hash[ self.map { |key, value|
|
13
|
-
Iolite::Functinal.invoke_a([key, value], *args)
|
14
|
-
} ]
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end end
|