Class: RamlParser::SnippetGenerator
- Inherits:
-
Object
- Object
- RamlParser::SnippetGenerator
- Defined in:
- lib/raml_parser/snippet_generator.rb
Instance Attribute Summary collapse
-
#raml ⇒ Object
Returns the value of attribute raml.
Instance Method Summary collapse
- #curl(resource, method_name) ⇒ Object
-
#initialize(raml) ⇒ SnippetGenerator
constructor
A new instance of SnippetGenerator.
- #javascript_vanilla(resource, method_name) ⇒ Object
- #ruby(resource, method_name) ⇒ Object
Constructor Details
#initialize(raml) ⇒ SnippetGenerator
Returns a new instance of SnippetGenerator.
5 6 7 |
# File 'lib/raml_parser/snippet_generator.rb', line 5 def initialize(raml) @raml = raml end |
Instance Attribute Details
#raml ⇒ Object
Returns the value of attribute raml.
3 4 5 |
# File 'lib/raml_parser/snippet_generator.rb', line 3 def raml @raml end |
Instance Method Details
#curl(resource, method_name) ⇒ Object
9 10 11 12 13 14 15 16 17 18 |
# File 'lib/raml_parser/snippet_generator.rb', line 9 def curl(resource, method_name) method = resource.methods[method_name] curl_method = "-X#{method.method.upcase}" curl_content_type = map_nonempty(method.bodies.values.first) { |b| "-H \"Accept: #{b.media_type}\"" } query_parameters = map_nonempty(render_query_parameters(method.query_parameters.values)) { |s| '?' + s } curl_data = map_nonempty(method.bodies.values.first) { |b| "-d \"#{b.example}\"" } ['curl', curl_method, curl_content_type, resource.absolute_uri + query_parameters, curl_data].select { |p| not is_falsy(p) }.join(' ') end |
#javascript_vanilla(resource, method_name) ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/raml_parser/snippet_generator.rb', line 20 def javascript_vanilla(resource, method_name) method = resource.methods[method_name] query_parameters = map_nonempty(render_query_parameters(method.query_parameters.values)) { |s| '?' + s } js_content_type = map_nonempty(method.bodies.values.first) { |b| "xhr.setRequestHeader('Accept', '#{b.media_type}');\n" } || '' data = map_nonempty(method.bodies.values.first) { |b| (b.example || '').chomp } result = "var xhr = new XMLHttpRequest();\n" result += "xhr.open('#{method.method.upcase}', '#{resource.absolute_uri + query_parameters}', true);\n" result += "xhr.onreadystatechange = function () {\n" result += " if (xhr.readyState != 4 || xhr.status != 200) return;\n" result += " console.log('Success', xhr.responseText);\n" result += "};\n" result += js_content_type result += "xhr.send(\"#{data}\");" result end |
#ruby(resource, method_name) ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/raml_parser/snippet_generator.rb', line 39 def ruby(resource, method_name) method = resource.methods[method_name] send_method = method.method.downcase == 'post' || method.method.downcase == 'put' query_parameters = map_nonempty(render_query_parameters(method.query_parameters.values)) { |s| '?' + s } || '' uri = "#{resource.absolute_uri}#{query_parameters}" data = map_nonempty(method.bodies.values.first) { |b| b.example.chomp } headers = { 'Accept' => map_nonempty(method.bodies.values.first) { |b| b.media_type } } headers = headers.delete_if {|key, value| value.nil? } result = "require 'net/http'\n" result += "require 'json'\n" if send_method result += "uri = URI.parse('#{uri}')\n" result += "headers = #{headers}\n" unless headers.empty? result += "data = #{data}\n\n" if send_method result += "req = Net::HTTP::#{method.method.capitalize}.new(uri.path" result += headers.empty? ? ")\n" : ", initheader = headers)\n" result += "req.body = data.to_json\n" if send_method result += "response = Net::HTTP.start(uri.hostname, uri.port) { |http| http.request(req) }\n" result end |