muflax 0.2.6 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4e70421f893de0859ccaa17fa1a9c1494d5886d9
4
- data.tar.gz: 802a0fed3386db1e8a9b1129cbf136c4da9348a1
3
+ metadata.gz: e0d2d620d2f69caa509e922b2c1fdf3309eadc76
4
+ data.tar.gz: 92e5e16239a369ee0b87c441a1b79b723726166f
5
5
  SHA512:
6
- metadata.gz: 7e7457a9c3c6462c4eac1e2137693cede786c9340c4448556c2931abdf864658f4f0296507b464d76c4cd15b53319c1249117edd127ab4ae73c3e0b7351923e6
7
- data.tar.gz: 2a87180a6af908e7a4f397e0065776bb7382864c5e122200d99e50621a25a2d9de239c910188135f243ca44fd71b7f75bf34fb50eea7051d64bd67212813b393
6
+ metadata.gz: 643af95c9dacc821dd77c9e855cbc05d4d19dc29334e8730f693a435519e304638cde19acce924933d6621acffc4b5078c7fcbeed1e083bed7096160777bd431
7
+ data.tar.gz: ef35033211061df3df0fac64d3bc1f9c91aef961e73c1e95dae40e07556584fd0d5cdcf915f902b24e9c02f5e00549bbf71c61a896420364dd3a5048b027b25e
checksums.yaml.gz.sig CHANGED
Binary file
data/Gemfile.lock CHANGED
@@ -1,49 +1,37 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- muflax (0.2.6)
5
- activesupport (~> 5)
6
- awesome_print
7
- debug_inspector
8
- highline
9
- pry
10
- range_math
11
- trollop
4
+ muflax (0.3.0)
5
+ awesome_print (~> 1)
6
+ debug_inspector (~> 0.0)
7
+ highline (~> 1.6)
8
+ pry (~> 0.10)
9
+ range_math (~> 1)
10
+ trollop (~> 2)
12
11
 
13
12
  GEM
14
13
  remote: https://rubygems.org/
15
14
  specs:
16
- activesupport (5.0.0.1)
17
- concurrent-ruby (~> 1.0, >= 1.0.2)
18
- i18n (~> 0.7)
19
- minitest (~> 5.1)
20
- tzinfo (~> 1.1)
21
- awesome_print (1.7.0)
22
- coderay (1.1.1)
23
- concurrent-ruby (1.0.2)
24
- debug_inspector (0.0.2)
25
- highline (1.7.8)
26
- i18n (0.7.0)
15
+ awesome_print (1.8.0)
16
+ coderay (1.1.2)
17
+ debug_inspector (0.0.3)
18
+ highline (1.6.21)
27
19
  method_source (0.8.2)
28
- minitest (5.9.0)
29
20
  pry (0.10.4)
30
21
  coderay (~> 1.1.0)
31
22
  method_source (~> 0.8.1)
32
23
  slop (~> 3.4)
33
- rake (11.2.2)
34
- range_math (0.8.0)
24
+ rake (12.3.0)
25
+ range_math (1.0.1)
35
26
  slop (3.6.0)
36
- thread_safe (0.3.5)
37
27
  trollop (2.1.2)
38
- tzinfo (1.2.2)
39
- thread_safe (~> 0.1)
40
28
 
41
29
  PLATFORMS
42
30
  ruby
43
31
 
44
32
  DEPENDENCIES
45
33
  muflax!
46
- rake
34
+ rake (~> 12)
47
35
 
48
36
  BUNDLED WITH
