ruby-nuggets 0.6.1 → 0.6.2

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 CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  == VERSION
4
4
 
5
- This documentation refers to ruby-nuggets version 0.6.1
5
+ This documentation refers to ruby-nuggets version 0.6.2
6
6
 
7
7
 
8
8
  == DESCRIPTION
data/Rakefile CHANGED
@@ -8,7 +8,8 @@ require 'lib/nuggets/version'
8
8
 
9
9
  Hen.lay! {{
10
10
  :rubyforge => {
11
- :package => 'ruby-nuggets'
11
+ :project => %q{prometheus},
12
+ :package => %q{ruby-nuggets}
12
13
  },
13
14
 
14
15
  :gem => {
@@ -0,0 +1,5 @@
1
+ require 'nuggets/array/runiq_mixin'
2
+
3
+ class Array
4
+ include Nuggets::Array::RuniqMixin
5
+ end
@@ -0,0 +1,53 @@
1
+ #--
2
+ ###############################################################################
3
+ # #
4
+ # A component of ruby-nuggets, some extensions to the Ruby programming #
5
+ # language. #
6
+ # #
7
+ # Copyright (C) 2007-2009 Jens Wille #
8
+ # #
9
+ # Authors: #
10
+ # Jens Wille <jens.wille@uni-koeln.de> #
11
+ # #
12
+ # ruby-nuggets is free software; you can redistribute it and/or modify it #
13
+ # under the terms of the GNU General Public License as published by the Free #
14
+ # Software Foundation; either version 3 of the License, or (at your option) #
15
+ # any later version. #
16
+ # #
17
+ # ruby-nuggets is distributed in the hope that it will be useful, but WITHOUT #
18
+ # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or #
19
+ # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for #
20
+ # more details. #
21
+ # #
22
+ # You should have received a copy of the GNU General Public License along #
23
+ # with ruby-nuggets. If not, see <http://www.gnu.org/licenses/>. #
24
+ # #
25
+ ###############################################################################
26
+ #++
27
+
28
+ module Nuggets
29
+ class Array
30
+ module RuniqMixin
31
+
32
+ # call-seq:
33
+ # array.runiq => an_array
34
+ #
35
+ # Reverse #uniq.
36
+ def runiq
37
+ reverse.uniq.reverse
38
+ end
39
+
40
+ # call-seq:
41
+ # array.runiq! => an_array or nil
42
+ #
43
+ # Reverse #uniq!.
44
+ def runiq!
45
+ reverse!
46
+ res = uniq!
47
+ reverse!
48
+ res && self
49
+ end
50
+
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,5 @@
1
+ require 'nuggets/string/xor_mixin'
2
+
3
+ class String
4
+ include Nuggets::String::XorMixin
5
+ end
@@ -0,0 +1,60 @@
1
+ #--
2
+ ###############################################################################
3
+ # #
4
+ # A component of ruby-nuggets, some extensions to the Ruby programming #
5
+ # language. #
6
+ # #
7
+ # Copyright (C) 2007-2009 Jens Wille #
8
+ # #
9
+ # Authors: #
10
+ # Jens Wille <jens.wille@uni-koeln.de> #
11
+ # #
12
+ # ruby-nuggets is free software; you can redistribute it and/or modify it #
13
+ # under the terms of the GNU General Public License as published by the Free #
14
+ # Software Foundation; either version 3 of the License, or (at your option) #
15
+ # any later version. #
16
+ # #
17
+ # ruby-nuggets is distributed in the hope that it will be useful, but WITHOUT #
18
+ # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or #
19
+ # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for #
20
+ # more details. #
21
+ # #
22
+ # You should have received a copy of the GNU General Public License along #
23
+ # with ruby-nuggets. If not, see <http://www.gnu.org/licenses/>. #
24
+ # #
25
+ ###############################################################################
26
+ #++
27
+
28
+ require 'nuggets/integer/to_binary_s'
29
+
30
+ module Nuggets
31
+ class String
32
+ module XorMixin
33
+
34
+ # call-seq:
35
+ # str ^ other => new_string
36
+ # str.xor(other) => new_string
37
+ #
38
+ # Bitwise EXCLUSIVE OR.
39
+ def xor(other, require_same_length = false)
40
+ format = 'B*'
41
+ binary = [self, other.to_s].map { |s| s.unpack(format).first }
42
+
43
+ length = binary.map { |s| s.length }.inject { |a, b|
44
+ if require_same_length
45
+ a == b ? a : raise(ArgumentError, 'must be of same length')
46
+ else
47
+ [a, b].max
48
+ end
49
+ }
50
+
51
+ [binary.map { |s| s.to_i(2) }.
52
+ inject { |a, b| a ^ b }.
53
+ to_binary_s(length)].pack(format)
54
+ end
55
+
56
+ alias_method :^, :xor
57
+
58
+ end
59
+ end
60
+ end
@@ -4,7 +4,7 @@ module Nuggets
4
4
 
5
5
  MAJOR = 0
6
6
  MINOR = 6
7
- TINY = 1
7
+ TINY = 2
8
8
 
9
9
  class << self
10
10
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-nuggets
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.1
4
+ version: 0.6.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jens Wille
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-07-31 00:00:00 +02:00
12
+ date: 2009-12-29 00:00:00 +01:00
13
13
  default_executable:
14
14
  dependencies: []
15
15
 
@@ -37,6 +37,7 @@ files:
37
37
  - lib/nuggets/numeric/signum.rb
38
38
  - lib/nuggets/array/to_hash.rb
39
39
  - lib/nuggets/array/variance.rb
40
+ - lib/nuggets/array/runiq_mixin.rb
40
41
  - lib/nuggets/array/shuffle.rb
41
42
  - lib/nuggets/array/variance_mixin.rb
42
43
  - lib/nuggets/array/standard_deviation_mixin.rb
@@ -45,6 +46,7 @@ files:
45
46
  - lib/nuggets/array/monotone.rb
46
47
  - lib/nuggets/array/only.rb
47
48
  - lib/nuggets/array/flatten_once.rb
49
+ - lib/nuggets/array/runiq.rb
48
50
  - lib/nuggets/array/standard_deviation.rb
49
51
  - lib/nuggets/array/rand.rb
50
52
  - lib/nuggets/array/combination.rb
@@ -77,6 +79,8 @@ files:
77
79
  - lib/nuggets/string/wc.rb
78
80
  - lib/nuggets/string/sub_with_md.rb
79
81
  - lib/nuggets/string/nsub.rb
82
+ - lib/nuggets/string/xor_mixin.rb
83
+ - lib/nuggets/string/xor.rb
80
84
  - lib/nuggets/string/word_wrap.rb
81
85
  - lib/nuggets/integer/length.rb
82
86
  - lib/nuggets/integer/to_binary_s.rb
@@ -122,12 +126,12 @@ licenses: []
122
126
 
123
127
  post_install_message:
124
128
  rdoc_options:
129
+ - --title
130
+ - ruby-nuggets Application documentation
125
131
  - --main
126
132
  - README
127
133
  - --line-numbers
128
134
  - --inline-source
129
- - --title
130
- - ruby-nuggets Application documentation
131
135
  - --all
132
136
  - --charset
133
137
  - UTF-8