Class: Apipie::Extractor::Writer
- Inherits:
-
Object
- Object
- Apipie::Extractor::Writer
- Defined in:
- lib/apipie/extractor/writer.rb
Class Method Summary collapse
- .examples_file ⇒ Object
- .load_recorded_examples ⇒ Object
- .update_action_description(controller, action) ⇒ Object
- .write_recorded_examples(examples) ⇒ Object
Instance Method Summary collapse
-
#initialize(collector) ⇒ Writer
constructor
A new instance of Writer.
- #write_docs ⇒ Object
- #write_examples ⇒ Object
Constructor Details
#initialize(collector) ⇒ Writer
Returns a new instance of Writer.
7 8 9 |
# File 'lib/apipie/extractor/writer.rb', line 7 def initialize(collector) @collector = collector end |
Class Method Details
.examples_file ⇒ Object
55 56 57 |
# File 'lib/apipie/extractor/writer.rb', line 55 def self.examples_file File.join(Rails.root,"doc","apipie_examples.json") end |
.load_recorded_examples ⇒ Object
47 48 49 50 51 52 53 |
# File 'lib/apipie/extractor/writer.rb', line 47 def self.load_recorded_examples examples_file = self.examples_file if File.exists?(examples_file) return load_json_examples end return {} end |
.update_action_description(controller, action) ⇒ Object
29 30 31 32 33 34 35 36 37 |
# File 'lib/apipie/extractor/writer.rb', line 29 def self.update_action_description(controller, action) updater = ActionDescriptionUpdater.new(controller, action) yield updater updater.write! rescue ActionDescriptionUpdater::ControllerNotFound logger.warn("REST_API: Couldn't find controller file for #{controller}") rescue ActionDescriptionUpdater::ActionNotFound logger.warn("REST_API: Couldn't find action #{action} in #{controller}") end |
.write_recorded_examples(examples) ⇒ Object
39 40 41 42 43 44 45 |
# File 'lib/apipie/extractor/writer.rb', line 39 def self.write_recorded_examples(examples) examples_file = self.examples_file FileUtils.mkdir_p(File.dirname(examples_file)) File.open(examples_file, "w") do |f| f << JSON.pretty_generate(OrderedHash[*examples.sort_by(&:first).flatten(1)]) end end |
Instance Method Details
#write_docs ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/apipie/extractor/writer.rb', line 16 def write_docs descriptions = @collector.finalize_descriptions descriptions.each do |_, desc| if desc[:api].empty? logger.warn("REST_API: Couldn't find any path for #{desc_to_s(desc)}") next end self.class.update_action_description(desc[:controller], desc[:action]) do |u| u.update_generated_description desc end end end |
#write_examples ⇒ Object
11 12 13 14 |
# File 'lib/apipie/extractor/writer.rb', line 11 def write_examples merged_examples = merge_old_new_examples self.class.write_recorded_examples(merged_examples) end |