49
- 1.12.5
37
+ 1.14.1
@@ -0,0 +1,93 @@
1
+ #!/usr/bin/env ruby
2
+ # -*- encoding: utf-8 -*-
3
+ # Copyright Steffi Dorn <mail@muflax.com>, 2017
4
+ # License: GNU APGLv3 (or later) <http://www.gnu.org/copyleft/gpl.html>
5
+
6
+ module Enumerable
7
+ # find shortest element
8
+ def shortest
9
+ self.min_by{|s| s.str_length}
10
+ end
11
+
12
+ # find longest element
13
+ def longest
14
+ self.max_by{|s| s.str_length}
15
+ end
16
+
17
+ def length_of_longest
18
+ self.longest.str_length
19
+ end
20
+
21
+ def length_of_shortest
22
+ self.shortest.str_length
23
+ end
24
+ end
25
+
26
+ class Object
27
+ # consistent string length
28
+ def str_length
29
+ s = self.to_s
30
+ ss = StringScanner.new(s)
31
+ len = s.length
32
+
33
+ len -= ss.matched_size while ss.skip_until(String::ANSIColorRegexp)
34
+
35
+ len
36
+ end
37
+ end
38
+
39
+ class Array
40
+ def align str=" ", alignment: :left
41
+ just_function = case alignment
42
+ when :left ; :ljust
43
+ when :right ; :rjust
44
+ when :center ; :center
45
+ else
46
+ raise "invalid alignment: #{alignment}"
47
+ end
48
+
49
+ # split all lines
50
+ lines = []
51
+ columns = 0
52
+
53
+ self.each do |line|
54
+ line = line.split(str, -1)
55
+ lines << line
56
+ columns = [columns, line.size].max
57
+ end
58
+
59
+ # justify all columns
60
+ lengths = columns.times.map do |column|
61
+ lines.reduce(0){|sum, line| [line[column].str_length, sum].max}
62
+ end
63
+
64
+ lines.map! do |line|
65
+ # align columns
66
+ line.map!.with_index do |elem, column|
67
+ # how much the element is internally longer than it appears
68
+ elem_diff = elem.to_s.length - elem.str_length
69
+
70
+ elem.send(just_function, lengths[column] + elem_diff)
71
+ end
72
+
73
+ # join line back together
74
+ line.join(str)
75
+ end
76
+
77
+ lines
78
+ end
79
+
80
+ def align! str=" ", alignment: :left
81
+ self.replace(self.align(str, alignment: alignment))
82
+ end
83
+ end
84
+
85
+ class String
86
+ def align str=" ", alignment: :left
87
+ self.split("\n").align(str, alignment: alignment).join("\n")
88
+ end
89
+
90
+ def align! str=" ", alignment: :left
91
+ self.replace(self.align(str, aligment: alignment))
92
+ end
93
+ end
data/lib/muflax/array.rb CHANGED
@@ -4,48 +4,6 @@
4
4
  # License: GNU GPL 3 <http://www.gnu.org/copyleft/gpl.html>
5
5
 
6
6
  class Array
7
- def align str=" ", alignment: :left
8
- lines = []
9
- columns = 0
10
-
11
- # split all lines
12
- self.each do |line|
13
- line = line.split(str, -1)
14
- lines << line
15
- columns = [columns, line.size - 1].max
16
- end
17
-
18
- just_function = case alignment
19
- when :left ; :ljust
20
- when :right ; :rjust
21
- when :center ; :center
22
- else
23
- raise "invalid alignment: #{alignment}"
24
- end
25
-
26
- # justify all columns
27
- 0.upto(columns).each do |column|
28
- length = lines.map{|line| line[column]}.length_of_longest
29
-
30
- lines.each do |line|
31
- elem = line[column]
32
- unless elem.nil?
33
- # how much the element is internally longer than it appears
34
- elem_diff = elem.to_s.length - elem.str_length
35
-
36
- line[column] = elem.send(just_function, length + elem_diff)
37
- end
38
- end
39
- end
40
-
41
- # join lines back together
42
- lines.map{|line| line.join(str)}
43
- end
44
-
45
- def align! str=" ", alignment: :left
46
- self.replace(self.align(str, alignment: alignment))
47
- end
48
-
49
7
  def triangle
50
8
  return to_enum(:triangle) unless block_given?
51
9
 
