Sha256: 3a9a5f050bb8bb11b87502df7acace39c8ebb0369ed10e1828d07b04dbce0504

Contents?: true

Size: 930 Bytes

Versions: 3

Compression:

Stored size: 930 Bytes

Contents

require 'bundler/gem_tasks'
require 'junoser/development'
require 'nokogiri'
require 'pathname'

xsd_path = File.expand_path('../tmp/junos-system.xsd', Pathname.new(__FILE__).realpath)
rule_path = File.expand_path('../tmp/rule.rb', Pathname.new(__FILE__).realpath)
parser_path = File.expand_path('../lib/junoser/parser.rb', Pathname.new(__FILE__).realpath)

def open_files(input, output, &block)
  i = open(input)
  o = open(output, 'w')

  yield i, o

  i.close
  o.close
end


namespace :build do
  desc 'Build an intermediate config hierarchy'
  task(:config) do
    open_files(xsd_path, rule_path) do |input, output|
      Nokogiri::XML(input).root.remove_unused.xpath('/xsd:schema/*').each do |e|
        output.puts e.to_config
      end
    end
  end

  desc 'Build the parser'
  task(:rule) do
    open_files(rule_path, parser_path) do |input, output|
      output.puts Junoser::Ruler.new(input).to_rule
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
junoser-0.1.2 Rakefile
junoser-0.1.1 Rakefile
junoser-0.1.0 Rakefile