Class: PDD::Base

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

Overview

Code base abstraction

Instance Method Summary collapse

Constructor Details

#initialize(opts) ⇒ Base

Ctor.

opts

Options



74
75
76
77
78
79
80
# File 'lib/pdd.rb', line 74

def initialize(opts)
  @opts = opts
  PDD.log.level = Logger::INFO if @opts[:verbose]
  PDD.log.level = Logger::ERROR if @opts[:quiet]
  PDD.log.info "my version is #{PDD::VERSION}"
  PDD.log.info "Ruby version is #{RUBY_VERSION} at #{RUBY_PLATFORM}"
end

Instance Method Details

#xmlObject

Generate XML.



83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
# File 'lib/pdd.rb', line 83

def xml
  dir = @opts[:source] ? @opts[:source] : Dir.pwd
  PDD.log.info "reading #{dir}"
  sources = Sources.new(dir)
  @opts[:exclude].each do |p|
    sources = sources.exclude(p)
    PDD.log.info "excluding #{p}"
  end unless @opts[:exclude].nil?
  sanitize(
    rules(
      Nokogiri::XML::Builder.new do |xml|
        xml << "<?xml-stylesheet type='text/xsl' href='#{xsl}'?>"
        xml.puzzles(attrs) do
          sources.fetch.each do |source|
            source.puzzles.each do |puzzle|
              PDD.log.info "puzzle #{puzzle.props[:id]} " \
                "#{puzzle.props[:estimate]}/#{puzzle.props[:role]}" \
                " at #{puzzle.props[:file]}"
              render puzzle, xml
            end
          end
        end
      end.to_xml
    )
  )
end