@@ -0,0 +1,35 @@
1
+ #!/usr/bin/env ruby
2
+ # -*- encoding: utf-8 -*-
3
+ # Copyright Steffi Dorn <mail@muflax.com>, 2017
4
+ # License: GNU APGLv3 (or later) <http://www.gnu.org/copyleft/gpl.html>
5
+
6
+ class Object
7
+ def blank?
8
+ respond_to?(:empty?) ? !!empty? : !self
9
+ end
10
+
11
+ def present?
12
+ !blank?
13
+ end
14
+
15
+ def nil_if_blank
16
+ self.blank? ? nil : self
17
+ end
18
+ end
19
+
20
+ class NilClass ; def blank? ; true ; end ; end
21
+ class FalseClass ; def blank? ; true ; end ; end
22
+ class TrueClass ; def blank? ; false ; end ; end
23
+ class Numeric ; def blank? ; false ; end ; end
24
+ class Time ; def blank? ; false ; end ; end
25
+
26
+ class Array ; alias_method :blank?, :empty? ; end
27
+ class Hash ; alias_method :blank?, :empty? ; end
28
+
29
+ class String
30
+ BLANK_RE = /\A[[:space:]]*\z/
31
+
32
+ def blank?
33
+ empty? || BLANK_RE.match?(self)
34
+ end
35
+ end
@@ -0,0 +1,45 @@
1
+ #!/usr/bin/env ruby
2
+ # -*- encoding: utf-8 -*-
3
+ # Copyright Steffi Dorn <mail@muflax.com>, 2017
4
+ # License: GNU APGLv3 (or later) <http://www.gnu.org/copyleft/gpl.html>
5
+
6
+ class Object
7
+ def deep_dup
8
+ duplicable? ? dup : self
9
+ end
10
+ end
11
+
12
+ class Array
13
+ def deep_dup
14
+ map(&:deep_dup)
15
+ end
16
+ end
17
+
18
+ class Hash
19
+ def deep_dup
20
+ hash = dup
21
+ each_pair do |key, value|
22
+ if key.frozen? && ::String === key
23
+ hash[key] = value.deep_dup
24
+ else
25
+ hash.delete(key)
26
+ hash[key.deep_dup] = value.deep_dup
27
+ end
28
+ end
29
+ hash
30
+ end
31
+ end
32
+
33
+ # duplicable?
34
+ require "bigdecimal"
35
+ class Object ; def duplicable? ; true ; end ; end
36
+ class BigDecimal ; def duplicable? ; true ; end ; end
37
+ class Method ; def duplicable? ; false ; end ; end
38
+
39
+ class NilClass ; begin ; nil.dup ; rescue TypeError ; def duplicable? ; false ; end ; end ; end
40
+ class FalseClass ; begin ; false.dup ; rescue TypeError ; def duplicable? ; false ; end ; end ; end
41
+ class TrueClass ; begin ; true.dup ; rescue TypeError ; def duplicable? ; false ; end ; end ; end
42
+ class Symbol ; begin ; :symbol.dup; "symbol_from_string".to_sym.dup ; rescue TypeError ; def duplicable? ; false ; end ; end ; end
43
+ class Numeric ; begin ; 1.dup ; rescue TypeError ; def duplicable? ; false ; end ; end ; end
44
+ class Complex ; begin ; Complex(1).dup ; rescue TypeError ; def duplicable? ; false ; end ; end ; end
45
+ class Rational ; begin ; Rational(1).dup ; rescue TypeError ; def duplicable? ; false ; end ; end ; end
@@ -4,24 +4,6 @@
4
4
  # License: GNU GPL 3 <http://www.gnu.org/copyleft/gpl.html>
5
5
 
6
6
  module Enumerable
7
- # find shortest element
8
- def shortest
9
- self.min_by{|s| s.str_length}
10
- end
11
-
12
- # find longest element
13
- def longest
14
- self.max_by{|s| s.str_length}
15
- end
16
-
17
- def length_of_longest
18
- self.longest.str_length
19
- end
20
-
21
- def length_of_shortest
22
- self.shortest.str_length
23
- end
24
-
25
7
  def average
26
8
  self.sum.to_f / self.size.to_f
27
9
  end
@@ -65,3 +47,11 @@ module Enumerable
65
47
  self.histogram(&block).sort_by(&:second).to_h
66
48
  end
67
49
  end
