lib/tasks/spectifly.rake in spectifly-0.0.1 vs lib/tasks/spectifly.rake in spectifly-0.0.2
- old
+ new
@@ -1,6 +1,22 @@
namespace :spectifly do
- desc 'Do whatever'
- Spectifly::Task.new('whatever') do |sfly|
- sfly.config_path = File.join(Rake.original_dir, 'config', 'spectifly.yml')
+ namespace :xsd do
+ Spectifly::Task.new('generate_from_entities', [:destination_path]) do |spectifly, args|
+ options = File.exist?(spectifly.presenter_path) ? { :presenter_path => spectifly.presenter_path } : {}
+
+ Spectifly::Entity.from_directory(spectifly.entity_path, options).each do |name, entity|
+ File.open(File.join(args[:destination_path], "#{name}.xsd"), 'w') do |f|
+ f.write Spectifly::Xsd::Builder.new(entity).build
+ end
+ end
+ end
+
+ Spectifly::Task.new('generate_extended_types', [:destination_path]) do |spectifly, args|
+ File.open(File.join(args[:destination_path], "extended.xsd"), 'w') do |f|
+ f.write Spectifly::Xsd::Types.build_extended
+ end
+ end
+
+ desc 'Generate all XSDs for the configured entity directory, including extended type definitions'
+ task :generate_all, [:destination_path] => [:generate_from_entities, :generate_extended_types]
end
-end
\ No newline at end of file
+end