Sha256: 800843f619a2c0d267c0926acf2e9aa0d901202fc1ae11852d9907f2176a2dbf
Contents?: true
Size: 1.06 KB
Versions: 1
Compression:
Stored size: 1.06 KB
Contents
module Himekaminize class Task INCOMPLETE_PATTERN = /[-+*]\s\[\s\]\s/ COMPLETE_PATTERN = /[-+*]\s\[[xX]\]\s/ INCOMPLETE_MD = '- [ ]'.freeze COMPLETE_MD = '- [x]'.freeze attr_accessor :name, :status, :sequence COMPLETE_STATUSE = :complete INCOMPLETE_STATUSE = :incomplete STATUSES = %I(#{COMPLETE_STATUSE} #{INCOMPLETE_STATUSE}) def initialize(line, sequence) @sequence = sequence @status, @name, @space = split_name_and_status(line) end def to_s status_str = @status == COMPLETE_STATUSE ? COMPLETE_MD : INCOMPLETE_MD sprintf("%s%s %s", @space, status_str, @name) end def update_status(status) return false unless STATUSES.include?(status) @status = status end private def split_name_and_status(line) /\A(\s)*(#{INCOMPLETE_PATTERN}|#{COMPLETE_PATTERN})(.*)/.match(line) do |m| if m[2] =~ /#{INCOMPLETE_PATTERN}/ return [INCOMPLETE_STATUSE, m[3], m[1]] else return [COMPLETE_STATUSE, m[3], m[1]] end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
himekaminize-0.0.5 | lib/himekaminize/task.rb |