50
+
51
+ class Object
52
+ def in? other
53
+ other.include?(self)
54
+ rescue NoMethodError
55
+ raise ArgumentError.new("The parameter passed to #in? must respond to #include?")
56
+ end
57
+ end
data/lib/muflax/hash.rb CHANGED
@@ -6,9 +6,29 @@
6
6
  # simple auto-vivifying hash
7
7
  # TODO support nested hashes
8
8
  def vivaHash default=[]
9
- hash = Hash.new do |h, k|
10
- h[k] = default.duplicable? ? default.dup : default
11
- end
9
+ hash = if default.duplicable? ; Hash.new{|h, k| h[k] = default.dup}
10
+ else ; Hash.new{|h, k| h[k] = default}
11
+ end
12
12
 
13
13
  hash
14
14
  end
15
+
16
+ # missing methods
17
+ class Hash
18
+ def transform_keys
19
+ return enum_for(:transform_keys) { size } unless block_given?
20
+ result = {}
21
+ each_key do |key|
22
+ result[yield(key)] = self[key]
23
+ end
24
+ result
25
+ end unless method_defined? :transform_keys
26
+
27
+ def transform_keys!
28
+ return enum_for(:transform_keys!) { size } unless block_given?
29
+ keys.each do |key|
30
+ self[yield(key)] = delete(key)
31
+ end
32
+ self
33
+ end unless method_defined? :transform_keys!
34
+ end
data/lib/muflax/num.rb ADDED
@@ -0,0 +1,18 @@
1
+ #!/usr/bin/env ruby
2
+ # -*- encoding: utf-8 -*-
3
+ # Copyright Steffi Dorn <mail@muflax.com>, 2017
4
+ # License: GNU APGLv3 (or later) <http://www.gnu.org/copyleft/gpl.html>
5
+
6
+ class Numeric
7
+ def round_into num
8
+ ((self / num) / num + 1) * num
9
+ end
10
+
11
+ def round_to num
12
+ (self / num.to_f).round * num
13
+ end
14
+
15
+ def multiple_of?(number)
16
+ number != 0 ? self % number == 0 : zero?
17
+ end
18
+ end
@@ -47,13 +47,4 @@ class Object
47
47
  self.respond_to? attr and other.respond_to? attr and self.send(attr) == other.send(attr)
48
48
  end
49
49
  end
50
-
51
- # consistent string length
52
- def str_length
53
- HighLine.uncolor(self.to_s).length
54
- end
55
-
56
- def nil_if_blank
57
- self.blank? ? nil : self
58
- end
59
50
  end
data/lib/muflax/string.rb CHANGED
@@ -4,16 +4,8 @@
4
4
  # License: GNU GPL 3 <http://www.gnu.org/copyleft/gpl.html>
5
5
 
6
6
  class String
7
- alias :starts_with? :start_with?
8
- alias :ends_with? :end_with?
9
-
10
- def align str=" ", alignment: :left
11
- self.split("\n").align(str, alignment: alignment).join("\n")
12
- end
13
-
14
- def align! str=" ", alignment: :left
15
- self.replace(self.align(str, aligment: alignment))
16
- end
7
+ alias :starts_with? :start_with?
8
+ alias :ends_with? :end_with?
17
9
 
18
10
  def whackuum str=/\s+/
19
11
  self.split(str).map(&:strip)
@@ -46,4 +38,28 @@ class String
46
38
 
47
39
  out
48
40
  end
41
+
42
+ def first limit=1
43
+ if limit == 0 ; ""
44
+ elsif limit >= size ; dup
45
+ else ; self[0..(limit - 1)]
46
+ end
47
+ end
48
+
49
+ def last limit=1
50
+ if limit == 0 ; ""
51
+ elsif limit >= size ; dup
52
+ else ; self[(-limit)..-1]
53
+ end
54
+ end
55
+
56
+ def indent! amount, indent_string = nil, indent_empty_lines = false
57
+ indent_string = indent_string || self[/^[ \t]/] || " "
58
+ re = indent_empty_lines ? /^/ : /^(?!$)/
59
+ gsub!(re, indent_string * amount)
60
+ end
61
+
62
+ def indent amount, indent_string = nil, indent_empty_lines = false
63
+ dup.tap { |_| _.indent!(amount, indent_string, indent_empty_lines) }
64
+ end
49
65
  end
