ruby_ext 0.4.23 → 0.4.24

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.
@@ -12,12 +12,12 @@ File.class_eval do
12
12
  end
13
13
  end
14
14
 
15
- def create_directory dir
16
- FileUtils.mkdir_p dir unless File.exist? dir
17
- end
18
-
19
- def delete_directory dir
20
- FileUtils.rm_r dir, force: true if File.exist? dir
21
- end
15
+ # def create_directory dir
16
+ # FileUtils.mkdir_p dir unless File.exist? dir
17
+ # end
18
+ #
19
+ # def delete_directory dir
20
+ # FileUtils.rm_r dir, force: true if File.exist? dir
21
+ # end
22
22
  end
23
23
  end
@@ -7,17 +7,17 @@ String.class_eval do
7
7
  File.expand_path(self)
8
8
  end
9
9
 
10
- def to_reader
11
- self.to_sym
12
- end
10
+ # def to_reader
11
+ # self.to_sym
12
+ # end
13
13
 
14
- def to_writer
15
- "#{self}=".to_sym
16
- end
14
+ # def to_writer
15
+ # "#{self}=".to_sym
16
+ # end
17
17
 
18
- def to_iv
19
- "@#{self}"
20
- end
18
+ # def to_iv
19
+ # "@#{self}"
20
+ # end
21
21
 
22
22
  def to_a
23
23
  [self]
@@ -3,17 +3,17 @@ Symbol.class_eval do
3
3
  self.to_s <=> other.to_s
4
4
  end
5
5
 
6
- def to_reader
7
- self
8
- end
9
-
10
- def to_writer
11
- "#{self}=".to_sym
12
- end
13
-
14
- def to_iv
15
- "@#{self}"
16
- end
6
+ # def to_reader
7
+ # self
8
+ # end
9
+ #
10
+ # def to_writer
11
+ # "#{self}=".to_sym
12
+ # end
13
+ #
14
+ # def to_iv
15
+ # "@#{self}"
16
+ # end
17
17
 
18
18
  def + other
19
19
  (self.to_s + other.to_s).to_sym
@@ -3,11 +3,11 @@ module OpenConstructor
3
3
  unless list
4
4
  if values.is_a? Hash
5
5
  values.each do |k, v|
6
- self.respond_to k.to_writer, v
6
+ self.respond_to "#{k}=", v
7
7
  end
8
8
  else
9
9
  values.instance_variables.each do |name|
10
- accessor = name[1..name.size].to_writer
10
+ accessor = "#{name[1..name.size]}="
11
11
  if self.respond_to? accessor
12
12
  self.send accessor, values.instance_variable_get(name)
13
13
  end
@@ -16,13 +16,13 @@ module OpenConstructor
16
16
  else
17
17
  if values.is_a? Hash
18
18
  values.each do |k, v|
19
- self.respond_to k.to_writer, v if list.include? k
19
+ self.respond_to "#{k}=", v if list.include? k
20
20
  end
21
21
  else
22
22
  values.instance_variables.each do |name|
23
23
  accessor = name[1..name.size]
24
24
  if list.include?(accessor.to_sym)
25
- accessor = accessor.to_writer
25
+ accessor = "#{accessor}="
26
26
  if self.respond_to?(accessor)
27
27
  self.send accessor, values.instance_variable_get(name)
28
28
  end
@@ -35,7 +35,7 @@ module OpenConstructor
35
35
 
36
36
  def set! values
37
37
  values.each do |k, v|
38
- self.send k.to_writer, v
38
+ self.send "#{k}=", v
39
39
  end
40
40
  return self
41
41
  end
data/lib/ruby_ext/more.rb CHANGED
@@ -6,6 +6,5 @@ require 'ruby_ext/core'
6
6
  open_constructor
7
7
  synchronize
8
8
  tuple
9
- safe_hash
10
9
  miscellaneous
11
10
  ).each{|f| require "ruby_ext/more/#{f}"}
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby_ext
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.23
4
+ version: 0.4.24
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-08-04 00:00:00 +04:00
13
+ date: 2011-08-08 00:00:00 +04:00
14
14
  default_executable:
15
15
  dependencies: []
16
16
 
@@ -56,7 +56,6 @@ files:
56
56
  - lib/ruby_ext/more/miscellaneous.rb
57
57
  - lib/ruby_ext/more/observable2.rb
