Class: HerokuAPIStub::Generator
- Inherits:
-
Object
- Object
- HerokuAPIStub::Generator
- Defined in:
- lib/heroku_api_stub/generator.rb
Instance Method Summary collapse
-
#initialize(doc = nil) ⇒ Generator
constructor
A new instance of Generator.
- #run ⇒ Object
Constructor Details
#initialize(doc = nil) ⇒ Generator
Returns a new instance of Generator.
3 4 5 |
# File 'lib/heroku_api_stub/generator.rb', line 3 def initialize(doc=nil) @doc = doc || read_default end |
Instance Method Details
#run ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/heroku_api_stub/generator.rb', line 7 def run @app = Sinatra.new(ServiceStub) @doc["resources"].each do |_, resource| example = build_example(resource["attributes"]) resource["actions"].each do |name, action| method = action["method"] path = action["path"] status = action["statuses"][0] required_params, optional_params = build_param_logic(action) # "{app}" to ":app" path.gsub!(/{([a-z_]*)}/, ':\1') #puts "method=#{method} path=#{path}" @app.send(method.downcase, path) do require_params!(required_params) if required_params validate_params!(optional_params) if optional_params if name == "List" [status, MultiJson.encode([example], pretty: true)] else [status, MultiJson.encode(example, pretty: true)] end end end end @app end |