class Furikake::Report

Public Class Methods

new(cli, params = nil) click to toggle source
# File lib/furikake/report.rb, line 7
def initialize(cli, params = nil)
  $stdout.sync = true
  @logger = Logger.new($stdout)
  @cli = cli
  @params = @cli ? read_furikake_yaml : params
  raise ArgumentError, 'パラメータが設定されていません.' if @params.nil?
end

Public Instance Methods

publish() click to toggle source
# File lib/furikake/report.rb, line 23
def publish
  @params['backlog']['projects'].each do |p|
    header = insert_published_by(p['header'])
    footer = p['footer']
    document = generate(header, footer)
    p['wiki_contents'] = document
    param = check_api_key(p)
    Furikake::Reporters::Backlog.new(param).publish
    @logger.info("#{param['space_id']} の #{param['wiki_id']} に情報を投稿しました.")
  end
end
show() click to toggle source
# File lib/furikake/report.rb, line 15
def show
  @params['backlog']['projects'].each do |p|
    header = insert_published_by(p['header'])
    footer = p['footer']
    puts generate(header, footer)
  end
end

Private Instance Methods

check_api_key(param) click to toggle source
# File lib/furikake/report.rb, line 47
def check_api_key(param)
  if !param.has_key?('api_key') or param['api_key'].nil?
    if !ENV['BACKLOG_API_KEY'].nil? or !ENV['BACKLOG_API_KEY'] == ''
      param['api_key'] = ENV['BACKLOG_API_KEY'] 
      return param
    end
    raise 'API キーを読み込むことが出来ませんでした.'
  end
  param
end
generate(header, footer) click to toggle source
# File lib/furikake/report.rb, line 37
    def generate(header, footer)
      resource = Furikake::Resource.generate(@cli, @params['resources'])
      documents = <<"EOS"
#{header}
#{resource}
#{footer}
EOS
      documents
    end
insert_published_by(header) click to toggle source
# File lib/furikake/report.rb, line 58
def insert_published_by(header)
  headers = header.split("\n")
  headers.insert(1, published_by)
  headers.insert(2, "\n")
  headers.join("\n")
end
published_by() click to toggle source
# File lib/furikake/report.rb, line 65
def published_by
  "*Published #{Time.now} by [furikake](https://github.com/inokappa/furikake)*"
end