- a lot of refactoring and bug fixes
- removed Celluloid in favor of Concurrent-Ruby for better performance
Simple batch processor that takes 2 xml files as input and generates html files with information from the xml elements and uses celluloid to generate files in asyncronous way
-
taxonomy.xml holds the information about how elements are related to each other.
-
destinations.xml holds the actual text content for each element.
Each generated web page has:
-
Element text content.
-
Navigation that allows the user to browse to elements that are higher in the taxonomy
-
Navigation that allows the user to browse to destinations that are lower in the taxonomy
- Ruby 1.9.x or Ruby 2.x.x
- ActiveSuport >= 4.2.0
- concurrent-ruby >= 1.0
- concurrent-ruby-edge >= 0.2
- nokogiri >= 1.6.7
- slop >= 4.2.1
- rubytree >= 0.9.6
- tilt >= 2.0
Rails >3.0 only. MRI 1.9.x, 2.x
Add the following to your Gemfile :
gem "tax_generator"
And use it like this in your code:
TaxGenerator::Application.new.run(options)
or like this:
processor = TaxGenerator::Processor.new(options)
processor.work
where options should be a hash that can contain this keys:
- input_dir
- Represents where the taxonomy and the destinations xml files are located ( Default is './data/input')
- output_dir
- Represents where the newly created html files will be located ( Default is './data/output')
- taxonomy_filename
- Represents the taxonomy file name ( Default is 'taxonomy.xml')
- destinations_filename
- Represents the destinations xml file name ( Default is 'destinations.xml')
This can also be run from command line using following command:
gem install tax_generator
tax_generator -i INPUT_DIR -o OUTPUT_DIR -t TAXONOMY_FILENAME -d DESTINATIONS_FILENAME
-
-i or --input_dir
- Represents where the taxonomy and the destinations xml files are located ( Default is './data/input')
-
-o or --output_dir
- Represents where the newly created html files will be located ( Default is './data/output')
-
-t or --taxonomy_filename
- Represents the taxonomy file name ( Default is 'taxonomy.xml')
-
-d or --destinations_filename
- Represents the destinations xml file name ( Default is 'destinations.xml')
To test, do the following:
- cd to the gem root.
- bundle install
- bundle exec rake
Please log all feedback/issues via Github Issues. Thanks.
- Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet.
- Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it.
- Fork the project.
- Start a feature/bugfix branch.
- Commit and push until you are happy with your contribution.
- Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.
- Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.
- You can read more details about contributing in the Contributing document
== Copyright
Copyright (c) 2015 bogdanRada. See LICENSE.txt for further details.