monkey-lib 0.2.1 → 0.3.0
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/README.rdoc +12 -0
- data/Rakefile +111 -47
- data/lib/monkey.rb +11 -0
- data/lib/monkey/autoloader.rb +2 -0
- data/lib/monkey/backend.rb +97 -32
- data/lib/monkey/backend/active_support.rb +10 -15
- data/lib/monkey/backend/backports.rb +8 -14
- data/lib/monkey/backend/common/parent.rb +4 -6
- data/lib/monkey/backend/common/tap.rb +1 -1
- data/lib/monkey/backend/extlib.rb +10 -18
- data/lib/monkey/backend/facets.rb +11 -18
- data/lib/monkey/ext.rb +20 -12
- data/lib/monkey/ext/module.rb +0 -16
- data/lib/monkey/ext/string.rb +147 -0
- data/spec/monkey/engine_spec.rb +5 -6
- data/spec/monkey/ext/array_spec.rb +18 -0
- data/spec/monkey/ext/module_spec.rb +15 -0
- data/spec/monkey/ext/object_spec.rb +53 -0
- data/spec/monkey/ext/string_spec.rb +331 -0
- data/spec/spec_helper.rb +13 -1
- metadata +10 -23
- data/lib/monkey/string/like_pathname.rb +0 -38
- data/lib/monkey/watcher.rb +0 -139
- data/spec/monkey/hash/sub_hash_spec.rb +0 -15
- data/spec/monkey/object/backports_spec.rb +0 -24
- data/spec/monkey/object/instance_yield_spec.rb +0 -32
- data/spec/monkey/string/like_pathname_spec.rb +0 -272
@@ -1,22 +1,15 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
require "core/facets/kernel/meta_class"
|
10
|
-
require "core/facets/kernel/constant"
|
11
|
-
::String.class_eval do
|
12
|
-
def constantize
|
13
|
-
constant modulize
|
14
|
-
end
|
15
|
-
alias to_const_string camelcase
|
16
|
-
alias to_const_path snakecase
|
17
|
-
alias underscore snakecase
|
18
|
-
end
|
1
|
+
Monkey::Backend.new :Facets do
|
2
|
+
def self.setup
|
3
|
+
load_libs :kernel => [:meta_class, :constant], :string => [:camelcase, :snakecase]
|
4
|
+
# Actually, facets has Kernel#tap, but it behaves different if the block takes no argument.
|
5
|
+
missing :tap, :extract_options, :parent
|
6
|
+
::String.class_eval do
|
7
|
+
def constantize
|
8
|
+
constant to_const_string
|
19
9
|
end
|
10
|
+
alias to_const_string upper_camelcase
|
11
|
+
alias to_const_path snakecase
|
12
|
+
alias underscore snakecase
|
20
13
|
end
|
21
14
|
end
|
22
15
|
end
|
data/lib/monkey/ext.rb
CHANGED
@@ -1,35 +1,43 @@
|
|
1
1
|
module Monkey
|
2
2
|
module Ext
|
3
|
-
|
3
|
+
|
4
4
|
module ExtDSL
|
5
|
-
|
5
|
+
|
6
6
|
def core_class(klass = nil)
|
7
7
|
if klass
|
8
8
|
@core_class = klass
|
9
9
|
klass.send :include, self
|
10
|
+
@core_class.class_eval <<-EOS
|
11
|
+
def method_missing(meth, *args, &blk)
|
12
|
+
return super if Monkey::Backend.setup?
|
13
|
+
Monkey::Backend.setup
|
14
|
+
__send__(meth, *args, &blk)
|
15
|
+
end
|
16
|
+
EOS
|
10
17
|
end
|
11
18
|
return @core_class
|
12
19
|
end
|
13
|
-
|
20
|
+
|
14
21
|
def expects(*list)
|
15
22
|
list.each do |name|
|
16
|
-
|
17
|
-
# Note: Ruby < 1.8.7 does not support { |*a, &b| } syntax.
|
18
|
-
class_eval "def #{name}(*a, &b); Monkey::Backend.call(#{core_class.inspect}, #{name.to_s.inspect}, *a, &b); end"
|
19
|
-
end
|
23
|
+
Monkey::Ext.expectations[core_class] << name.to_s
|
20
24
|
end
|
21
25
|
end
|
22
|
-
|
26
|
+
|
23
27
|
end
|
24
|
-
|
28
|
+
|
29
|
+
def self.expectations
|
30
|
+
@expectations ||= Hash.new { |h,k| h[k] = [] }
|
31
|
+
end
|
32
|
+
|
25
33
|
Dir[File.dirname(__FILE__) + "/ext/*.rb"].sort.each do |path|
|
26
34
|
filename = File.basename(path, '.rb')
|
27
35
|
class_name = filename.capitalize
|
28
36
|
extension = class_eval "module #{class_name}; self; end"
|
29
37
|
extension.extend ExtDSL
|
30
|
-
extension.core_class
|
31
|
-
require "ext
|
38
|
+
extension.core_class Object.const_get(class_name)
|
39
|
+
require "monkey/ext/#{filename}"
|
32
40
|
end
|
33
|
-
|
41
|
+
|
34
42
|
end
|
35
43
|
end
|
data/lib/monkey/ext/module.rb
CHANGED
@@ -1,24 +1,8 @@
|
|
1
1
|
module Monkey
|
2
2
|
module Ext
|
3
3
|
module Module
|
4
|
-
|
5
4
|
# Defined by backend.
|
6
5
|
expects :parent
|
7
|
-
|
8
|
-
def nested_method_missing(mod, meth, *args, &block)
|
9
|
-
# Triggers method_missing chain inside mod.
|
10
|
-
raise Monkey::Watcher::NestedMethodMissingNotHandled
|
11
|
-
end
|
12
|
-
|
13
|
-
def class_added(klass)
|
14
|
-
end
|
15
|
-
|
16
|
-
def module_added(mod)
|
17
|
-
return if self == parent
|
18
|
-
class_added mod if mod.is_a? Class
|
19
|
-
parent.module_added mod
|
20
|
-
end
|
21
|
-
|
22
6
|
end
|
23
7
|
end
|
24
8
|
end
|
data/lib/monkey/ext/string.rb
CHANGED
@@ -1,8 +1,155 @@
|
|
1
|
+
require "pathname"
|
2
|
+
|
1
3
|
module Monkey
|
2
4
|
module Ext
|
3
5
|
module String
|
4
6
|
# Defined by backend.
|
5
7
|
expects :constantize, :to_const_string, :to_const_path, :underscore, :camelcase
|
8
|
+
|
9
|
+
def atime
|
10
|
+
Pathname(self).atime
|
11
|
+
end
|
12
|
+
|
13
|
+
def absolute_path?
|
14
|
+
Pathname(self).absolute?
|
15
|
+
end
|
16
|
+
|
17
|
+
def basename
|
18
|
+
Pathname(self).basename.to_s
|
19
|
+
end
|
20
|
+
|
21
|
+
def blockdev?
|
22
|
+
Pathname(self).blockdev?
|
23
|
+
end
|
24
|
+
|
25
|
+
def chardev?
|
26
|
+
Pathname(self).chardev?
|
27
|
+
end
|
28
|
+
|
29
|
+
def cleanpath
|
30
|
+
Pathname(self).cleanpath.to_s
|
31
|
+
end
|
32
|
+
|
33
|
+
def ctime
|
34
|
+
Pathname(self).ctime
|
35
|
+
end
|
36
|
+
|
37
|
+
def directory_children
|
38
|
+
Pathname(self).children
|
39
|
+
end
|
40
|
+
|
41
|
+
def directory?
|
42
|
+
Pathname(self).directory?
|
43
|
+
end
|
44
|
+
|
45
|
+
def dirname
|
46
|
+
Pathname(self).dirname.to_s
|
47
|
+
end
|
48
|
+
|
49
|
+
def expand_path
|
50
|
+
Pathname(self).expand_path.to_s
|
51
|
+
end
|
52
|
+
|
53
|
+
def extname
|
54
|
+
Pathname(self).extname.to_s
|
55
|
+
end
|
56
|
+
|
57
|
+
def file?
|
58
|
+
Pathname(self).file?
|
59
|
+
end
|
60
|
+
|
61
|
+
def file_exist?
|
62
|
+
Pathname(self).exist?
|
63
|
+
end
|
64
|
+
|
65
|
+
alias file_exists? file_exist?
|
66
|
+
|
67
|
+
def file_grpowned?
|
68
|
+
Pathname(self).grpowned?
|
69
|
+
end
|
70
|
+
|
71
|
+
def file_owned?
|
72
|
+
Pathname(self).owned?
|
73
|
+
end
|
74
|
+
|
75
|
+
def file_size?
|
76
|
+
Pathname(self).size?
|
77
|
+
end
|
78
|
+
|
79
|
+
def file_sticky?
|
80
|
+
Pathname(self).sticky?
|
81
|
+
end
|
82
|
+
|
83
|
+
def file_executable?
|
84
|
+
Pathname(self).executable?
|
85
|
+
end
|
86
|
+
|
87
|
+
def file_executable_real?
|
88
|
+
Pathname(self).executable_real?
|
89
|
+
end
|
90
|
+
|
91
|
+
def file_join(other)
|
92
|
+
Pathname(self).join(other).to_s
|
93
|
+
end
|
94
|
+
|
95
|
+
alias / file_join
|
96
|
+
|
97
|
+
def file_readable?
|
98
|
+
Pathname(self).readable?
|
99
|
+
end
|
100
|
+
|
101
|
+
def file_readable_real?
|
102
|
+
Pathname(self).readable_real?
|
103
|
+
end
|
104
|
+
|
105
|
+
def file_relative?
|
106
|
+
Pathname(self).relative?
|
107
|
+
end
|
108
|
+
|
109
|
+
def file_writable?
|
110
|
+
Pathname(self).writable?
|
111
|
+
end
|
112
|
+
|
113
|
+
def file_writable_real?
|
114
|
+
Pathname(self).writable_real?
|
115
|
+
end
|
116
|
+
|
117
|
+
def file_zero?
|
118
|
+
Pathname(self).zero?
|
119
|
+
end
|
120
|
+
|
121
|
+
def ftype
|
122
|
+
Pathname(self).ftype.to_s
|
123
|
+
end
|
124
|
+
|
125
|
+
def mountpoint?
|
126
|
+
Pathname(self).mountpoint?
|
127
|
+
end
|
128
|
+
|
129
|
+
def mtime
|
130
|
+
Pathname(self).mtime
|
131
|
+
end
|
132
|
+
|
133
|
+
def pipe?
|
134
|
+
Pathname(self).pipe?
|
135
|
+
end
|
136
|
+
|
137
|
+
def realpath
|
138
|
+
Pathname(self).realpath.to_s
|
139
|
+
end
|
140
|
+
|
141
|
+
def root?
|
142
|
+
Pathname(self).root?
|
143
|
+
end
|
144
|
+
|
145
|
+
def socket?
|
146
|
+
Pathname(self).socket?
|
147
|
+
end
|
148
|
+
|
149
|
+
def symlink?
|
150
|
+
Pathname(self).symlink?
|
151
|
+
end
|
152
|
+
|
6
153
|
end
|
7
154
|
end
|
8
155
|
end
|
data/spec/monkey/engine_spec.rb
CHANGED
@@ -1,18 +1,17 @@
|
|
1
|
-
require __FILE__.sub(
|
2
|
-
require "monkey/engine"
|
1
|
+
require __FILE__.sub(%r{monkey/.*$}, "spec_helper")
|
3
2
|
|
4
3
|
describe Monkey::Engine do
|
5
|
-
|
4
|
+
|
6
5
|
it "defines RUBY_VERSION" do
|
7
6
|
defined?(RUBY_VERSION).should == "constant"
|
8
7
|
end
|
9
|
-
|
8
|
+
|
10
9
|
it "defines RUBY_ENGINE_VERSION" do
|
11
10
|
defined?(RUBY_ENGINE_VERSION).should == "constant"
|
12
11
|
end
|
13
|
-
|
12
|
+
|
14
13
|
it "defines RUBY_DESCRIPTION" do
|
15
14
|
defined?(RUBY_DESCRIPTION).should == "constant"
|
16
15
|
end
|
17
|
-
|
16
|
+
|
18
17
|
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require __FILE__.sub(%r{monkey/.*$}, "spec_helper")
|
2
|
+
|
3
|
+
describe Monkey::Ext::Array do
|
4
|
+
describe "backend expectations" do
|
5
|
+
# expects :extract_options!
|
6
|
+
it "imports extract_options! from backend" do
|
7
|
+
[:foo, {:x => 10}].extract_options!.should == {:x => 10}
|
8
|
+
[:foo].extract_options!.should == {}
|
9
|
+
[{:x => 10}, :foo].extract_options!.should == {}
|
10
|
+
ary1 = [:foo, {:x => 10}]
|
11
|
+
ary1.extract_options!
|
12
|
+
ary1.should == [:foo]
|
13
|
+
ary2 = [{:x => 10}, :foo]
|
14
|
+
ary2.extract_options!
|
15
|
+
ary2.should == [{:x => 10}, :foo]
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require __FILE__.sub(%r{monkey/.*$}, "spec_helper")
|
2
|
+
|
3
|
+
describe Monkey::Ext::Module do
|
4
|
+
describe "backend expectations" do
|
5
|
+
# expects :parent
|
6
|
+
it "imports parent from backend" do
|
7
|
+
Monkey::Ext::Module.parent.should == Monkey::Ext
|
8
|
+
Monkey::Ext.parent.should == Monkey
|
9
|
+
Monkey.parent.should == Object
|
10
|
+
Object.parent.should == Object
|
11
|
+
Foo = Monkey::Ext::Module
|
12
|
+
Foo.parent.should == Monkey::Ext
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
require __FILE__.sub(%r{monkey/.*$}, "spec_helper")
|
2
|
+
|
3
|
+
describe Monkey::Ext::Object do
|
4
|
+
|
5
|
+
before do
|
6
|
+
@obj = Object.new
|
7
|
+
end
|
8
|
+
|
9
|
+
describe "backend expectations" do
|
10
|
+
|
11
|
+
# expects :tap
|
12
|
+
it "imports tap from backend" do
|
13
|
+
@obj.tap { |o| o.should == @obj }
|
14
|
+
42.tap { 23 }.should == 42
|
15
|
+
end
|
16
|
+
|
17
|
+
# expects :metaclass
|
18
|
+
it "imports metaclass from backend" do
|
19
|
+
@obj.metaclass.should == (class << @obj; self; end)
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
|
24
|
+
describe :instance_yield do
|
25
|
+
|
26
|
+
before do
|
27
|
+
@obj.stub! :foo
|
28
|
+
end
|
29
|
+
|
30
|
+
it "calls a block if block takes at least one argument" do
|
31
|
+
foo = nil
|
32
|
+
@obj.should_not_receive :foo
|
33
|
+
@obj.send :instance_yield do |x|
|
34
|
+
foo
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
it "passes object as first argument to blog" do
|
39
|
+
@obj.send :instance_yield do |x|
|
40
|
+
x.should == @obj
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
it "passes the block to instance_eval if block doesn't take arguments" do
|
45
|
+
@obj.should_receive :foo
|
46
|
+
@obj.send :instance_yield do
|
47
|
+
foo
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
end
|
52
|
+
|
53
|
+
end
|
@@ -0,0 +1,331 @@
|
|
1
|
+
require __FILE__.sub(%r{monkey/.*$}, "spec_helper")
|
2
|
+
|
3
|
+
describe Monkey::Ext::String do
|
4
|
+
|
5
|
+
describe "backend expectations" do
|
6
|
+
|
7
|
+
# expects :constantize :underscore, :camelcase
|
8
|
+
it "imports constantize from backend" do
|
9
|
+
"Object".constantize.should == Object
|
10
|
+
"Monkey::Ext".constantize.should == Monkey::Ext
|
11
|
+
end
|
12
|
+
|
13
|
+
# expects :to_const_string
|
14
|
+
it "imports to_const_string from backend" do
|
15
|
+
"object".to_const_string.should == "Object"
|
16
|
+
"monkey/ext".to_const_string.should == "Monkey::Ext"
|
17
|
+
end
|
18
|
+
|
19
|
+
# expects :to_const_path
|
20
|
+
it "imports to_const_path from backend" do
|
21
|
+
"Object".to_const_path.should == "object"
|
22
|
+
"Monkey::Ext".to_const_path.should == "monkey/ext"
|
23
|
+
end
|
24
|
+
|
25
|
+
# expects :underscore
|
26
|
+
it "imports underscore from backend" do
|
27
|
+
"FooBar".underscore.should == "foo_bar"
|
28
|
+
end
|
29
|
+
|
30
|
+
# expects :camelcase
|
31
|
+
it "imports camelcase from backend" do
|
32
|
+
["FooBar", "fooBar"].should include("foo_bar".camelcase)
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
36
|
+
|
37
|
+
describe "like Pathname" do
|
38
|
+
|
39
|
+
before do
|
40
|
+
@strings = ["/usr/bin/ruby", ".", "..", ENV["HOME"]]
|
41
|
+
@methods = Pathname.instance_methods(false).reject do |m|
|
42
|
+
String.methods.include? m or m.to_s == "to_path"
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
it "imports Pathname's cleanpath to String" do
|
47
|
+
@strings.each do |s|
|
48
|
+
s.cleanpath.should == Pathname(s).cleanpath.to_s
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
it "imports Pathname's realpath to String" do
|
53
|
+
@strings.each do |s|
|
54
|
+
s.realpath.should == Pathname(s).realpath.to_s
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
it "imports Pathname's mountpoint? to String" do
|
59
|
+
@strings.each do |s|
|
60
|
+
s.mountpoint?.should == Pathname(s).mountpoint?
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
it "imports Pathname's root? to String" do
|
65
|
+
@strings.each do |s|
|
66
|
+
s.root?.should == Pathname(s).root?
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
it "imports Pathname's absolute_path? to String" do
|
71
|
+
@strings.each do |s|
|
72
|
+
s.absolute_path?.should == Pathname(s).absolute?
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
it "imports Pathname's file_relative? to String" do
|
77
|
+
@strings.each do |s|
|
78
|
+
s.file_relative?.should == Pathname(s).relative?
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
it "imports Pathname's file_join to String" do
|
83
|
+
@strings.each do |s|
|
84
|
+
s.file_join("foo").should == Pathname(s).join("foo").to_s
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
it "imports Pathname's atime to String" do
|
89
|
+
@strings.each do |s|
|
90
|
+
s.atime.should == Pathname(s).atime
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
it "imports Pathname's ctime to String" do
|
95
|
+
@strings.each do |s|
|
96
|
+
s.ctime.should == Pathname(s).ctime
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
it "imports Pathname's mtime to String" do
|
101
|
+
@strings.each do |s|
|
102
|
+
s.mtime.should == Pathname(s).mtime
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
it "imports Pathname's ftype to String" do
|
107
|
+
@strings.each do |s|
|
108
|
+
s.ftype.should == Pathname(s).ftype.to_s
|
109
|
+
end
|
110
|
+
end
|
111
|
+
|
112
|
+
it "imports Pathname's basename to String" do
|
113
|
+
@strings.each do |s|
|
114
|
+
s.basename.should == Pathname(s).basename.to_s
|
115
|
+
end
|
116
|
+
end
|
117
|
+
|
118
|
+
it "imports Pathname's dirname to String" do
|
119
|
+
@strings.each do |s|
|
120
|
+
s.dirname.should == Pathname(s).dirname.to_s
|
121
|
+
end
|
122
|
+
end
|
123
|
+
|
124
|
+
it "imports Pathname's extname to String" do
|
125
|
+
@strings.each do |s|
|
126
|
+
s.extname.should == Pathname(s).extname.to_s
|
127
|
+
end
|
128
|
+
end
|
129
|
+
|
130
|
+
it "imports Pathname's expand_path to String" do
|
131
|
+
@strings.each do |s|
|
132
|
+
s.expand_path.should == Pathname(s).expand_path.to_s
|
133
|
+
end
|
134
|
+
end
|
135
|
+
|
136
|
+
it "imports Pathname's blockdev? to String" do
|
137
|
+
@strings.each do |s|
|
138
|
+
s.blockdev?.should == Pathname(s).blockdev?
|
139
|
+
end
|
140
|
+
end
|
141
|
+
|
142
|
+
it "imports Pathname's chardev? to String" do
|
143
|
+
@strings.each do |s|
|
144
|
+
s.chardev?.should == Pathname(s).chardev?
|
145
|
+
end
|
146
|
+
end
|
147
|
+
|
148
|
+
it "imports Pathname's file_executable? to String" do
|
149
|
+
@strings.each do |s|
|
150
|
+
s.file_executable?.should == Pathname(s).executable?
|
151
|
+
end
|
152
|
+
end
|
153
|
+
|
154
|
+
it "imports Pathname's file_executable_real? to String" do
|
155
|
+
@strings.each do |s|
|
156
|
+
s.file_executable_real?.should == Pathname(s).executable_real?
|
157
|
+
end
|
158
|
+
end
|
159
|
+
|
160
|
+
it "imports Pathname's atime to String" do
|
161
|
+
@strings.each do |s|
|
162
|
+
s.atime.should == Pathname(s).atime
|
163
|
+
end
|
164
|
+
end
|
165
|
+
|
166
|
+
it "imports Pathname's ctime to String" do
|
167
|
+
@strings.each do |s|
|
168
|
+
s.ctime.should == Pathname(s).ctime
|
169
|
+
end
|
170
|
+
end
|
171
|
+
|
172
|
+
it "imports Pathname's mtime to String" do
|
173
|
+
@strings.each do |s|
|
174
|
+
s.mtime.should == Pathname(s).mtime
|
175
|
+
end
|
176
|
+
end
|
177
|
+
|
178
|
+
it "imports Pathname's ftype to String" do
|
179
|
+
@strings.each do |s|
|
180
|
+
s.ftype.should == Pathname(s).ftype.to_s
|
181
|
+
end
|
182
|
+
end
|
183
|
+
|
184
|
+
it "imports Pathname's basename to String" do
|
185
|
+
@strings.each do |s|
|
186
|
+
s.basename.should == Pathname(s).basename.to_s
|
187
|
+
end
|
188
|
+
end
|
189
|
+
|
190
|
+
it "imports Pathname's dirname to String" do
|
191
|
+
@strings.each do |s|
|
192
|
+
s.dirname.should == Pathname(s).dirname.to_s
|
193
|
+
end
|
194
|
+
end
|
195
|
+
|
196
|
+
it "imports Pathname's extname to String" do
|
197
|
+
@strings.each do |s|
|
198
|
+
s.extname.should == Pathname(s).extname.to_s
|
199
|
+
end
|
200
|
+
end
|
201
|
+
|
202
|
+
it "imports Pathname's expand_path to String" do
|
203
|
+
@strings.each do |s|
|
204
|
+
s.expand_path.should == Pathname(s).expand_path.to_s
|
205
|
+
end
|
206
|
+
end
|
207
|
+
|
208
|
+
it "imports Pathname's blockdev? to String" do
|
209
|
+
@strings.each do |s|
|
210
|
+
s.blockdev?.should == Pathname(s).blockdev?
|
211
|
+
end
|
212
|
+
end
|
213
|
+
|
214
|
+
it "imports Pathname's chardev? to String" do
|
215
|
+
@strings.each do |s|
|
216
|
+
s.chardev?.should == Pathname(s).chardev?
|
217
|
+
end
|
218
|
+
end
|
219
|
+
|
220
|
+
it "imports Pathname's file_executable? to String" do
|
221
|
+
@strings.each do |s|
|
222
|
+
s.file_executable?.should == Pathname(s).executable?
|
223
|
+
end
|
224
|
+
end
|
225
|
+
|
226
|
+
it "imports Pathname's file_executable_real? to String" do
|
227
|
+
@strings.each do |s|
|
228
|
+
s.file_executable_real?.should == Pathname(s).executable_real?
|
229
|
+
end
|
230
|
+
end
|
231
|
+
|
232
|
+
it "imports Pathname's directory? to String" do
|
233
|
+
@strings.each do |s|
|
234
|
+
s.directory?.should == Pathname(s).directory?
|
235
|
+
end
|
236
|
+
end
|
237
|
+
|
238
|
+
it "imports Pathname's file? to String" do
|
239
|
+
@strings.each do |s|
|
240
|
+
s.file?.should == Pathname(s).file?
|
241
|
+
end
|
242
|
+
end
|
243
|
+
|
244
|
+
it "imports Pathname's pipe? to String" do
|
245
|
+
@strings.each do |s|
|
246
|
+
s.pipe?.should == Pathname(s).pipe?
|
247
|
+
end
|
248
|
+
end
|
249
|
+
|
250
|
+
it "imports Pathname's socket? to String" do
|
251
|
+
@strings.each do |s|
|
252
|
+
s.socket?.should == Pathname(s).socket?
|
253
|
+
end
|
254
|
+
end
|
255
|
+
|
256
|
+
it "imports Pathname's file_owned? to String" do
|
257
|
+
@strings.each do |s|
|
258
|
+
s.file_owned?.should == Pathname(s).owned?
|
259
|
+
end
|
260
|
+
end
|
261
|
+
|
262
|
+
it "imports Pathname's file_readable? to String" do
|
263
|
+
@strings.each do |s|
|
264
|
+
s.file_readable?.should == Pathname(s).readable?
|
265
|
+
end
|
266
|
+
end
|
267
|
+
|
268
|
+
it "imports Pathname's file_readable_real? to String" do
|
269
|
+
@strings.each do |s|
|
270
|
+
s.file_readable_real?.should == Pathname(s).readable_real?
|
271
|
+
end
|
272
|
+
end
|
273
|
+
|
274
|
+
it "imports Pathname's symlink? to String" do
|
275
|
+
@strings.each do |s|
|
276
|
+
s.symlink?.should == Pathname(s).symlink?
|
277
|
+
end
|
278
|
+
end
|
279
|
+
|
280
|
+
it "imports Pathname's file_writable? to String" do
|
281
|
+
@strings.each do |s|
|
282
|
+
s.file_writable?.should == Pathname(s).writable?
|
283
|
+
end
|
284
|
+
end
|
285
|
+
|
286
|
+
it "imports Pathname's file_writable_real? to String" do
|
287
|
+
@strings.each do |s|
|
288
|
+
s.file_writable_real?.should == Pathname(s).writable_real?
|
289
|
+
end
|
290
|
+
end
|
291
|
+
|
292
|
+
it "imports Pathname's file_zero? to String" do
|
293
|
+
@strings.each do |s|
|
294
|
+
s.file_zero?.should == Pathname(s).zero?
|
295
|
+
end
|
296
|
+
end
|
297
|
+
|
298
|
+
it "imports Pathname's file_exist? to String" do
|
299
|
+
@strings.each do |s|
|
300
|
+
s.file_exist?.should == Pathname(s).exist?
|
301
|
+
s.file_exists?.should == Pathname(s).exist?
|
302
|
+
end
|
303
|
+
end
|
304
|
+
|
305
|
+
it "imports Pathname's file_grpowned? to String" do
|
306
|
+
@strings.each do |s|
|
307
|
+
s.file_grpowned?.should == Pathname(s).grpowned?
|
308
|
+
end
|
309
|
+
end
|
310
|
+
|
311
|
+
it "imports Pathname's file_size? to String" do
|
312
|
+
@strings.each do |s|
|
313
|
+
s.file_size?.should == Pathname(s).size?
|
314
|
+
end
|
315
|
+
end
|
316
|
+
|
317
|
+
it "imports Pathname's file_sticky? to String" do
|
318
|
+
@strings.each do |s|
|
319
|
+
s.file_sticky?.should == Pathname(s).sticky?
|
320
|
+
end
|
321
|
+
end
|
322
|
+
|
323
|
+
it "imports Pathname's directory_children to String" do
|
324
|
+
@strings.each do |s|
|
325
|
+
s.directory_children.should == Pathname(s).children if s.directory?
|
326
|
+
end
|
327
|
+
end
|
328
|
+
|
329
|
+
end
|
330
|
+
|
331
|
+
end
|