dohutil 0.1.5 → 0.1.6
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/doh/core_ext/bigdecimal.rb +5 -0
- data/lib/doh/core_ext/date.rb +0 -5
- data/lib/doh/core_ext/datewithtime.rb +1 -5
- data/lib/doh/core_ext/inspect.rb +26 -0
- data/lib/doh/core_ext/utc.rb +19 -0
- data/lib/doh/current_date.rb +2 -2
- data/lib/doh/to_display.rb +7 -32
- metadata +17 -7
- data/lib/doh/findup.rb +0 -12
- data/lib/doh/options.rb +0 -108
- data/lib/doh/root.rb +0 -40
- /data/lib/doh/core_ext/{class/force_deep_copy.rb → force_deep_copy.rb} +0 -0
@@ -14,6 +14,11 @@ class BigDecimal
|
|
14
14
|
self
|
15
15
|
end
|
16
16
|
|
17
|
+
alias :_doh_original_to_s :to_s
|
18
|
+
def to_s(format = 'F')
|
19
|
+
_doh_original_to_s(format)
|
20
|
+
end
|
21
|
+
|
17
22
|
def to_dig(digits_after_decimal = 2)
|
18
23
|
raise ArgumentError.new("digits_after_decimal must be > 0") unless digits_after_decimal > 0
|
19
24
|
return '0.' + ('0' * digits_after_decimal) if nan? || infinite?
|
data/lib/doh/core_ext/date.rb
CHANGED
@@ -16,7 +16,7 @@ module MakeTimeLikeDateTime
|
|
16
16
|
end
|
17
17
|
|
18
18
|
def prev_second(n = 1)
|
19
|
-
self
|
19
|
+
self - n
|
20
20
|
end
|
21
21
|
end
|
22
22
|
|
@@ -29,10 +29,6 @@ class DateTime
|
|
29
29
|
seconds.to_f / DOHRUBY_SECONDS_IN_DAY.to_f
|
30
30
|
end
|
31
31
|
|
32
|
-
def inspect
|
33
|
-
strftime('%F %X')
|
34
|
-
end
|
35
|
-
|
36
32
|
def next_second(n = 1)
|
37
33
|
self + (SECONDS_IN_DAY * n)
|
38
34
|
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'date'
|
2
|
+
require 'bigdecimal'
|
3
|
+
|
4
|
+
class Date
|
5
|
+
def inspect
|
6
|
+
"#<Date:#{strftime('%F')}>"
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
class DateTime
|
11
|
+
def inspect
|
12
|
+
"#<DateTime:#{strftime('%F %X %z')}>"
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
class Time
|
17
|
+
def inspect
|
18
|
+
"#<Time:#{strftime('%F %X %z')}>"
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
class BigDecimal
|
23
|
+
def inspect
|
24
|
+
"#<BigDecimal:#{to_s('F')}>"
|
25
|
+
end
|
26
|
+
end
|
data/lib/doh/current_date.rb
CHANGED
@@ -4,12 +4,12 @@ module Doh
|
|
4
4
|
|
5
5
|
@@current_date_objs = []
|
6
6
|
|
7
|
-
def self.current_date(dflt = Date.
|
7
|
+
def self.current_date(dflt = Date.utcday)
|
8
8
|
return dflt if @@current_date_objs.empty?
|
9
9
|
@@current_date_objs.last.to_date
|
10
10
|
end
|
11
11
|
|
12
|
-
def self.current_datetime(dflt = DateTime.
|
12
|
+
def self.current_datetime(dflt = DateTime.utcnow)
|
13
13
|
return dflt if @@current_date_objs.empty?
|
14
14
|
cdo = @@current_date_objs.last
|
15
15
|
return cdo if cdo.respond_to?(:hour)
|
data/lib/doh/to_display.rb
CHANGED
@@ -42,41 +42,16 @@ class BigDecimal
|
|
42
42
|
end
|
43
43
|
end
|
44
44
|
|
45
|
-
class PhoneDisplayString < String
|
46
|
-
def to_display
|
47
|
-
Doh::display_phone(self)
|
48
|
-
end
|
49
|
-
|
50
|
-
def to_s
|
51
|
-
self
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
|
-
class PostalDisplayString < String
|
56
|
-
def to_display
|
57
|
-
Doh::display_postal(self)
|
58
|
-
end
|
59
|
-
|
60
|
-
def to_s
|
61
|
-
self
|
62
|
-
end
|
63
|
-
end
|
64
|
-
|
65
|
-
class SsnDisplayString < String
|
66
|
-
def to_display
|
67
|
-
Doh::display_ssn(self)
|
68
|
-
end
|
69
|
-
|
70
|
-
def to_s
|
71
|
-
self
|
72
|
-
end
|
73
|
-
end
|
74
|
-
|
75
45
|
module Doh
|
76
46
|
|
77
|
-
def self.display_phone(str)
|
47
|
+
def self.display_phone(str, html_format = false)
|
78
48
|
return str unless str.size == 10
|
79
|
-
str[0..2]
|
49
|
+
formatted = "#{str[0..2]}-#{str[3..5]}-#{str[6..9]}"
|
50
|
+
if html_format
|
51
|
+
"<a href='callto:+1#{formatted}'>#{formatted}</a>"
|
52
|
+
else
|
53
|
+
formatted
|
54
|
+
end
|
80
55
|
end
|
81
56
|
|
82
57
|
def self.display_postal(str)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dohutil
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.6
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,8 +10,19 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2012-
|
14
|
-
dependencies:
|
13
|
+
date: 2012-03-01 00:00:00.000000000Z
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: dohroot
|
17
|
+
requirement: &70300039051680 !ruby/object:Gem::Requirement
|
18
|
+
none: false
|
19
|
+
requirements:
|
20
|
+
- - ! '>='
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 0.1.0
|
23
|
+
type: :runtime
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: *70300039051680
|
15
26
|
description: Tiny utilities, packaged together so they don't each have their own gem.
|
16
27
|
email:
|
17
28
|
- devinfo@atpsoft.com
|
@@ -26,19 +37,18 @@ files:
|
|
26
37
|
- lib/doh/class_basename.rb
|
27
38
|
- lib/doh/config.rb
|
28
39
|
- lib/doh/core_ext/bigdecimal.rb
|
29
|
-
- lib/doh/core_ext/class/force_deep_copy.rb
|
30
40
|
- lib/doh/core_ext/date.rb
|
31
41
|
- lib/doh/core_ext/datewithtime.rb
|
32
42
|
- lib/doh/core_ext/dir.rb
|
43
|
+
- lib/doh/core_ext/force_deep_copy.rb
|
33
44
|
- lib/doh/core_ext/hash.rb
|
45
|
+
- lib/doh/core_ext/inspect.rb
|
34
46
|
- lib/doh/core_ext/string.rb
|
47
|
+
- lib/doh/core_ext/utc.rb
|
35
48
|
- lib/doh/current_date.rb
|
36
49
|
- lib/doh/env.rb
|
37
|
-
- lib/doh/findup.rb
|
38
50
|
- lib/doh/http_helper.rb
|
39
51
|
- lib/doh/log/stub.rb
|
40
|
-
- lib/doh/options.rb
|
41
|
-
- lib/doh/root.rb
|
42
52
|
- lib/doh/to_display.rb
|
43
53
|
- test/test_date.rb
|
44
54
|
- test/test_datewithtime.rb
|
data/lib/doh/findup.rb
DELETED
@@ -1,12 +0,0 @@
|
|
1
|
-
module Doh
|
2
|
-
def self.findup(start_directory, filename, max_tries = 20)
|
3
|
-
curr_directory = start_directory
|
4
|
-
max_tries.times do
|
5
|
-
path = File.expand_path(File.join(curr_directory, filename))
|
6
|
-
return path if File.exist?(path)
|
7
|
-
return nil if (path == '/')
|
8
|
-
curr_directory = File.join(curr_directory, '..')
|
9
|
-
end
|
10
|
-
nil
|
11
|
-
end
|
12
|
-
end
|
data/lib/doh/options.rb
DELETED
@@ -1,108 +0,0 @@
|
|
1
|
-
require 'ostruct'
|
2
|
-
require 'optparse'
|
3
|
-
|
4
|
-
module Doh
|
5
|
-
|
6
|
-
class Options
|
7
|
-
# this class is for command line parsing
|
8
|
-
# the hash is of the form: {'variable_name' => option_list}
|
9
|
-
# you can also pass an array of hashes [{'var1' => optlist1}, {'var2' => optlist2}]
|
10
|
-
# if you use an array of hashes, the help will be shown in the order specified (otherwise it's random)
|
11
|
-
|
12
|
-
# option_list is an array, the first element of which is the default value of the option
|
13
|
-
# the others are of the form with examples shown on
|
14
|
-
# http://www.ruby-doc.org/stdlib/libdoc/optparse/rdoc/index.html
|
15
|
-
# returns any non-options parameters via method varargs
|
16
|
-
# set allow_unknown_options to true to allow for filename specification, etc..
|
17
|
-
# if the default value is :required for a field, then if that field isn't
|
18
|
-
# specified, an exception will be raised
|
19
|
-
def initialize(param_definition_hash_or_array, allow_unknown_options = false, explanation_text = '', unknown_options_name = 'file', allow_no_prefix = false)
|
20
|
-
@vals = OpenStruct.new
|
21
|
-
|
22
|
-
@opts = OptionParser.new
|
23
|
-
@opts.banner = "Usage: #{$0} [options]"
|
24
|
-
if explanation_text != ''
|
25
|
-
@opts.separator ""
|
26
|
-
@opts.separator explanation_text
|
27
|
-
end
|
28
|
-
@opts.separator ""
|
29
|
-
@opts.separator "Specific options:"
|
30
|
-
@opts.separator ""
|
31
|
-
|
32
|
-
if param_definition_hash_or_array.class == Array
|
33
|
-
param_definition_array = param_definition_hash_or_array
|
34
|
-
param_definition_hash = param_definition_hash_or_array.inject({}) {|sum, elem| sum.merge(elem)}
|
35
|
-
else
|
36
|
-
param_definition_array = param_definition_hash_or_array.collect {|elem1, elem2| {elem1 => elem2}}
|
37
|
-
param_definition_hash = param_definition_hash_or_array
|
38
|
-
end
|
39
|
-
|
40
|
-
param_definition_array.each do |elem|
|
41
|
-
keyname = elem.to_a[0][1][2]
|
42
|
-
if keyname =~ /^--no-/
|
43
|
-
raise "key name: #{keyname} will not behave as desired if meant to be a boolean, rename it, or pass in allow_no_prefix flag as 5th param"
|
44
|
-
end
|
45
|
-
end
|
46
|
-
|
47
|
-
param_definition_array.each do |elem|
|
48
|
-
key = elem.to_a[0][0]
|
49
|
-
val = elem.to_a[0][1]
|
50
|
-
default = val.shift
|
51
|
-
@vals.send("#{key}=", default)
|
52
|
-
val.last.insert(0, '(required) - ') if val.last.is_a?(String) && default == :required
|
53
|
-
@opts.on(*val) do |optval|
|
54
|
-
@vals.send("#{key}=", optval)
|
55
|
-
end
|
56
|
-
end
|
57
|
-
|
58
|
-
@opts.separator ""
|
59
|
-
@opts.separator "Common options:"
|
60
|
-
@opts.separator ""
|
61
|
-
|
62
|
-
@opts.on("-h", "-?", "--help", "Show this message") do
|
63
|
-
puts @opts
|
64
|
-
exit
|
65
|
-
end
|
66
|
-
|
67
|
-
varargs = []
|
68
|
-
@opts.order(ARGV) do |arg|
|
69
|
-
varargs.push(arg)
|
70
|
-
end
|
71
|
-
@vals.varargs = varargs
|
72
|
-
|
73
|
-
unset_vars = []
|
74
|
-
param_definition_hash.each do |key,val|
|
75
|
-
if @vals.send(key) == :required
|
76
|
-
unset_vars.push(key)
|
77
|
-
end
|
78
|
-
end
|
79
|
-
|
80
|
-
exception = ''
|
81
|
-
exception << "Required options not specified: #{unset_vars.inspect}\n" unless unset_vars.size == 0
|
82
|
-
exception << "Unknown options specified: #{varargs.inspect}\n" unless allow_unknown_options || (varargs.size == 0)
|
83
|
-
exception << "You must specify #{allow_unknown_options} #{unknown_options_name}#{allow_unknown_options > 1 ? 's' : ''}" if allow_unknown_options.class == Fixnum && varargs.size != allow_unknown_options
|
84
|
-
if allow_unknown_options.class == Range
|
85
|
-
if (allow_unknown_options.min == allow_unknown_options.max)
|
86
|
-
if (varargs.size < allow_unknown_options.min)
|
87
|
-
exception << "You must specify at least #{allow_unknown_options.min} #{unknown_options_name}#{allow_unknown_options.min > 1 ? 's' : ''}"
|
88
|
-
end
|
89
|
-
elsif !allow_unknown_options.include?(varargs.size)
|
90
|
-
exception << "You must specify between #{allow_unknown_options.min} and #{allow_unknown_options.max} #{unknown_options_name}s"
|
91
|
-
end
|
92
|
-
end
|
93
|
-
if exception != ''
|
94
|
-
puts @opts
|
95
|
-
raise exception
|
96
|
-
end
|
97
|
-
end
|
98
|
-
|
99
|
-
def method_missing(sym, *args)
|
100
|
-
@vals.send(sym, *args)
|
101
|
-
end
|
102
|
-
|
103
|
-
def to_s
|
104
|
-
@opts.to_s
|
105
|
-
end
|
106
|
-
end
|
107
|
-
|
108
|
-
end
|
data/lib/doh/root.rb
DELETED
@@ -1,40 +0,0 @@
|
|
1
|
-
require 'doh/findup'
|
2
|
-
|
3
|
-
module Doh
|
4
|
-
def self.root
|
5
|
-
@root
|
6
|
-
end
|
7
|
-
|
8
|
-
def self.root=(directory)
|
9
|
-
@root = directory
|
10
|
-
libdir = File.join(@root, 'lib')
|
11
|
-
$LOAD_PATH.push(libdir) if libdir
|
12
|
-
end
|
13
|
-
|
14
|
-
def self.find_root(start_directory, filename = 'dohroot', max_tries = 20)
|
15
|
-
rootfile = Doh::findup(start_directory, filename, max_tries)
|
16
|
-
if rootfile
|
17
|
-
Doh::root = File.dirname(rootfile)
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
def self.find_root_from_file(filepath = nil)
|
22
|
-
Doh::find_root(File.dirname(filepath || caller[0]))
|
23
|
-
end
|
24
|
-
|
25
|
-
def self.find_root_from_path(path)
|
26
|
-
if File.directory?(path)
|
27
|
-
Doh::find_root(path)
|
28
|
-
else
|
29
|
-
Doh::find_root(File.dirname(path))
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
def self.find_root_from_prog
|
34
|
-
Doh::find_root(File.dirname($PROGRAM_NAME))
|
35
|
-
end
|
36
|
-
|
37
|
-
def self.find_root_from_pwd
|
38
|
-
Doh::find_root(Dir.pwd)
|
39
|
-
end
|
40
|
-
end
|
File without changes
|