Module: DataTools::Conversions
- Defined in:
- lib/data_tools/conversions.rb
Class Method Summary collapse
- .datestr(value) ⇒ Object
-
.difference_in_days(args) ⇒ Object
def self.difference_in_days(start_ts, end_ts1, end_ts2 = nil).
- .first_ou(value) ⇒ Object
- .max_datestr(values) ⇒ Object
- .msad_active_account(value) ⇒ Object
-
.msad_long_timestamp(value) ⇒ Object
MSAD uses INT64 (8 bytes) for lastLogon, lastLogonTimestamp, accountExpires.
- .noop(value) ⇒ Object
- .readable_timestamp(value) ⇒ Object
- .second_ou(value) ⇒ Object
Class Method Details
.datestr(value) ⇒ Object
32 33 34 |
# File 'lib/data_tools/conversions.rb', line 32 def self.datestr(value) value.strftime("%m/%d/%Y") end |
.difference_in_days(args) ⇒ Object
def self.difference_in_days(start_ts, end_ts1, end_ts2 = nil)
41 42 43 44 45 |
# File 'lib/data_tools/conversions.rb', line 41 def self.difference_in_days(args) start_ts, end_ts1, end_ts2 = *args end_ts = end_ts1 || end_ts2 end_ts && start_ts && (end_ts.to_date - start_ts.to_date).to_i end |
.first_ou(value) ⇒ Object
20 21 22 |
# File 'lib/data_tools/conversions.rb', line 20 def self.first_ou(value) (ou = value.split(',').select{|s| s =~ /^OU=/}.first) && ou.split('=').last end |
.max_datestr(values) ⇒ Object
36 37 38 |
# File 'lib/data_tools/conversions.rb', line 36 def self.max_datestr(values) (dt = values.compact.max) && dt.strftime("%m/%d/%Y") end |
.msad_active_account(value) ⇒ Object
28 29 30 |
# File 'lib/data_tools/conversions.rb', line 28 def self.msad_active_account(value) value.to_i & 2 == 0 end |
.msad_long_timestamp(value) ⇒ Object
MSAD uses INT64 (8 bytes) for lastLogon, lastLogonTimestamp, accountExpires
7 8 9 10 11 12 13 14 |
# File 'lib/data_tools/conversions.rb', line 7 def self.(value) case value.to_i when 0, 0x7FFFFFFFFFFFFFFF nil else DateTime.new(1601, 1, 1) + value.to_i/(60.0 * 10000000 * 1440) end end |
.noop(value) ⇒ Object
2 3 4 |
# File 'lib/data_tools/conversions.rb', line 2 def self.noop(value) value end |
.readable_timestamp(value) ⇒ Object
16 17 18 |
# File 'lib/data_tools/conversions.rb', line 16 def self.(value) DateTime.parse(value) end |
.second_ou(value) ⇒ Object
24 25 26 |
# File 'lib/data_tools/conversions.rb', line 24 def self.second_ou(value) (ou = value.split(',').select{|s| s =~ /^OU=/}[1]) && ou.split('=').last end |