spruz 0.2.11 → 0.2.12
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +3 -2
- data/Rakefile +1 -2
- data/TODO +1 -0
- data/VERSION +1 -1
- data/bin/enum +2 -2
- data/lib/spruz.rb +1 -0
- data/lib/spruz/partial_application.rb +1 -1
- data/lib/spruz/round.rb +1 -1
- data/lib/spruz/secure_write.rb +23 -0
- data/lib/spruz/string_camelize.rb +1 -1
- data/lib/spruz/string_version.rb +103 -0
- data/lib/spruz/subhash.rb +2 -2
- data/lib/spruz/version.rb +1 -1
- data/lib/spruz/write.rb +10 -13
- data/lib/spruz/xt.rb +1 -0
- data/lib/spruz/xt/full.rb +1 -1
- data/lib/spruz/xt/named.rb +9 -7
- data/lib/spruz/xt/secure_write.rb +11 -0
- data/lib/spruz/xt/string.rb +1 -0
- data/lib/spruz/xt/string_version.rb +9 -0
- data/spruz.gemspec +13 -14
- data/tests/{test_spruz_memoize.rb → spruz_memoize_test.rb} +0 -0
- data/tests/spruz_secure_write_test.rb +44 -0
- data/tests/{test_spruz.rb → spruz_test.rb} +28 -1
- metadata +45 -56
data/.gitignore
CHANGED
data/Rakefile
CHANGED
@@ -12,10 +12,9 @@ GemHadar do
|
|
12
12
|
bindir 'bin'
|
13
13
|
executables << 'enum'
|
14
14
|
test_dir 'tests'
|
15
|
-
ignore '.*.sw[pon]', 'pkg', 'Gemfile.lock'
|
15
|
+
ignore '.*.sw[pon]', 'pkg', 'Gemfile.lock', '.rvmrc'
|
16
16
|
readme 'README.rdoc'
|
17
17
|
|
18
|
-
|
19
18
|
install_library do
|
20
19
|
libdir = CONFIG["sitelibdir"]
|
21
20
|
cd 'lib' do
|
data/TODO
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
- Ruby1.9 has File.write method now, that conflicts with Spruz::Write module's and has to be fixed in some way
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.2.
|
1
|
+
0.2.12
|
data/bin/enum
CHANGED
@@ -107,8 +107,8 @@ def execute_command(command, format, tuple)
|
|
107
107
|
end
|
108
108
|
|
109
109
|
def usage
|
110
|
-
puts <<EOT
|
111
|
-
Usage: #{File.basename($0)} [OPTIONS] RANGES
|
110
|
+
puts <<EOT
|
111
|
+
Usage: #{File.basename($0)} [OPTIONS] RANGES
|
112
112
|
|
113
113
|
RANGES has to be a string of the from R1:R2:...Rn, where R1 to Rn are ranges of
|
114
114
|
values for each dimension. A range can be specified like in one of
|
data/lib/spruz.rb
CHANGED
data/lib/spruz/round.rb
CHANGED
@@ -26,7 +26,7 @@ module Spruz
|
|
26
26
|
end
|
27
27
|
if places < 0
|
28
28
|
max_places = -Math.log(self.abs + 1) / Math.log(10)
|
29
|
-
raise ArgumentError, "places has to be >= #{max_places.ceil}" if max_places > places
|
29
|
+
raise ArgumentError, "places has to be >= #{max_places.ceil}" if max_places > places
|
30
30
|
end
|
31
31
|
t = self
|
32
32
|
f = 10.0 ** places
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module Spruz
|
2
|
+
module SecureWrite
|
3
|
+
# Write to a file atomically
|
4
|
+
def secure_write(filename, content = nil, mode = 'w')
|
5
|
+
temp = File.new(filename + ".tmp.#$$.#{Time.now.to_f}", mode)
|
6
|
+
if content.nil? and block_given?
|
7
|
+
yield temp
|
8
|
+
elsif !content.nil?
|
9
|
+
temp.write content
|
10
|
+
else
|
11
|
+
raise ArgumentError, "either content or block argument required"
|
12
|
+
end
|
13
|
+
temp.fsync
|
14
|
+
size = temp.stat.size
|
15
|
+
temp.close
|
16
|
+
File.rename temp.path, filename
|
17
|
+
size
|
18
|
+
ensure
|
19
|
+
temp and !temp.closed? and temp.close
|
20
|
+
File.file?(temp.path) and File.unlink temp.path
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,103 @@
|
|
1
|
+
require 'spruz/xt/symbol_to_proc'
|
2
|
+
|
3
|
+
module Spruz
|
4
|
+
module StringVersion
|
5
|
+
class Version
|
6
|
+
include Comparable
|
7
|
+
|
8
|
+
def initialize(string)
|
9
|
+
string =~ /\A[\.\d]+\Z/ or raise ArgumentError, "#{string.inspect} isn't a version number"
|
10
|
+
@version = string.frozen? ? string.dup : string
|
11
|
+
end
|
12
|
+
|
13
|
+
def major
|
14
|
+
self[0]
|
15
|
+
end
|
16
|
+
|
17
|
+
def major=(number)
|
18
|
+
self[0] = number
|
19
|
+
end
|
20
|
+
|
21
|
+
def minor
|
22
|
+
self[1]
|
23
|
+
end
|
24
|
+
|
25
|
+
def minor=(number)
|
26
|
+
self[1] = number
|
27
|
+
end
|
28
|
+
|
29
|
+
def build
|
30
|
+
self[2]
|
31
|
+
end
|
32
|
+
|
33
|
+
def build=(number)
|
34
|
+
self[2] = number
|
35
|
+
end
|
36
|
+
|
37
|
+
def revision
|
38
|
+
self[3]
|
39
|
+
end
|
40
|
+
|
41
|
+
def revision=(number)
|
42
|
+
self[3] = number
|
43
|
+
end
|
44
|
+
|
45
|
+
def [](index)
|
46
|
+
array[index]
|
47
|
+
end
|
48
|
+
|
49
|
+
def []=(index, value)
|
50
|
+
value = value.to_i
|
51
|
+
value >= 0 or raise ArgumentError, "version numbers can't contain negative numbers like #{value}"
|
52
|
+
a = array
|
53
|
+
@array = nil
|
54
|
+
a[index] = value
|
55
|
+
a.map! { |x| x.nil? ? 0 : x }
|
56
|
+
@version.replace a * '.'
|
57
|
+
end
|
58
|
+
|
59
|
+
def succ!
|
60
|
+
self[-1] += 1
|
61
|
+
end
|
62
|
+
|
63
|
+
def pred!
|
64
|
+
self[-1] -= 1
|
65
|
+
end
|
66
|
+
|
67
|
+
def <=>(other)
|
68
|
+
pairs = array.zip(other.array)
|
69
|
+
pairs.map! { |a, b| [ a.nil? ? 0 : a, b.nil? ? 0 : b ] }
|
70
|
+
a, b = pairs.transpose
|
71
|
+
a <=> b
|
72
|
+
end
|
73
|
+
|
74
|
+
def ==(other)
|
75
|
+
(self <=> other).zero?
|
76
|
+
end
|
77
|
+
|
78
|
+
def array
|
79
|
+
@version.split('.').map(&:to_i)
|
80
|
+
end
|
81
|
+
|
82
|
+
alias to_a array
|
83
|
+
|
84
|
+
def to_s
|
85
|
+
@version
|
86
|
+
end
|
87
|
+
|
88
|
+
alias inspect to_s
|
89
|
+
|
90
|
+
def version
|
91
|
+
self
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
def version
|
96
|
+
if frozen?
|
97
|
+
Version.new(self)
|
98
|
+
else
|
99
|
+
@version ||= Version.new(self)
|
100
|
+
end
|
101
|
+
end
|
102
|
+
end
|
103
|
+
end
|
data/lib/spruz/subhash.rb
CHANGED
@@ -3,7 +3,7 @@ module Spruz
|
|
3
3
|
# Create a subhash from this hash, that only contains key-value pairs
|
4
4
|
# matching +patterns+ and return it. +patterns+ can be for example /^foo/
|
5
5
|
# to put 'foobar' and 'foobaz' or 'foo'/:foo to put 'foo' into the subhash.
|
6
|
-
#
|
6
|
+
#
|
7
7
|
# If a block is given this method yields to it after the first pattern
|
8
8
|
# matched with a 3-tuple of +(key, value, match_data)+ using the return
|
9
9
|
# value of the block as the value of the result hash. +match_data+ is a
|
@@ -17,7 +17,7 @@ module Spruz
|
|
17
17
|
result =
|
18
18
|
if default_proc
|
19
19
|
self.class.new(&default_proc)
|
20
|
-
else
|
20
|
+
else
|
21
21
|
self.class.new(default)
|
22
22
|
end
|
23
23
|
if block_given?
|
data/lib/spruz/version.rb
CHANGED
data/lib/spruz/write.rb
CHANGED
@@ -1,20 +1,17 @@
|
|
1
|
+
require 'spruz/secure_write'
|
2
|
+
|
1
3
|
module Spruz
|
2
4
|
module Write
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
yield temp
|
8
|
-
elsif !content.nil?
|
9
|
-
temp.write content
|
5
|
+
def self.extended(modul)
|
6
|
+
modul.extend SecureWrite
|
7
|
+
if modul.respond_to?(:write)
|
8
|
+
$DEBUG and warn "Skipping inclusion of Spruz::Write#write method, include Spruz::Write::SecureWrite#secure_write instead"
|
10
9
|
else
|
11
|
-
|
10
|
+
class << modul; self; end.instance_eval do
|
11
|
+
alias_method :write, :secure_write
|
12
|
+
end
|
12
13
|
end
|
13
|
-
|
14
|
-
File.rename temp.path, filename
|
15
|
-
ensure
|
16
|
-
temp and !temp.closed? and temp.close
|
17
|
-
File.file?(temp.path) and File.unlink temp.path
|
14
|
+
super
|
18
15
|
end
|
19
16
|
end
|
20
17
|
end
|
data/lib/spruz/xt.rb
CHANGED
data/lib/spruz/xt/full.rb
CHANGED
data/lib/spruz/xt/named.rb
CHANGED
@@ -1,23 +1,25 @@
|
|
1
|
+
require 'spruz/xt/string_version'
|
2
|
+
|
1
3
|
class Object
|
2
|
-
if RUBY_VERSION >= '1.9'
|
3
|
-
def named(name, method, *args, &named_block)
|
4
|
+
if RUBY_VERSION.version >= '1.9'.version
|
5
|
+
def named(name, method, *args, &named_block)
|
4
6
|
extend Module.new {
|
5
7
|
define_method(name) do |*rest, &block|
|
6
8
|
block = named_block if named_block
|
7
|
-
__send__(method, *(args + rest), &block)
|
9
|
+
__send__(method, *(args + rest), &block)
|
8
10
|
end
|
9
11
|
}
|
10
12
|
end
|
11
13
|
else
|
12
|
-
def named(name, method, *args, &block)
|
14
|
+
def named(name, method, *args, &block)
|
13
15
|
extend Module.new { define_method(name) { |*rest| __send__(method, *(args + rest), &block) } }
|
14
16
|
end
|
15
17
|
end
|
16
18
|
end
|
17
19
|
|
18
20
|
class Module
|
19
|
-
if RUBY_VERSION >= '1.9'
|
20
|
-
def named(name, method, *args, &named_block)
|
21
|
+
if RUBY_VERSION.version >= '1.9'.version
|
22
|
+
def named(name, method, *args, &named_block)
|
21
23
|
include Module.new {
|
22
24
|
define_method(name) do |*rest, &block|
|
23
25
|
block = named_block if named_block
|
@@ -26,7 +28,7 @@ class Module
|
|
26
28
|
}
|
27
29
|
end
|
28
30
|
else
|
29
|
-
def named(name, method, *args, &block)
|
31
|
+
def named(name, method, *args, &block)
|
30
32
|
include Module.new { define_method(name) { |*rest| __send__(method, *(args + rest), &block) } }
|
31
33
|
end
|
32
34
|
end
|
data/lib/spruz/xt/string.rb
CHANGED
data/spruz.gemspec
CHANGED
@@ -2,33 +2,32 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{spruz}
|
5
|
-
s.version = "0.2.
|
5
|
+
s.version = "0.2.12"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
|
-
s.authors = [
|
9
|
-
s.date = %q{2011-
|
10
|
-
s.default_executable = %q{enum}
|
8
|
+
s.authors = [%q{Florian Frank}]
|
9
|
+
s.date = %q{2011-08-05}
|
11
10
|
s.description = %q{All the stuff that isn't good/big enough for a real library.}
|
12
11
|
s.email = %q{flori@ping.de}
|
13
|
-
s.executables = [
|
14
|
-
s.extra_rdoc_files = [
|
15
|
-
s.files = [
|
12
|
+
s.executables = [%q{enum}]
|
13
|
+
s.extra_rdoc_files = [%q{README.rdoc}, %q{lib/spruz.rb}, %q{lib/spruz/hash_symbolize_keys_recursive.rb}, %q{lib/spruz/string_underscore.rb}, %q{lib/spruz/hash_union.rb}, %q{lib/spruz/write.rb}, %q{lib/spruz/version.rb}, %q{lib/spruz/round.rb}, %q{lib/spruz/go.rb}, %q{lib/spruz/generator.rb}, %q{lib/spruz/string_camelize.rb}, %q{lib/spruz/shuffle.rb}, %q{lib/spruz/deep_dup.rb}, %q{lib/spruz/memoize.rb}, %q{lib/spruz/subhash.rb}, %q{lib/spruz/bijection.rb}, %q{lib/spruz/limited.rb}, %q{lib/spruz/attempt.rb}, %q{lib/spruz/to_proc.rb}, %q{lib/spruz/module_group.rb}, %q{lib/spruz/null.rb}, %q{lib/spruz/secure_write.rb}, %q{lib/spruz/xt.rb}, %q{lib/spruz/string_version.rb}, %q{lib/spruz/once.rb}, %q{lib/spruz/xt/named.rb}, %q{lib/spruz/xt/hash_symbolize_keys_recursive.rb}, %q{lib/spruz/xt/string_underscore.rb}, %q{lib/spruz/xt/hash_union.rb}, %q{lib/spruz/xt/write.rb}, %q{lib/spruz/xt/irb.rb}, %q{lib/spruz/xt/round.rb}, %q{lib/spruz/xt/string_camelize.rb}, %q{lib/spruz/xt/shuffle.rb}, %q{lib/spruz/xt/deep_dup.rb}, %q{lib/spruz/xt/symbol_to_proc.rb}, %q{lib/spruz/xt/subhash.rb}, %q{lib/spruz/xt/attempt.rb}, %q{lib/spruz/xt/null.rb}, %q{lib/spruz/xt/secure_write.rb}, %q{lib/spruz/xt/string_version.rb}, %q{lib/spruz/xt/p.rb}, %q{lib/spruz/xt/partial_application.rb}, %q{lib/spruz/xt/time_dummy.rb}, %q{lib/spruz/xt/string.rb}, %q{lib/spruz/xt/full.rb}, %q{lib/spruz/xt/range_plus.rb}, %q{lib/spruz/xt/count_by.rb}, %q{lib/spruz/xt/blank.rb}, %q{lib/spruz/xt/uniq_by.rb}, %q{lib/spruz/p.rb}, %q{lib/spruz/minimize.rb}, %q{lib/spruz/partial_application.rb}, %q{lib/spruz/time_dummy.rb}, %q{lib/spruz/range_plus.rb}, %q{lib/spruz/count_by.rb}, %q{lib/spruz/uniq_by.rb}]
|
14
|
+
s.files = [%q{.gitignore}, %q{.travis.yml}, %q{Gemfile}, %q{LICENSE}, %q{README.rdoc}, %q{Rakefile}, %q{TODO}, %q{VERSION}, %q{bin/enum}, %q{lib/spruz.rb}, %q{lib/spruz/attempt.rb}, %q{lib/spruz/bijection.rb}, %q{lib/spruz/count_by.rb}, %q{lib/spruz/deep_dup.rb}, %q{lib/spruz/generator.rb}, %q{lib/spruz/go.rb}, %q{lib/spruz/hash_symbolize_keys_recursive.rb}, %q{lib/spruz/hash_union.rb}, %q{lib/spruz/limited.rb}, %q{lib/spruz/memoize.rb}, %q{lib/spruz/minimize.rb}, %q{lib/spruz/module_group.rb}, %q{lib/spruz/null.rb}, %q{lib/spruz/once.rb}, %q{lib/spruz/p.rb}, %q{lib/spruz/partial_application.rb}, %q{lib/spruz/range_plus.rb}, %q{lib/spruz/round.rb}, %q{lib/spruz/secure_write.rb}, %q{lib/spruz/shuffle.rb}, %q{lib/spruz/string_camelize.rb}, %q{lib/spruz/string_underscore.rb}, %q{lib/spruz/string_version.rb}, %q{lib/spruz/subhash.rb}, %q{lib/spruz/time_dummy.rb}, %q{lib/spruz/to_proc.rb}, %q{lib/spruz/uniq_by.rb}, %q{lib/spruz/version.rb}, %q{lib/spruz/write.rb}, %q{lib/spruz/xt.rb}, %q{lib/spruz/xt/attempt.rb}, %q{lib/spruz/xt/blank.rb}, %q{lib/spruz/xt/count_by.rb}, %q{lib/spruz/xt/deep_dup.rb}, %q{lib/spruz/xt/full.rb}, %q{lib/spruz/xt/hash_symbolize_keys_recursive.rb}, %q{lib/spruz/xt/hash_union.rb}, %q{lib/spruz/xt/irb.rb}, %q{lib/spruz/xt/named.rb}, %q{lib/spruz/xt/null.rb}, %q{lib/spruz/xt/p.rb}, %q{lib/spruz/xt/partial_application.rb}, %q{lib/spruz/xt/range_plus.rb}, %q{lib/spruz/xt/round.rb}, %q{lib/spruz/xt/secure_write.rb}, %q{lib/spruz/xt/shuffle.rb}, %q{lib/spruz/xt/string.rb}, %q{lib/spruz/xt/string_camelize.rb}, %q{lib/spruz/xt/string_underscore.rb}, %q{lib/spruz/xt/string_version.rb}, %q{lib/spruz/xt/subhash.rb}, %q{lib/spruz/xt/symbol_to_proc.rb}, %q{lib/spruz/xt/time_dummy.rb}, %q{lib/spruz/xt/uniq_by.rb}, %q{lib/spruz/xt/write.rb}, %q{spruz.gemspec}, %q{tests/spruz_memoize_test.rb}, %q{tests/spruz_secure_write_test.rb}, %q{tests/spruz_test.rb}]
|
16
15
|
s.homepage = %q{http://flori.github.com/spruz}
|
17
|
-
s.rdoc_options = [
|
18
|
-
s.require_paths = [
|
19
|
-
s.rubygems_version = %q{1.6
|
16
|
+
s.rdoc_options = [%q{--title}, %q{Spruz - Useful stuff.}, %q{--main}, %q{README.rdoc}]
|
17
|
+
s.require_paths = [%q{lib}]
|
18
|
+
s.rubygems_version = %q{1.8.6}
|
20
19
|
s.summary = %q{Useful stuff.}
|
21
|
-
s.test_files = [
|
20
|
+
s.test_files = [%q{tests/spruz_secure_write_test.rb}, %q{tests/spruz_test.rb}, %q{tests/spruz_memoize_test.rb}]
|
22
21
|
|
23
22
|
if s.respond_to? :specification_version then
|
24
23
|
s.specification_version = 3
|
25
24
|
|
26
25
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
27
|
-
s.add_development_dependency(%q<gem_hadar>, ["~> 0.0.
|
26
|
+
s.add_development_dependency(%q<gem_hadar>, ["~> 0.0.9"])
|
28
27
|
else
|
29
|
-
s.add_dependency(%q<gem_hadar>, ["~> 0.0.
|
28
|
+
s.add_dependency(%q<gem_hadar>, ["~> 0.0.9"])
|
30
29
|
end
|
31
30
|
else
|
32
|
-
s.add_dependency(%q<gem_hadar>, ["~> 0.0.
|
31
|
+
s.add_dependency(%q<gem_hadar>, ["~> 0.0.9"])
|
33
32
|
end
|
34
33
|
end
|
File without changes
|
@@ -0,0 +1,44 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'test/unit'
|
4
|
+
require 'tempfile'
|
5
|
+
require 'spruz'
|
6
|
+
|
7
|
+
module Spruz
|
8
|
+
class SpruzSecureWriteTest < Test::Unit::TestCase
|
9
|
+
module A
|
10
|
+
extend SecureWrite
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_secure_write
|
14
|
+
assert_equal 4, A.secure_write(fn = File.join(Dir.tmpdir, "A_file.#$$"), 'test')
|
15
|
+
assert_equal 4, A.secure_write(fn = File.join(Dir.tmpdir, "A_file.#$$")) { |f| f.write('test') }
|
16
|
+
assert_equal 'test', File.read(fn)
|
17
|
+
assert_raise(ArgumentError) { A.secure_write }
|
18
|
+
end
|
19
|
+
|
20
|
+
module B
|
21
|
+
extend Write
|
22
|
+
end
|
23
|
+
|
24
|
+
module C
|
25
|
+
def self.write(*args)
|
26
|
+
args
|
27
|
+
end
|
28
|
+
extend Write
|
29
|
+
end
|
30
|
+
|
31
|
+
class ::IO
|
32
|
+
extend Write
|
33
|
+
end
|
34
|
+
|
35
|
+
def test_write
|
36
|
+
assert_equal 4, B.write(fn = File.join(Dir.tmpdir, "B_file.#$$"), 'test')
|
37
|
+
assert_equal 4, B.write(fn = File.join(Dir.tmpdir, "B_file.#$$")) { |f| f.write('test') }
|
38
|
+
assert_equal 4, IO.write(fn = File.join(Dir.tmpdir, "IO_file.#$$"), 'test')
|
39
|
+
assert_equal 'test', File.read(fn)
|
40
|
+
result = C.write(fn = File.join(Dir.tmpdir, "C_file.#$$"), 'test')
|
41
|
+
assert_equal [ fn, 'test' ], result
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -502,7 +502,7 @@ module Spruz
|
|
502
502
|
end
|
503
503
|
end
|
504
504
|
end
|
505
|
-
|
505
|
+
|
506
506
|
class TryTest < Test::Unit::TestCase
|
507
507
|
require 'spruz/xt/attempt'
|
508
508
|
|
@@ -598,4 +598,31 @@ module Spruz
|
|
598
598
|
assert_equal 'foo/bar', 'Foo::Bar'.underscore
|
599
599
|
end
|
600
600
|
end
|
601
|
+
|
602
|
+
class StringVersionTest < Test::Unit::TestCase
|
603
|
+
def test_comparison
|
604
|
+
assert_operator '1.2'.version, :<, '1.3'.version
|
605
|
+
assert_operator '1.3'.version, :>, '1.2'.version
|
606
|
+
assert_operator '1.2'.version, :<=, '1.2'.version
|
607
|
+
assert_operator '1.2'.version, :>=, '1.2'.version
|
608
|
+
assert_operator '1.2'.version, :==, '1.2'.version
|
609
|
+
end
|
610
|
+
|
611
|
+
def test_change
|
612
|
+
s = '1.2'
|
613
|
+
s.version.revision = 1
|
614
|
+
assert_equal '1.2.0.1', s
|
615
|
+
s.version.revision += 1
|
616
|
+
assert_equal '1.2.0.2', s
|
617
|
+
s.version.succ!
|
618
|
+
assert_equal '1.2.0.3', s
|
619
|
+
s.version.pred!
|
620
|
+
assert_equal '1.2.0.2', s
|
621
|
+
assert_raise(ArgumentError) { s.version.build -= 1 }
|
622
|
+
s.version.major = 2
|
623
|
+
assert_equal '2.2.0.2', s
|
624
|
+
s.version.minor = 1
|
625
|
+
assert_equal '2.1.0.2', s
|
626
|
+
end
|
627
|
+
end
|
601
628
|
end
|
metadata
CHANGED
@@ -1,46 +1,33 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: spruz
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.2.12
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 2
|
9
|
-
- 11
|
10
|
-
version: 0.2.11
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Florian Frank
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
dependencies:
|
21
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2011-08-05 00:00:00.000000000Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
22
15
|
name: gem_hadar
|
23
|
-
|
24
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: &2157109200 !ruby/object:Gem::Requirement
|
25
17
|
none: false
|
26
|
-
requirements:
|
18
|
+
requirements:
|
27
19
|
- - ~>
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
|
30
|
-
segments:
|
31
|
-
- 0
|
32
|
-
- 0
|
33
|
-
- 4
|
34
|
-
version: 0.0.4
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: 0.0.9
|
35
22
|
type: :development
|
36
|
-
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *2157109200
|
37
25
|
description: All the stuff that isn't good/big enough for a real library.
|
38
26
|
email: flori@ping.de
|
39
|
-
executables:
|
27
|
+
executables:
|
40
28
|
- enum
|
41
29
|
extensions: []
|
42
|
-
|
43
|
-
extra_rdoc_files:
|
30
|
+
extra_rdoc_files:
|
44
31
|
- README.rdoc
|
45
32
|
- lib/spruz.rb
|
46
33
|
- lib/spruz/hash_symbolize_keys_recursive.rb
|
@@ -62,7 +49,9 @@ extra_rdoc_files:
|
|
62
49
|
- lib/spruz/to_proc.rb
|
63
50
|
- lib/spruz/module_group.rb
|
64
51
|
- lib/spruz/null.rb
|
52
|
+
- lib/spruz/secure_write.rb
|
65
53
|
- lib/spruz/xt.rb
|
54
|
+
- lib/spruz/string_version.rb
|
66
55
|
- lib/spruz/once.rb
|
67
56
|
- lib/spruz/xt/named.rb
|
68
57
|
- lib/spruz/xt/hash_symbolize_keys_recursive.rb
|
@@ -78,6 +67,8 @@ extra_rdoc_files:
|
|
78
67
|
- lib/spruz/xt/subhash.rb
|
79
68
|
- lib/spruz/xt/attempt.rb
|
80
69
|
- lib/spruz/xt/null.rb
|
70
|
+
- lib/spruz/xt/secure_write.rb
|
71
|
+
- lib/spruz/xt/string_version.rb
|
81
72
|
- lib/spruz/xt/p.rb
|
82
73
|
- lib/spruz/xt/partial_application.rb
|
83
74
|
- lib/spruz/xt/time_dummy.rb
|
@@ -94,13 +85,14 @@ extra_rdoc_files:
|
|
94
85
|
- lib/spruz/range_plus.rb
|
95
86
|
- lib/spruz/count_by.rb
|
96
87
|
- lib/spruz/uniq_by.rb
|
97
|
-
files:
|
88
|
+
files:
|
98
89
|
- .gitignore
|
99
90
|
- .travis.yml
|
100
91
|
- Gemfile
|
101
92
|
- LICENSE
|
102
93
|
- README.rdoc
|
103
94
|
- Rakefile
|
95
|
+
- TODO
|
104
96
|
- VERSION
|
105
97
|
- bin/enum
|
106
98
|
- lib/spruz.rb
|
@@ -122,9 +114,11 @@ files:
|
|
122
114
|
- lib/spruz/partial_application.rb
|
123
115
|
- lib/spruz/range_plus.rb
|
124
116
|
- lib/spruz/round.rb
|
117
|
+
- lib/spruz/secure_write.rb
|
125
118
|
- lib/spruz/shuffle.rb
|
126
119
|
- lib/spruz/string_camelize.rb
|
127
120
|
- lib/spruz/string_underscore.rb
|
121
|
+
- lib/spruz/string_version.rb
|
128
122
|
- lib/spruz/subhash.rb
|
129
123
|
- lib/spruz/time_dummy.rb
|
130
124
|
- lib/spruz/to_proc.rb
|
@@ -146,55 +140,50 @@ files:
|
|
146
140
|
- lib/spruz/xt/partial_application.rb
|
147
141
|
- lib/spruz/xt/range_plus.rb
|
148
142
|
- lib/spruz/xt/round.rb
|
143
|
+
- lib/spruz/xt/secure_write.rb
|
149
144
|
- lib/spruz/xt/shuffle.rb
|
150
145
|
- lib/spruz/xt/string.rb
|
151
146
|
- lib/spruz/xt/string_camelize.rb
|
152
147
|
- lib/spruz/xt/string_underscore.rb
|
148
|
+
- lib/spruz/xt/string_version.rb
|
153
149
|
- lib/spruz/xt/subhash.rb
|
154
150
|
- lib/spruz/xt/symbol_to_proc.rb
|
155
151
|
- lib/spruz/xt/time_dummy.rb
|
156
152
|
- lib/spruz/xt/uniq_by.rb
|
157
153
|
- lib/spruz/xt/write.rb
|
158
154
|
- spruz.gemspec
|
159
|
-
- tests/
|
160
|
-
- tests/
|
161
|
-
|
155
|
+
- tests/spruz_memoize_test.rb
|
156
|
+
- tests/spruz_secure_write_test.rb
|
157
|
+
- tests/spruz_test.rb
|
162
158
|
homepage: http://flori.github.com/spruz
|
163
159
|
licenses: []
|
164
|
-
|
165
160
|
post_install_message:
|
166
|
-
rdoc_options:
|
161
|
+
rdoc_options:
|
167
162
|
- --title
|
168
163
|
- Spruz - Useful stuff.
|
169
164
|
- --main
|
170
165
|
- README.rdoc
|
171
|
-
require_paths:
|
166
|
+
require_paths:
|
172
167
|
- lib
|
173
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
168
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
174
169
|
none: false
|
175
|
-
requirements:
|
176
|
-
- -
|
177
|
-
- !ruby/object:Gem::Version
|
178
|
-
|
179
|
-
|
180
|
-
- 0
|
181
|
-
version: "0"
|
182
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - ! '>='
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '0'
|
174
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
183
175
|
none: false
|
184
|
-
requirements:
|
185
|
-
- -
|
186
|
-
- !ruby/object:Gem::Version
|
187
|
-
|
188
|
-
segments:
|
189
|
-
- 0
|
190
|
-
version: "0"
|
176
|
+
requirements:
|
177
|
+
- - ! '>='
|
178
|
+
- !ruby/object:Gem::Version
|
179
|
+
version: '0'
|
191
180
|
requirements: []
|
192
|
-
|
193
181
|
rubyforge_project:
|
194
|
-
rubygems_version: 1.6
|
182
|
+
rubygems_version: 1.8.6
|
195
183
|
signing_key:
|
196
184
|
specification_version: 3
|
197
185
|
summary: Useful stuff.
|
198
|
-
test_files:
|
199
|
-
- tests/
|
200
|
-
- tests/
|
186
|
+
test_files:
|
187
|
+
- tests/spruz_secure_write_test.rb
|
188
|
+
- tests/spruz_test.rb
|
189
|
+
- tests/spruz_memoize_test.rb
|