@@ -0,0 +1,27 @@
1
+ #!/usr/bin/env ruby
2
+ # -*- encoding: utf-8 -*-
3
+ # Copyright Steffi Dorn <mail@muflax.com>, 2017
4
+ # License: GNU APGLv3 (or later) <http://www.gnu.org/copyleft/gpl.html>
5
+
6
+ class Numeric
7
+ def milliseconds ; self.seconds / 1000.0 ; end
8
+ def seconds ; self ; end
9
+ def minutes ; self.seconds * 60 ; end
10
+ def hours ; self.minutes * 60 ; end
11
+ def days ; self.hours * 24 ; end
12
+ def weeks ; self.days * 7 ; end
13
+ def fortnights ; self.weeks * 2 ; end
14
+ def months ; self.days * 30 ; end
15
+ def years ; self.days * 365 ; end
16
+
17
+ # singular usage
18
+ alias :millisecond :milliseconds
19
+ alias :second :seconds
20
+ alias :minute :minutes
21
+ alias :hour :hours
22
+ alias :day :days
23
+ alias :week :weeks
24
+ alias :fortnight :fortnights
25
+ alias :month :months
26
+ alias :year :years
27
+ end
data/lib/muflax.rb CHANGED
@@ -7,6 +7,7 @@
7
7
  require "csv"
8
8
  require "date"
9
9
  require "fileutils"
10
+ require "json"
10
11
  require "set"
11
12
  require "yaml"
12
13
  require "zlib"
@@ -17,13 +18,6 @@ require "highline/import"
17
18
  require "range_math"
18
19
  require "trollop"
19
20
 
20
- # rails
21
- require "active_support"
22
- require "active_support/all"
23
-
24
- # avoid rails deprecation warning
25
- I18n.enforce_available_locales = false
26
-
27
21
  def require_local_libs path, location=__FILE__
28
22
  Dir["#{File.join(File.dirname(location), path)}/*.rb"].each do |lib|
29
23
  require lib
data/muflax.gemspec CHANGED
@@ -1,12 +1,12 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "muflax"
3
- s.version = "0.2.6"
3
+ s.version = "0.3.0"
4
4
 
5
5
  s.authors = ["muflax"]
6
6
  s.summary = "muflax standard library"
7
7
  s.description = "collection of stuff muflax always uses in scripts"
8
8
  s.email = "mail@muflax.com"
9
- s.license = "GPL-3.0"
9
+ s.license = "AGPL-3.0+"
10
10
  s.extra_rdoc_files = [
11
11
  "README"
12
12
  ]
@@ -14,13 +14,12 @@ Gem::Specification.new do |s|
14
14
  s.homepage = "http://github.com/muflax/ruby-muflax"
15
15
  s.require_paths = ["lib"]
16
16
 
17
- s.add_dependency "activesupport", "~> 5"
18
- s.add_dependency "awesome_print"
19
- s.add_dependency "debug_inspector"
20
- s.add_dependency "highline"
21
- s.add_dependency "pry"
22
- s.add_dependency "range_math"
23
- s.add_dependency "trollop"
17
+ s.add_dependency "awesome_print", "~> 1"
18
+ s.add_dependency "debug_inspector", "~> 0.0"
19
+ s.add_dependency "highline", "~> 1.6"
20
+ s.add_dependency "pry", "~> 0.10"
21
+ s.add_dependency "range_math", "~> 1"
22
+ s.add_dependency "trollop", "~> 2"
24
23
 
25
- s.add_development_dependency "rake"
24
+ s.add_development_dependency "rake", "~> 12"
26
25
  end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: muflax
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.6
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - muflax
@@ -28,120 +28,106 @@ cert_chain:
28
28
  9xjevPGDZ+8y8wc8/mXBPK1pTaBh2oi8947HaTq8EadxezFs2Je+oSnMbygfo/a7
