Module: GitStatistics::Utilities
- Defined in:
- lib/git_statistics/utilities.rb
Defined Under Namespace
Classes: OperatingSystem
Constant Summary collapse
- COMMANDS =
{ windows: -> { raise '`stat` is not supported on Windows' }, mac: -> { '-f %m' } }
Class Method Summary collapse
- .get_modified_time(file) ⇒ Object
- .max_length_in_list(list, min_length = nil) ⇒ Object
- .number_of_matching_files(directory, pattern) ⇒ Object
- .os ⇒ Object
- .time_at(cmd) ⇒ Object
Class Method Details
.get_modified_time(file) ⇒ Object
18 19 20 21 |
# File 'lib/git_statistics/utilities.rb', line 18 def self.get_modified_time(file) flags = COMMANDS[os].call time_at("stat #{flags} #{file}") end |
.max_length_in_list(list, min_length = nil) ⇒ Object
5 6 7 8 9 10 |
# File 'lib/git_statistics/utilities.rb', line 5 def self.max_length_in_list(list, min_length = nil) list ||= [] min_length = min_length.to_i list_max = list.map { |k, _| k.length }.max || 0 list_max >= min_length ? list_max : min_length end |
.number_of_matching_files(directory, pattern) ⇒ Object
45 46 47 48 49 50 |
# File 'lib/git_statistics/utilities.rb', line 45 def self.number_of_matching_files(directory, pattern) Dir.entries(directory).grep(pattern).size rescue SystemCallError Log.error "No such directory #{File.(directory)}" 0 end |
.os ⇒ Object
41 42 43 |
# File 'lib/git_statistics/utilities.rb', line 41 def self.os OperatingSystem.determine(RbConfig::CONFIG['host_os']) end |
.time_at(cmd) ⇒ Object
37 38 39 |
# File 'lib/git_statistics/utilities.rb', line 37 def self.time_at(cmd) Time.at(`#{cmd}`.to_i) end |