fuby 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.
- checksums.yaml +7 -0
- data/.gitignore +17 -0
- data/.ruby-version +1 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +29 -0
- data/Rakefile +8 -0
- data/VERSION +1 -0
- data/fuby.gemspec +21 -0
- data/lib/fuby.rb +1 -0
- data/lib/fuby/abbreviation.rb +20 -0
- data/lib/fuby/alias_method.rb +13 -0
- data/lib/fuby/all.rb +11 -0
- data/lib/fuby/and.rb +9 -0
- data/lib/fuby/any.rb +11 -0
- data/lib/fuby/attributes.rb +17 -0
- data/lib/fuby/bind.rb +21 -0
- data/lib/fuby/class_attributes.rb +39 -0
- data/lib/fuby/deep.rb +1 -0
- data/lib/fuby/deep_each.rb +14 -0
- data/lib/fuby/define_instance_method.rb +18 -0
- data/lib/fuby/define_missing_method.rb +36 -0
- data/lib/fuby/define_object_method.rb +18 -0
- data/lib/fuby/define_tok.rb +11 -0
- data/lib/fuby/descendants.rb +15 -0
- data/lib/fuby/dimension.rb +23 -0
- data/lib/fuby/drop.rb +20 -0
- data/lib/fuby/drop_until.rb +18 -0
- data/lib/fuby/drop_while.rb +15 -0
- data/lib/fuby/each.rb +2 -0
- data/lib/fuby/each_with_index_or_key.rb +19 -0
- data/lib/fuby/eql.rb +1 -0
- data/lib/fuby/eql_componentwise.rb +13 -0
- data/lib/fuby/equivalence.rb +13 -0
- data/lib/fuby/eval.rb +54 -0
- data/lib/fuby/extend.rb +13 -0
- data/lib/fuby/format.rb +9 -0
- data/lib/fuby/include.rb +13 -0
- data/lib/fuby/index_or_key.rb +19 -0
- data/lib/fuby/instance_attributes.rb +39 -0
- data/lib/fuby/intercept.rb +27 -0
- data/lib/fuby/invert.rb +16 -0
- data/lib/fuby/longest_common.rb +16 -0
- data/lib/fuby/matches.rb +11 -0
- data/lib/fuby/matches_componentwise.rb +11 -0
- data/lib/fuby/matches_part_of.rb +16 -0
- data/lib/fuby/matches_prefix_of.rb +11 -0
- data/lib/fuby/matches_suffix_of.rb +13 -0
- data/lib/fuby/member.rb +11 -0
- data/lib/fuby/merge.rb +20 -0
- data/lib/fuby/merge_css.rb +32 -0
- data/lib/fuby/method_added_as.rb +1 -0
- data/lib/fuby/method_added_as_binary_operator.rb +16 -0
- data/lib/fuby/method_added_as_filter.rb +19 -0
- data/lib/fuby/new.rb +16 -0
- data/lib/fuby/not.rb +25 -0
- data/lib/fuby/opposite.rb +29 -0
- data/lib/fuby/or.rb +9 -0
- data/lib/fuby/otherwise.rb +18 -0
- data/lib/fuby/part_of.rb +16 -0
- data/lib/fuby/plus.rb +10 -0
- data/lib/fuby/pop.rb +11 -0
- data/lib/fuby/pop_if.rb +15 -0
- data/lib/fuby/pop_options.rb +15 -0
- data/lib/fuby/pop_unless.rb +11 -0
- data/lib/fuby/pop_until.rb +11 -0
- data/lib/fuby/pop_while.rb +11 -0
- data/lib/fuby/prefix_of.rb +14 -0
- data/lib/fuby/prefixes.rb +11 -0
- data/lib/fuby/prepend.rb +11 -0
- data/lib/fuby/private.rb +11 -0
- data/lib/fuby/protected.rb +11 -0
- data/lib/fuby/public.rb +11 -0
- data/lib/fuby/push.rb +1 -0
- data/lib/fuby/push_options.rb +9 -0
- data/lib/fuby/random.rb +31 -0
- data/lib/fuby/self_and_descendants.rb +15 -0
- data/lib/fuby/shift.rb +11 -0
- data/lib/fuby/shift_if.rb +12 -0
- data/lib/fuby/shift_options.rb +11 -0
- data/lib/fuby/shift_unless.rb +12 -0
- data/lib/fuby/shift_until.rb +12 -0
- data/lib/fuby/shift_while.rb +16 -0
- data/lib/fuby/splat.rb +11 -0
- data/lib/fuby/strip.rb +24 -0
- data/lib/fuby/subclass.rb +22 -0
- data/lib/fuby/submodule.rb +22 -0
- data/lib/fuby/suffix_of.rb +19 -0
- data/lib/fuby/suffixes.rb +11 -0
- data/lib/fuby/take.rb +20 -0
- data/lib/fuby/take_until.rb +17 -0
- data/lib/fuby/take_while.rb +14 -0
- data/lib/fuby/tap.rb +28 -0
- data/lib/fuby/to.rb +1 -0
- data/lib/fuby/to_boolean.rb +32 -0
- data/lib/fuby/to_camel_case.rb +32 -0
- data/lib/fuby/to_case.rb +1 -0
- data/lib/fuby/to_components.rb +33 -0
- data/lib/fuby/to_dash_case.rb +28 -0
- data/lib/fuby/to_hash.rb +25 -0
- data/lib/fuby/to_pred.rb +7 -0
- data/lib/fuby/to_proc.rb +45 -0
- data/lib/fuby/to_regexp.rb +38 -0
- data/lib/fuby/to_snake_case.rb +28 -0
- data/lib/fuby/to_tok.rb +27 -0
- data/lib/fuby/tok.rb +2 -0
- data/lib/fuby/tok_arity.rb +18 -0
- data/lib/fuby/tok_direction.rb +16 -0
- data/lib/fuby/tok_parity.rb +11 -0
- data/lib/fuby/tok_side.rb +11 -0
- data/lib/fuby/try.rb +73 -0
- data/lib/fuby/try_each.rb +25 -0
- data/lib/fuby/try_eval.rb +19 -0
- data/lib/fuby/try_exec.rb +15 -0
- data/lib/fuby/unabbreviation.rb +17 -0
- data/lib/fuby/unshift.rb +1 -0
- data/lib/fuby/unshift_options.rb +11 -0
- data/lib/fuby/uuid.rb +28 -0
- data/test/fuby/abbreviation.rb +25 -0
- data/test/fuby/alias_method.rb +29 -0
- data/test/fuby/all.rb +15 -0
- data/test/fuby/and.rb +14 -0
- data/test/fuby/any.rb +15 -0
- data/test/fuby/attributes.rb +0 -0
- data/test/fuby/bind.rb +17 -0
- data/test/fuby/class_attributes.rb +0 -0
- data/test/fuby/deep.rb +0 -0
- data/test/fuby/deep_each.rb +0 -0
- data/test/fuby/define_missing_method.rb +33 -0
- data/test/fuby/define_tok.rb +0 -0
- data/test/fuby/descendants.rb +0 -0
- data/test/fuby/dimension.rb +0 -0
- data/test/fuby/drop.rb +28 -0
- data/test/fuby/drop_until.rb +26 -0
- data/test/fuby/drop_while.rb +26 -0
- data/test/fuby/each.rb +0 -0
- data/test/fuby/each_with_index_or_key.rb +22 -0
- data/test/fuby/eql.rb +0 -0
- data/test/fuby/eql_componentwise.rb +0 -0
- data/test/fuby/equivalence.rb +0 -0
- data/test/fuby/eval.rb +0 -0
- data/test/fuby/extend.rb +20 -0
- data/test/fuby/format.rb +0 -0
- data/test/fuby/include.rb +20 -0
- data/test/fuby/index_or_key.rb +0 -0
- data/test/fuby/instance_attributes.rb +0 -0
- data/test/fuby/intercept.rb +16 -0
- data/test/fuby/invert.rb +0 -0
- data/test/fuby/longest_common.rb +0 -0
- data/test/fuby/matches.rb +0 -0
- data/test/fuby/matches_componentwise.rb +0 -0
- data/test/fuby/matches_prefix_of.rb +0 -0
- data/test/fuby/matches_suffix_of.rb +0 -0
- data/test/fuby/member.rb +0 -0
- data/test/fuby/merge.rb +0 -0
- data/test/fuby/merge_css.rb +0 -0
- data/test/fuby/method_added_as.rb +0 -0
- data/test/fuby/method_added_as_binary_operator.rb +20 -0
- data/test/fuby/method_added_as_filter.rb +28 -0
- data/test/fuby/new.rb +3 -0
- data/test/fuby/not.rb +0 -0
- data/test/fuby/opposite.rb +0 -0
- data/test/fuby/or.rb +19 -0
- data/test/fuby/otherwise.rb +30 -0
- data/test/fuby/part_of.rb +0 -0
- data/test/fuby/plus.rb +0 -0
- data/test/fuby/pop.rb +0 -0
- data/test/fuby/pop_if.rb +31 -0
- data/test/fuby/pop_options.rb +31 -0
- data/test/fuby/pop_unless.rb +0 -0
- data/test/fuby/pop_until.rb +0 -0
- data/test/fuby/pop_while.rb +0 -0
- data/test/fuby/prefix_of.rb +0 -0
- data/test/fuby/prefixes.rb +13 -0
- data/test/fuby/prepend.rb +34 -0
- data/test/fuby/private.rb +0 -0
- data/test/fuby/protected.rb +0 -0
- data/test/fuby/public.rb +0 -0
- data/test/fuby/push.rb +0 -0
- data/test/fuby/push_options.rb +32 -0
- data/test/fuby/random.rb +0 -0
- data/test/fuby/self_and_descendants.rb +0 -0
- data/test/fuby/shift.rb +0 -0
- data/test/fuby/shift_if.rb +0 -0
- data/test/fuby/shift_options.rb +0 -0
- data/test/fuby/shift_unless.rb +0 -0
- data/test/fuby/shift_until.rb +0 -0
- data/test/fuby/shift_while.rb +0 -0
- data/test/fuby/splat.rb +0 -0
- data/test/fuby/strip.rb +0 -0
- data/test/fuby/submodule.rb +15 -0
- data/test/fuby/suffix_of.rb +0 -0
- data/test/fuby/suffixes.rb +13 -0
- data/test/fuby/take.rb +0 -0
- data/test/fuby/take_until.rb +0 -0
- data/test/fuby/take_while.rb +0 -0
- data/test/fuby/tap.rb +58 -0
- data/test/fuby/to_boolean.rb +31 -0
- data/test/fuby/to_camel_case.rb +15 -0
- data/test/fuby/to_components.rb +0 -0
- data/test/fuby/to_dash_case.rb +15 -0
- data/test/fuby/to_hash.rb +23 -0
- data/test/fuby/to_pred.rb +25 -0
- data/test/fuby/to_proc.rb +56 -0
- data/test/fuby/to_regexp.rb +38 -0
- data/test/fuby/to_snake_case.rb +15 -0
- data/test/fuby/to_tok.rb +0 -0
- data/test/fuby/tok.rb +0 -0
- data/test/fuby/tok_arity.rb +0 -0
- data/test/fuby/tok_direction.rb +0 -0
- data/test/fuby/tok_parity.rb +0 -0
- data/test/fuby/tok_side.rb +0 -0
- data/test/fuby/try.rb +52 -0
- data/test/fuby/try_each.rb +30 -0
- data/test/fuby/try_eval.rb +34 -0
- data/test/fuby/try_exec.rb +0 -0
- data/test/fuby/unabbreviation.rb +25 -0
- data/test/fuby/unshift.rb +0 -0
- data/test/fuby/unshift_options.rb +0 -0
- data/test/fuby/uuid.rb +31 -0
- data/test/fuby/version.rb +0 -0
- metadata +369 -0
@@ -0,0 +1,16 @@
|
|
1
|
+
require_relative 'not'
|
2
|
+
require_relative 'shift_until'
|
3
|
+
require_relative 'method_added_as_filter'
|
4
|
+
|
5
|
+
using Fuby
|
6
|
+
|
7
|
+
module Fuby
|
8
|
+
refine ::Array do
|
9
|
+
|
10
|
+
def shift_while &blk
|
11
|
+
shift_until &(blk.not)
|
12
|
+
end
|
13
|
+
|
14
|
+
method_added_as_filter :shift_while
|
15
|
+
end
|
16
|
+
end
|
data/lib/fuby/splat.rb
ADDED
data/lib/fuby/strip.rb
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
require_relative 'plus'
|
2
|
+
|
3
|
+
using Fuby
|
4
|
+
|
5
|
+
module Fuby
|
6
|
+
refine ::String do
|
7
|
+
|
8
|
+
def strip pattern = nil
|
9
|
+
return super unless ::RegExp === pattern
|
10
|
+
strip_beginning(pattern).strip_ending(pattern)
|
11
|
+
end
|
12
|
+
|
13
|
+
def strip_beginning pattern
|
14
|
+
pattern = /^/ + pattern unless /^\^/ === pattern.source
|
15
|
+
sub pattern, ''
|
16
|
+
end
|
17
|
+
|
18
|
+
def strip_ending pattern
|
19
|
+
pattern = pattern + /$/ unless /\$$/ === pattern.source
|
20
|
+
sub pattern, ''
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'fuby/include'
|
2
|
+
|
3
|
+
using Fuby
|
4
|
+
|
5
|
+
module Fuby
|
6
|
+
refine ::Module do
|
7
|
+
|
8
|
+
def subclass *sig, &blk
|
9
|
+
case self
|
10
|
+
|
11
|
+
when Class
|
12
|
+
Class.new self
|
13
|
+
|
14
|
+
when Module
|
15
|
+
Class.new.include! self
|
16
|
+
|
17
|
+
else super
|
18
|
+
end.include! *sig, &blk
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'fuby/include'
|
2
|
+
|
3
|
+
using Fuby
|
4
|
+
|
5
|
+
module Fuby
|
6
|
+
refine ::Module do
|
7
|
+
|
8
|
+
def submodule *sig, &blk
|
9
|
+
case self
|
10
|
+
|
11
|
+
when Class
|
12
|
+
Class.new self
|
13
|
+
|
14
|
+
when Module
|
15
|
+
Module.new.include! self
|
16
|
+
|
17
|
+
else super
|
18
|
+
end.include! *sig, &blk
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
using Fuby
|
2
|
+
|
3
|
+
module Fuby
|
4
|
+
refine ::Array do
|
5
|
+
|
6
|
+
def suffix_of? that
|
7
|
+
eql? that.drop -length
|
8
|
+
end
|
9
|
+
|
10
|
+
def matches_suffix_of? that
|
11
|
+
matches? that.drop - length
|
12
|
+
end
|
13
|
+
|
14
|
+
method_added_as_binary_operator :suffix_of?, :matches_suffix_of?
|
15
|
+
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
Dir.glob "*_suffix_of.rb", &method(:require)
|
data/lib/fuby/take.rb
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
using Fuby
|
2
|
+
|
3
|
+
module Fuby
|
4
|
+
refine ::Array do
|
5
|
+
|
6
|
+
def take i = 1
|
7
|
+
return [] if empty?
|
8
|
+
return super if i >= 0
|
9
|
+
return super i % length
|
10
|
+
end
|
11
|
+
|
12
|
+
def take! i = 1
|
13
|
+
pop length - i % length
|
14
|
+
self
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
Dir.glob "#{ __FILE__.chomp ".rb" }_*.rb", &method(:require)
|
data/lib/fuby/tap.rb
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
using Fuby
|
2
|
+
|
3
|
+
module Fuby
|
4
|
+
refine ::Object do
|
5
|
+
|
6
|
+
def tap &blk
|
7
|
+
return super if block_given?
|
8
|
+
return self
|
9
|
+
end
|
10
|
+
|
11
|
+
alias_method :tap?, :tap
|
12
|
+
alias_method :tap!, :tap
|
13
|
+
|
14
|
+
end
|
15
|
+
refine ::NilClass do
|
16
|
+
|
17
|
+
def tap?
|
18
|
+
self
|
19
|
+
end
|
20
|
+
|
21
|
+
def tap!
|
22
|
+
raise ::TypeError
|
23
|
+
end
|
24
|
+
|
25
|
+
alias_method :tap_each, :tap?
|
26
|
+
|
27
|
+
end
|
28
|
+
end
|
data/lib/fuby/to.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
Dir.glob "#{ __FILE__.chomp ".rb" }_*.rb", &method(:require)
|
@@ -0,0 +1,32 @@
|
|
1
|
+
using Fuby
|
2
|
+
|
3
|
+
module Fuby
|
4
|
+
refine ::Numeric do
|
5
|
+
|
6
|
+
def to_boolean
|
7
|
+
self > 0
|
8
|
+
end
|
9
|
+
|
10
|
+
alias_method :to_b, :to_boolean
|
11
|
+
|
12
|
+
end
|
13
|
+
refine ::String do
|
14
|
+
|
15
|
+
def to_boolean
|
16
|
+
/^(t(rue)?|0*1|y(es)?)$/i === self
|
17
|
+
end
|
18
|
+
|
19
|
+
alias_method :to_b, :to_boolean
|
20
|
+
|
21
|
+
end
|
22
|
+
refine ::Symbol do
|
23
|
+
|
24
|
+
def to_boolean
|
25
|
+
@to_boolean = to_s.to_boolean if @to_boolean.nil?
|
26
|
+
@to_boolean
|
27
|
+
end
|
28
|
+
|
29
|
+
alias_method :to_b, :to_boolean
|
30
|
+
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require_relative 'to_components'
|
2
|
+
|
3
|
+
using Fuby
|
4
|
+
|
5
|
+
module Fuby
|
6
|
+
refine ::String do
|
7
|
+
|
8
|
+
def to_camelCase
|
9
|
+
components = to_components
|
10
|
+
first = components.shift.downcase
|
11
|
+
components.map! { |str| str.sub /[A-z0-9]/, &:upcase }
|
12
|
+
components.unshift first
|
13
|
+
components.join
|
14
|
+
end
|
15
|
+
|
16
|
+
def to_CamelCase
|
17
|
+
to_components.map! { |str| str.sub /[A-z0-9]/, &:upcase }.join
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
refine ::Symbol do
|
22
|
+
|
23
|
+
def to_camelCase
|
24
|
+
@to_camelCase ||= to_s.to_camelCase.to_sym
|
25
|
+
end
|
26
|
+
|
27
|
+
def to_CamelCase
|
28
|
+
@to_CamelCase ||= to_s.to_CamelCase.to_sym
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
32
|
+
end
|
data/lib/fuby/to_case.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
Dir.glob "to_*_case.rb", &method(:require)
|
@@ -0,0 +1,33 @@
|
|
1
|
+
using Fuby
|
2
|
+
|
3
|
+
module Fuby
|
4
|
+
refine ::String do
|
5
|
+
|
6
|
+
def to_components
|
7
|
+
return downcase.to_components if /[A-Z]/ === self unless /[a-z]/ === self # it's all CAPS
|
8
|
+
scan /[A-Z]+[0-9]*(?=_|\b|[^A-z]|[A-Z][a-z])|[A-Z]?[a-z]+[0-9]*(?=_|\b|[^a-z]|[A-Z])|[0-9]+[a-z]*/
|
9
|
+
#
|
10
|
+
# presuming either some form of camelCase or lower_case, either:
|
11
|
+
#
|
12
|
+
# a run of capitals optionally followed by an integer, excluding the capital leading a following CamelCase word
|
13
|
+
# e.g. HTML5, IE9
|
14
|
+
#
|
15
|
+
# a run of lower-case letters optionally followed by an integer
|
16
|
+
# e.g. html5, ie9
|
17
|
+
#
|
18
|
+
# a number or number word
|
19
|
+
# e.g. 1st, 2nd
|
20
|
+
#
|
21
|
+
# a proper camelCase component
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
refine ::Symbol do
|
26
|
+
|
27
|
+
def to_components
|
28
|
+
@to_components ||= to_s.to_components.map(&:to_sym).freeze
|
29
|
+
@to_components.dup
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require_relative 'to_components'
|
2
|
+
|
3
|
+
using Fuby
|
4
|
+
|
5
|
+
module Fuby
|
6
|
+
refine ::String do
|
7
|
+
|
8
|
+
def to_DASH_CASE
|
9
|
+
to_components.join('-').upcase
|
10
|
+
end
|
11
|
+
|
12
|
+
def to_dash_case
|
13
|
+
to_components.join('-').downcase
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
17
|
+
refine ::Symbol do
|
18
|
+
|
19
|
+
def to_DASH_CASE
|
20
|
+
@to_DASH_CASE ||= to_s.to_DASH_CASE.to_sym
|
21
|
+
end
|
22
|
+
|
23
|
+
def to_dash_case
|
24
|
+
@to_dash_case ||= to_s.to_dash_case.to_sym
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
end
|
data/lib/fuby/to_hash.rb
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
require_relative 'descendants'
|
2
|
+
require_relative 'each_with_index_or_key'
|
3
|
+
|
4
|
+
using Fuby
|
5
|
+
|
6
|
+
module Fuby
|
7
|
+
module ::Enumerable # can't refine a Module
|
8
|
+
|
9
|
+
def to_hash
|
10
|
+
{}.tap { |hash| each_with_index_or_key { |val, key| hash[key] = val } }
|
11
|
+
end
|
12
|
+
|
13
|
+
alias_method :to_h, :to_hash
|
14
|
+
|
15
|
+
end
|
16
|
+
refine ::Hash do
|
17
|
+
|
18
|
+
def to_hash
|
19
|
+
dup
|
20
|
+
end
|
21
|
+
|
22
|
+
alias_method :to_h, :to_hash
|
23
|
+
|
24
|
+
end
|
25
|
+
end
|
data/lib/fuby/to_pred.rb
ADDED
data/lib/fuby/to_proc.rb
ADDED
@@ -0,0 +1,45 @@
|
|
1
|
+
module Fuby
|
2
|
+
refine ::Array do
|
3
|
+
|
4
|
+
def to_proc
|
5
|
+
proc &method(:[])
|
6
|
+
end
|
7
|
+
|
8
|
+
end
|
9
|
+
refine ::Hash do
|
10
|
+
|
11
|
+
def to_proc
|
12
|
+
proc do |arg|
|
13
|
+
if has_key? arg
|
14
|
+
self[arg]
|
15
|
+
else
|
16
|
+
self[keys.detect { |key| key === arg }]
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
refine ::String do
|
23
|
+
|
24
|
+
def to_proc
|
25
|
+
proc { |*sig| format self, *sig }
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
refine ::Regexp do
|
30
|
+
|
31
|
+
def to_proc
|
32
|
+
proc do |arg|
|
33
|
+
arg[ arg.length - 1] if arg = match(arg)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
38
|
+
refine ::Integer do
|
39
|
+
|
40
|
+
def to_proc
|
41
|
+
proc { |arg| arg[self] }
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|
45
|
+
end
|