29
29
  0rbAHpJPtzql3a4+gjK54qkJUWSUjWuLMHFIHhMt1laowNJUio6ASGx8tfzgLLnZ
30
30
  -----END CERTIFICATE-----
31
- date: 2017-07-27 00:00:00.000000000 Z
31
+ date: 2017-11-22 00:00:00.000000000 Z
32
32
  dependencies:
33
33
  - !ruby/object:Gem::Dependency
34
- name: activesupport
34
+ name: awesome_print
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: '5'
39
+ version: '1'
40
40
  type: :runtime
41
41
  prerelease: false
42
42
  version_requirements: !ruby/object:Gem::Requirement
43
43
  requirements:
44
44
  - - "~>"
45
45
  - !ruby/object:Gem::Version
46
- version: '5'
47
- - !ruby/object:Gem::Dependency
48
- name: awesome_print
49
- requirement: !ruby/object:Gem::Requirement
50
- requirements:
51
- - - ">="
52
- - !ruby/object:Gem::Version
53
- version: '0'
54
- type: :runtime
55
- prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
57
- requirements:
58
- - - ">="
59
- - !ruby/object:Gem::Version
60
- version: '0'
46
+ version: '1'
61
47
  - !ruby/object:Gem::Dependency
62
48
  name: debug_inspector
63
49
  requirement: !ruby/object:Gem::Requirement
64
50
  requirements:
65
- - - ">="
51
+ - - "~>"
66
52
  - !ruby/object:Gem::Version
67
- version: '0'
53
+ version: '0.0'
68
54
  type: :runtime
69
55
  prerelease: false
70
56
  version_requirements: !ruby/object:Gem::Requirement
71
57
  requirements:
72
- - - ">="
58
+ - - "~>"
73
59
  - !ruby/object:Gem::Version
74
- version: '0'
60
+ version: '0.0'
75
61
  - !ruby/object:Gem::Dependency
76
62
  name: highline
77
63
  requirement: !ruby/object:Gem::Requirement
78
64
  requirements:
79
- - - ">="
65
+ - - "~>"
80
66
  - !ruby/object:Gem::Version
81
- version: '0'
67
+ version: '1.6'
82
68
  type: :runtime
83
69
  prerelease: false
84
70
  version_requirements: !ruby/object:Gem::Requirement
85
71
  requirements:
86
- - - ">="
72
+ - - "~>"
87
73
  - !ruby/object:Gem::Version
88
- version: '0'
74
+ version: '1.6'
89
75
  - !ruby/object:Gem::Dependency
90
76
  name: pry
91
77
  requirement: !ruby/object:Gem::Requirement
92
78
  requirements:
93
- - - ">="
79
+ - - "~>"
94
80
  - !ruby/object:Gem::Version
95
- version: '0'
81
+ version: '0.10'
96
82
  type: :runtime
97
83
  prerelease: false
98
84
  version_requirements: !ruby/object:Gem::Requirement
99
85
  requirements:
100
- - - ">="
86
+ - - "~>"
101
87
  - !ruby/object:Gem::Version
102
- version: '0'
88
+ version: '0.10'
103
89
  - !ruby/object:Gem::Dependency
104
90
  name: range_math
105
91
  requirement: !ruby/object:Gem::Requirement
106
92
  requirements:
107
- - - ">="
93
+ - - "~>"
108
94
  - !ruby/object:Gem::Version
109
- version: '0'
95
+ version: '1'
110
96
  type: :runtime
111
97
  prerelease: false
112
98
  version_requirements: !ruby/object:Gem::Requirement
113
99
  requirements:
114
- - - ">="
100
+ - - "~>"
115
101
  - !ruby/object:Gem::Version
116
- version: '0'
102
+ version: '1'
117
103
  - !ruby/object:Gem::Dependency
118
104
  name: trollop
119
105
  requirement: !ruby/object:Gem::Requirement
120
106
  requirements:
121
- - - ">="
107
+ - - "~>"
122
108
  - !ruby/object:Gem::Version
123
- version: '0'
109
+ version: '2'
124
110
  type: :runtime
