Class: Rawfeed::Utils

Inherits:
Object
  • Object
show all
Defined in:
lib/rawfeed/utils.rb

Class Method Summary collapse

Class Method Details

.confirm(message) ⇒ Object



36
37
38
39
40
41
42
43
44
# File 'lib/rawfeed/utils.rb', line 36

def self.confirm(message)
  print "#{message} [y/n]: ".blue
  answer = STDIN.gets.chomp.downcase
  until %w[y n].include?(answer)
    print "[!] Please type 'y' or 'n': ".yellow
    answer = STDIN.gets.chomp.downcase
  end
  answer
end

.create_directory(path) ⇒ Object



16
17
18
19
20
21
# File 'lib/rawfeed/utils.rb', line 16

def self.create_directory(path)
  unless File.directory?(path)
    FileUtils.mkdir_p(path)
    puts ":: Folder '#{path}', created!".green
  end
end

.datetime_generator(parameter) ⇒ Object



27
28
29
30
31
32
33
34
# File 'lib/rawfeed/utils.rb', line 27

def self.datetime_generator(parameter)
  begin
    (ENV['date'] ? Time.parse(ENV['date']) : Time.now).strftime(parameter)
  rescue
    puts "[x] Error - date format must be YYYY-MM-DD, please check you typed it correctly!".red
    exit 1
  end
end

.enginer(directory, message, type) ⇒ Object



46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# File 'lib/rawfeed/utils.rb', line 46

def self.enginer(directory, message, type)
  self.create_directory(directory)
  # abort("Rake aborted: #{directory} directory not found.") unless FileTest.directory?(directory)
  begin
    print "#{message}\n> ".blue
    title = STDIN.gets.chomp
  rescue Interrupt
    puts "\n[!] Approached by the user".yellow
    exit!
  end

  slug     = slug_generator(title)
  date     = datetime_generator('%Y-%m-%d')
  datetime = datetime_generator('%Y-%m-%d %R:%S')

  if type == 'page'
    filename = File.join(directory, "#{slug}.#{CONFIG['markdown_extension']}")
  else
    filename = File.join(directory, "#{date}-#{slug}.#{CONFIG['markdown_extension']}")
  end

  if File.exist?(filename)
    answer = confirm("#{filename} already exists. Do you want to overwrite?")
    abort("Action aborted by user!") if answer == 'n'
  end

  [title, date, datetime, filename]
end

.slug_generator(parameter) ⇒ Object



23
24
25
# File 'lib/rawfeed/utils.rb', line 23

def self.slug_generator(parameter)
  parameter.downcase.strip.gsub(' ', '-').gsub(/[^\w-]/, '')
end