class SoarLexicon::Lexicon
Constants
- WADL_XSL
Attributes
app[R]
Public Class Methods
describe(lexicon)
click to toggle source
# File lib/soar_lexicon.rb, line 21 def self.describe(lexicon) return nil if lexicon.nil? translator = Wadling::LexiconTranslator.new(SoarLexicon::Lexicon::WADL_XSL) translator.translate_resources_into_wadl(lexicon) end
describe_resource(lexicon, route)
click to toggle source
# File lib/soar_lexicon.rb, line 27 def self.describe_resource(lexicon, route) return nil if lexicon.nil? or lexicon[route].nil? translator = Wadling::LexiconTranslator.new(SoarLexicon::Lexicon::WADL_XSL) data = {} data[route] = lexicon[route] translator.translate_resources_into_wadl(data) end
new(app)
click to toggle source
# File lib/soar_lexicon.rb, line 10 def initialize(app) @app = app end
Public Instance Methods
call(env)
click to toggle source
# File lib/soar_lexicon.rb, line 14 def call(env) request = Rack::Request.new(env) return respond(SoarLexicon::Lexicon::describe(env['lexicon'])) if Regexp.new('/lexicon').match(request.path) return respond(SoarLexicon::Lexicon::describe_resource(env['lexicon'], request.path)) if request.env['QUERY_STRING'] == 'wadl' app.call(env) end
Private Instance Methods
respond(content)
click to toggle source
# File lib/soar_lexicon.rb, line 37 def respond(content) [200, {"Content-Type" => "application/xml"}, [content]] end