class Defoker::Core

Defoker Core

Public Class Methods

days(date, count: 3, additional: '') click to toggle source

Get days folder name list

@param [String] date yyyymmdd format string @param [String] additional additional name @return [String] yesterday folder name

# File lib/defoker_core.rb, line 72
def self.days(date, count: 3, additional: '')
  date = Date.new(date[0..3].to_i, date[4..5].to_i, date[6..7].to_i)
  DateBaseName.to_yyyymmdd_list(date, count: count, additional: additional)
end
init() click to toggle source

Generate Defokerfile template

# File lib/defoker_core.rb, line 39
def self.init
  File.open(DEFOKERFILE_PATH, 'w:utf-8') { |f|f.puts DEFOKERFILE_TEMPLATE }
end
months(month, count: 3, additional: '') click to toggle source

Get months folder name list

@param [String] month yyyymmdd format string @param [String] additional additional name @return [String] yesterday folder name

# File lib/defoker_core.rb, line 106
def self.months(month, count: 3, additional: '')
  month = Date.new(month[0..3].to_i, month[4..5].to_i)
  DateBaseName.to_yyyymm_list(month, count: count, additional: additional)
end
mv_month() click to toggle source

Move YYYYMMDD_somename format folder to YYYYMM folder.

# File lib/defoker_core.rb, line 160
def self.mv_month
  Dir.glob('*/').each do |dir|
    next unless dir =~ %r(^[0-9]{8}(_.*)*/$)
    month_dir = dir[0, 6]
    FileUtils.mkdir_p(month_dir) unless Dir.exist?(month_dir)
    day_dir = dir[6..-1]
    FileUtils.mv(dir, File.join(month_dir, day_dir))
  end
end
mv_year() click to toggle source

Move YYYYMM_somename format folder to YYYY folder.

# File lib/defoker_core.rb, line 172
def self.mv_year
  Dir.glob('*/').each do |dir|
    next unless dir =~ %r(^[0-9]{6}(_.*)*/$)
    year_dir = dir[0, 4]
    FileUtils.mkdir_p(year_dir) unless Dir.exist?(year_dir)
    month_dir = dir[4..-1]
    FileUtils.mv(dir, File.join(year_dir, month_dir))
  end
end
next_month(additional: '') click to toggle source

Get next month folder name

@param [String] additional additional name @return [String] next month folder name

# File lib/defoker_core.rb, line 89
def self.next_month(additional: '')
  DateBaseName.to_yyyymm(Date.today >> 1, additional: additional)
end
next_year(additional: '') click to toggle source

Get next year folder name

@param [String] additional additional name @return [String] next year folder name

# File lib/defoker_core.rb, line 123
def self.next_year(additional: '')
  DateBaseName.to_yyyy(Date.today >> 12, additional: additional)
end
previous_month(additional: '') click to toggle source

Get previous month folder name

@param [String] additional additional name @return [String] previous month folder name

# File lib/defoker_core.rb, line 97
def self.previous_month(additional: '')
  DateBaseName.to_yyyymm(Date.today << 1, additional: additional)
end
previous_year(additional: '') click to toggle source

Get previous year folder name

@param [String] additional additional name @return [String] previous year folder name

# File lib/defoker_core.rb, line 131
def self.previous_year(additional: '')
  DateBaseName.to_yyyy(Date.today << 12, additional: additional)
end
rule(additional: '') click to toggle source

Create folder by Defokerfile's rule.

@param [String] additional additional name @return [String] folder name

# File lib/defoker_core.rb, line 149
def self.rule(additional: '')
  dsl = read_dsl
  base = dsl.defoker.base
  callback = dsl.defoker.callback
  adds = [base, additional].reject(&:empty?)
  dir = send(dsl.defoker.type, additional: adds.join('_'))
  [dir, callback]
end
this_month(additional: '') click to toggle source

Get this month folder name

@param [String] additional additional name @return [String] this month folder name

# File lib/defoker_core.rb, line 81
def self.this_month(additional: '')
  DateBaseName.to_yyyymm(Date.today, additional: additional)
end
this_year(additional: '') click to toggle source

Get this year folder name

@param [String] additional additional name @return [String] this year folder name

# File lib/defoker_core.rb, line 115
def self.this_year(additional: '')
  DateBaseName.to_yyyy(Date.today, additional: additional)
end
today(additional: '') click to toggle source

Get today folder name

@param [String] additional additional name @return [String] today folder name

# File lib/defoker_core.rb, line 47
def self.today(additional: '')
  DateBaseName.to_yyyymmdd(Date.today, additional: additional)
end
tomorrow(additional: '') click to toggle source

Get tomorrow folder name

@param [String] additional additional name @return [String] tomorrow folder name

# File lib/defoker_core.rb, line 55
def self.tomorrow(additional: '')
  DateBaseName.to_yyyymmdd(Date.today + 1, additional: additional)
end
years(year, count: 3, additional: '') click to toggle source

Get years folder name list

@param [String] year yyyymmdd format string @param [String] additional additional name @return [String] yesterday folder name

# File lib/defoker_core.rb, line 140
def self.years(year, count: 3, additional: '')
  year = Date.new(year[0..3].to_i)
  DateBaseName.to_yyyy_list(year, count: count, additional: additional)
end
yesterday(additional: '') click to toggle source

Get yesterday folder name

@param [String] additional additional name @return [String] yesterday folder name

# File lib/defoker_core.rb, line 63
def self.yesterday(additional: '')
  DateBaseName.to_yyyymmdd(Date.today - 1, additional: additional)
end

Private Class Methods

read_dsl() click to toggle source
# File lib/defoker_core.rb, line 182
def self.read_dsl
  dsl = Defoker::Dsl.new
  unless File.exist?(DEFOKERFILE_PATH)
    fail DslNotExistError, "#{DEFOKERFILE_PATH} not exist"
  end
  src = File.open(DEFOKERFILE_PATH, 'r:utf-8') { |f|f.read }
  dsl.instance_eval(src)
  dsl
end