module Publicator

The module provides methods to publish requirements documents as releases and drafts. Publicator store settings in `publicator.creq` yml file

Public Instance Methods

draft() click to toggle source
# File lib/assets/promo/lib/publicator.rb, line 28
def draft
  load
  up_version
  publish "#{output} v#{version} draft #{Time.now.strftime('%Y-%b-%d')}"
end
release() click to toggle source
# File lib/assets/promo/lib/publicator.rb, line 22
def release
  load
  up_verison!
  publish "#{output} v#{version}"
end

Protected Instance Methods

outputs() click to toggle source
# File lib/assets/promo/lib/publicator.rb, line 58
def outputs
  {}.tap {|out|
    format.split(/ /).each {|fmt|
      out[fmt] = self.send("#{fmt}_options")
    }
  }
end
publish(release_title) click to toggle source
# File lib/assets/promo/lib/publicator.rb, line 36
def publish(release_title)
  repo = requirements_repository
  repo = repo.query(query) unless query.empty?
  source = "#{output}.md"
  inside_bin do
    open(source, 'w') {|f|
      f.write "% #{title}\n"
      f.write "  v#{version}\n"
      f.write "  (query: #{query})\n" unless query.empty?
      f.write "% #{author}\n" unless author.empty?
      f.write "% on #{Time.now.strftime('%B %e, %Y')}\n"
      Creq::PubWriter.(repo, f)
    }

    outputs.each {|fmt, opt|
      `pandoc #{options} #{opt} -o "#{release_title}.#{fmt}" "#{source}"`
      puts "'#{Creq::Settings.bin}/#{release_title}.#{fmt}' created."
    }
  end

end
up_verison!() click to toggle source
# File lib/assets/promo/lib/publicator.rb, line 73
def up_verison!
  up_version
  save
end
up_version() click to toggle source
# File lib/assets/promo/lib/publicator.rb, line 66
def up_version
  self.version = /(\d)\.(\d)/.match(version) do |v|
    major, minor = v[1], v[2]
    "#{major}.#{minor.to_i + 1}"
  end
end