class Object
Public Instance Methods
all_steps_to_path(path)
click to toggle source
# File lib/support/helpers.rb, line 58 def all_steps_to_path(path) source = source_dir dest = Pathname.new(path).expand_path paths = [] dest.ascend do |f| break if f == source paths.unshift f.to_s end paths end
dst_active?()
click to toggle source
Helper method for Windows
# File lib/support/helpers.rb, line 175 def dst_active? config = Jekyll.configuration("quiet" => true) ENV["TZ"] = config["timezone"] dst = Time.now.isdst # reset variable to default state on Windows ENV["TZ"] = nil dst end
file_content_from_hash(input_hash)
click to toggle source
# File lib/support/helpers.rb, line 26 def file_content_from_hash(input_hash) matter_hash = input_hash.reject { |k, _v| k == "content" } matter = matter_hash.map do |k, v| "#{k}: #{v}\n" end matter = matter.join.chomp content = \ if !input_hash["input"] || !input_hash["filter"] then input_hash["content"] else "{{ #{input_hash["input"]} | " \ "#{input_hash["filter"]} }}" end Jekyll::Utils.strip_heredoc(<<-EOF) --- #{matter.gsub( %r!\n!, "\n " )} --- #{content} EOF end
file_contents(path)
click to toggle source
# File lib/support/helpers.rb, line 148 def file_contents(path) return Pathname.new(path).read end
jekyll_run_output()
click to toggle source
# File lib/support/helpers.rb, line 73 def jekyll_run_output if Paths.output_file.file? then return Paths.output_file.read end end
jekyll_run_status()
click to toggle source
# File lib/support/helpers.rb, line 81 def jekyll_run_status if Paths.status_file.file? then return Paths.status_file.read end end
location(folder, direction)
click to toggle source
# File lib/support/helpers.rb, line 136 def location(folder, direction) if folder before = folder if direction == "in" after = folder if direction == "under" end [before || ".", after || ".",] end
run_bundle(args)
click to toggle source
# File lib/support/helpers.rb, line 89 def run_bundle(args) run_in_shell("bundle", *args.strip.split(" ")) end
run_in_shell(*args)
click to toggle source
# File lib/support/helpers.rb, line 112 def run_in_shell(*args) p, output = Jekyll::Utils::Exec.run(*args) File.write(Paths.status_file, p.exitstatus) File.open(Paths.output_file, "wb") do |f| f.puts "$ " << args.join(" ") f.puts output f.puts "EXIT STATUS: #{p.exitstatus}" end p end
run_jekyll(args)
click to toggle source
# File lib/support/helpers.rb, line 101 def run_jekyll(args) args = args.strip.split(" ") # Shellwords? # process = run_in_shell("ruby", Paths.jekyll_bin.to_s, *args, "--trace") # NOTE: We MUST execute Jekyll CLI that is from the gem installed # but we need to leave the rest as is. process = run_in_shell("jekyll", *args, "--verbose", "--trace") process.exitstatus.zero? end
run_rubygem(args)
click to toggle source
# File lib/support/helpers.rb, line 95 def run_rubygem(args) run_in_shell("gem", *args.strip.split(" ")) end
seconds_agnostic_datetime(datetime = Time.now)
click to toggle source
# File lib/support/helpers.rb, line 154 def seconds_agnostic_datetime(datetime = Time.now) date, time, zone = datetime.to_s.split(" ") time = seconds_agnostic_time(time) [ Regexp.escape(date), "#{time}:\\d{2}", Regexp.escape(zone), ] \ .join("\\ ") end
seconds_agnostic_time(time)
click to toggle source
# File lib/support/helpers.rb, line 168 def seconds_agnostic_time(time) time = time.strftime("%H:%M:%S") if time.is_a?(Time) hour, minutes, = time.split(":") "#{hour}:#{minutes}" end
slug(title = nil)
click to toggle source
# File lib/support/helpers.rb, line 127 def slug(title = nil) if !title then Time.now.strftime("%s%9N") # nanoseconds since the Epoch else title.downcase.gsub(%r![^\w]!, " ").strip.gsub(%r!\s+!, "-") end end
source_dir(*files)
click to toggle source
# File lib/support/helpers.rb, line 52 def source_dir(*files) return Paths.test_dir(*files) end