125
111
  prerelease: false
126
112
  version_requirements: !ruby/object:Gem::Requirement
127
113
  requirements:
128
- - - ">="
114
+ - - "~>"
129
115
  - !ruby/object:Gem::Version
130
- version: '0'
116
+ version: '2'
131
117
  - !ruby/object:Gem::Dependency
132
118
  name: rake
133
119
  requirement: !ruby/object:Gem::Requirement
134
120
  requirements:
135
- - - ">="
121
+ - - "~>"
136
122
  - !ruby/object:Gem::Version
137
- version: '0'
123
+ version: '12'
138
124
  type: :development
139
125
  prerelease: false
140
126
  version_requirements: !ruby/object:Gem::Requirement
141
127
  requirements:
142
- - - ">="
128
+ - - "~>"
143
129
  - !ruby/object:Gem::Version
144
- version: '0'
130
+ version: '12'
145
131
  description: collection of stuff muflax always uses in scripts
146
132
  email: mail@muflax.com
147
133
  executables: []
@@ -156,24 +142,28 @@ files:
156
142
  - README
157
143
  - Rakefile
158
144
  - lib/muflax.rb
145
+ - lib/muflax/align.rb
159
146
  - lib/muflax/array.rb
147
+ - lib/muflax/blank.rb
160
148
  - lib/muflax/debug.rb
149
+ - lib/muflax/deep_dup.rb
161
150
  - lib/muflax/dir.rb
162
151
  - lib/muflax/enumerable.rb
163
152
  - lib/muflax/file.rb
164
153
  - lib/muflax/hash.rb
165
154
  - lib/muflax/kernel.rb
166
155
  - lib/muflax/library.rb
156
+ - lib/muflax/num.rb
167
157
  - lib/muflax/objects.rb
168
158
  - lib/muflax/panes.rb
169
159
  - lib/muflax/regex.rb
170
160
  - lib/muflax/string.rb
171
161
  - lib/muflax/table.rb
172
- - lib/muflax/value.rb
162
+ - lib/muflax/time.rb
173
163
  - muflax.gemspec
174
164
  homepage: http://github.com/muflax/ruby-muflax
175
165
  licenses:
176
- - GPL-3.0
166
+ - AGPL-3.0+
177
167
  metadata: {}
178
168
  post_install_message:
179
169
  rdoc_options: []
@@ -191,7 +181,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
191
181
  version: '0'
192
182
  requirements: []
193
183
  rubyforge_project:
194
- rubygems_version: 2.6.12
184
+ rubygems_version: 2.6.14
195
185
  signing_key:
196
186
  specification_version: 4
197
187
  summary: muflax standard library
metadata.gz.sig CHANGED
Binary file
data/lib/muflax/value.rb DELETED
@@ -1,40 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # -*- encoding: utf-8 -*-
3
- # Copyright Steffi Dorn <mail@muflax.com>, 2016
4
- # License: GNU GPLv3 (or later) <http://www.gnu.org/copyleft/gpl.html>
5
-
6
- class Value
7
- def ==(other)
8
- self.class == other.class && differences_with(other).empty?
9
- end
10
- alias :eql? :==
11
-
12
- def inspect
13
- "#<#{self.class.name} #{to_h}>"
14
- end
15
-
16
- def hash
17
- to_a.hash
18
- end
19
-
20
- def to_h
21
- Hash[to_a]
22
- end
23
-
24
- def recursive_to_h
25
- Hash[to_a.map{|k, v| [k, Value.coerce_to_h(v)]}]
26
- end
27
-
28
- def to_a
29
- self.class.attributes.map {|attr| [attr, send(attr)] }
30
- end
31
-
32
- def self.coerce_to_h(v)
33
- case
34
- when v.is_a?(Hash) ; Hash[v.map{|hk, hv| [hk, coerce_to_h(hv)]}]
35
- when v.respond_to?(:map) ; v.map{|x| coerce_to_h(x)}
36
- when v && v.respond_to?(:to_h) ; v.to_h
37
- else ; v
38
- end
39
- end
40
- end