58
58
  - lib/ruby_ext/more/open_constructor.rb
59
- - lib/ruby_ext/more/safe_hash.rb
60
59
  - lib/ruby_ext/more/synchronize.rb
61
60
  - lib/ruby_ext/more/tuple.rb
62
61
  - lib/ruby_ext/more.rb
@@ -78,7 +77,6 @@ files:
78
77
  - spec/more/miscellaneous_spec.rb
79
78
  - spec/more/observable2_spec.rb
80
79
  - spec/more/open_constructor_spec.rb
81
- - spec/more/safe_hash_spec.rb
82
80
  - spec/more/spec_helper.rb
83
81
  - spec/more/synchronize_spec.rb
84
82
  has_rdoc: true
@@ -1,177 +0,0 @@
1
- # require 'singleton'
2
-
3
- class SafeHash < BasicObject
4
- attr_reader :hash
5
-
6
- alias_method :send, :__send__
7
-
8
- def initialize hash = {}
9
- reinitialize hash
10
- end
11
-
12
- def []= key, value
13
- value = ::SafeHash.new value if value.is_a? ::Hash
14
- @hash[key.to_sym] = value
15
- end
16
-
17
- # def set! key, value
18
- # value = ::SafeHash.new value if value.is_a? ::Hash
19
- # @hash[key.to_sym] = value
20
- # end
21
- # def set *args; raise "you probably mistyped :set! method!" end
22
-
23
- def include? key
24
- @hash.include? key.to_sym
25
- end
26
-
27
- def tap &b
28
- b.call self
29
- self
30
- end
31
-
32
- def [] key, if_not_exist = ::NotDefined
33
- last = key[-1]
34
- if last == '!'
35
- key = key[0..-2].to_sym
36
- if @hash.include? key
37
- @hash[key]
38
- else
39
- raise "no key :#{key}"
40
- end
41
- elsif last == '?'
42
- key = key[0..-2].to_sym
43
- @hash.include? key
44
- else
45
- key = key.to_sym
46
- if @hash.include? key
47
- @hash[key]
48
- elsif if_not_exist == ::NotDefined
49
- SafeNil.new key
50
- else
51
- return if_not_exist
52
- end
53
- end
54
- end
55
-
56
- def reinitialize hash
57
- @hash = {}
58
- merge! hash
59
- # hash.each do |k, v|
60
- # v = ::SafeHash.new v if v.is_a? ::Hash
61
- # @hash[k.to_sym] = v
62
- # end
63
- # @hash.freeze
64
- end
65
-
66
- def method_missing m, obj = ::NotDefined, &b
67
- raise "invalid usage, can't pass block to (:#{m})!" if b
68
- last = m[-1]
69
- if last == '='
70
- self[m[0..-2]] = obj
71
- else
72
- self[m, obj]
73
- end
74
- end
75
-
76
- def to_yaml *args
77
- @hash.to_yaml *args
78
- end
79
-
80
- def inspect
81
- @hash.inspect
82
- end
83
-
84
- def delete key
85
- @hash.delete key.to_sym
86
- end
87
-
88
- # deep conversion, check and converts nested SafeHashes to Hashes
89
- def to_hash options = {}
90
- r = {}
91
- @hash.each do |k, v|
92
- k = k.to_s if options[:to_s]
93
- r[k] = if v.respond_to :is_a_safe_hash?
94
- v.to_hash options
95
- else
96
- v
97
- end
98
- end
99
- r
100
- end
101
- alias_method :to_h, :to_hash
102
-
103
- def is_a_safe_hash?
104
- true
105
- end
106
-
107
- protected
108
- def reinitialize hash
109
- @hash = {}
110
- hash.each do |k, v|
111
- v = ::SafeHash.new v if v.is_a? ::Hash
112
- @hash[k.to_sym] = v
113
- end
114
- @hash
115
- end
116
-
117
-
118
- class SafeNil < BasicObject
119
- # include ::Singleton
120
-
121
- def initialize key
122
- @key = key
123
- end
124
-
125
- def [] key, if_not_exist = ::NotDefined
126
- last = key[-1]
127
- if last == '!'
128
- raise "no key :#{key}"
129
- elsif last == '?'
130
- false
131
- elsif if_not_exist == ::NotDefined
132
- SafeNil.new key
133
- else
134
- return if_not_exist
135
- end
136
- end
137
-
138
- def method_missing m, if_not_exist = ::NotDefined, &b
139
- raise "invalid usage, can't pass block to (:#{m})!" if b
140
- last = m[-1]
141
- if last == '='
142
- raise "no key '#{@key}'!"
143
- else
144
- self[m, if_not_exist]
145
- end
146
- end
147
-
148
- def include? key
149
- false
150
- end
151
-
152
- def to_b
153
- false
154
- end
155
-
156
- def to_yaml *args
157
- nil.to_yaml *args
158
- end
159
-
160
- def to_h
161
- {}
162
- end
163
-
164
- def to_s
165
- raise "can't convert SafeNil for key '#{@key}' to String!"
166
- end
167
-
168
- def inspect
169
- nil.inspect
170
- end
171
- end
172
-
173
- protected
174
- def p *a
175
- ::Object.send :p, *a
176
- end
177
- end
@@ -1,101 +0,0 @@
1
- require 'more/spec_helper'
2
-
3
- describe "SafeHash and SafeNil" do
4
- it "should allow check for value presence" do
5
- h = SafeHash.new a: :b
6
- h.a?.should be_true
7
- h.b?.should be_false
8
-
9
- h.should include(:a)
10
- h.should_not include(:b)
11
- end
12
-
13
- it "? should return boolean (from error)" do
14
- h = SafeHash.new
15
- lambda{raise "" unless h.a?.class.equal?(NilClass)}.should raise_error
16
- lambda{raise "" unless h.a.a?.class.equal?(NilClass)}.should raise_error
17
- end
18
-
19
- it "passing block should be threated as invalid usage" do
20
- h = SafeHash.new
21
- lambda{h.development{}}.should raise_error(/invalid usage/)
22
- end
23
-
24
- it "should treat assigned nil as value (from error)" do
25
- h = SafeHash.new v: nil
26
- h.v?.should be_true
27
- h.v!.should == nil
28
- end
29
-
30
- it "should modify hash" do
31
- h = SafeHash.new
32
- h.a = 1
33
- h.a!.should == 1
34
- h[:b] = 1
35
- h.b!.should == 1
36
- lambda{h.c.d = 1}.should raise_error(/no key/)
37
- end
38
-
39
- # it "should allow owerride values" do
40
- # h = SafeHash.new a: :b
41
- # h.b = :c
42
- # h.b!.should == :c
43
- # end
44
-
45
- it "general behaviour" do
46
- h = SafeHash.new key: :value
47
-
48
- h.key.should == :value
49
- h.key(:missing).should == :value
50
-
51
- h[:key].should == :value
52
- h[:key, :missing].should == :value
53
-
54
- h['key'].should == :value
55
- h['key', :missing].should == :value
56
-
57
- h.a.b.c[:d].e('missing').should == 'missing'
58
- h.a.b.c[:d][:e, 'missing'].should == 'missing'
59
- end
60
-
61
- it "should build hierarchies of SafeHash" do
62
- h = SafeHash.new a: {a: :b}
63
-
64
- h.a.a.should == :b
65
- h.a.missing.b.c('missing').should == 'missing'
66
- end
67
-
68
- it "should require setting if ! used" do
69
- h = SafeHash.new a: :v, b: {c: :v}
70
-
71
- h.a!.should == :v
72
- h.b.c!.should == :v
73
- h.b!.c!.should == :v
74
-
75
- lambda{h.j!}.should raise_error(/no key :j/)
76
- lambda{h.j.b.c!}.should raise_error(/no key :c/)
77
- end
78
-
79
- # it "should be able to update itself" do
80
- # h = SafeHash.new
81
- # h.b?.should be_false
82
- # h.merge! a: :a
83
- # h.a!.should == :a
84
- # end
85
-
86
- it "should implement include?" do
87
- h = SafeHash.new a: :b
88
- h.include?(:a).should be_true
89
- h.include?('a').should be_true
90
- h.include?(:b).should be_false
91
-
92
- h.b.include?(:a).should be_false
93
- end
94
-
95
- # it "merge_if_blank" do
96
- # h = SafeHash.new a: :b
97
- # h.merge_if_blank! a: :c, d: :e
98
- # h.a!.should == :b
99
- # h.d!.should == :e
100
- # end
101
- end