class Repres::Dosser::SwaggerGenerator

Public Instance Methods

bind_options() click to toggle source
# File lib/generators/repres/dosser/swagger/swagger_generator.rb, line 24
def bind_options
  @platform_name          = file_name.downcase
  @version_number         = options['version'].to_i
  @platform_module_name   = @platform_name.camelize
  @version_module_name    = "V#{@version_number}"
  @version_name           = "v#{@version_number}"
  @application_name       = application_name
  @application_name_const = application_name.upcase
end
produce() click to toggle source
# File lib/generators/repres/dosser/swagger/swagger_generator.rb, line 11
def produce

  bind_options

  generate 'repres:dosser:platform', "#{@platform_name} --version #{@version_number}"

  generate_gemfile
  generate_initializer
  generate_swagger
  generate_route

end

Private Instance Methods

generate_gemfile() click to toggle source

gemfile

Gemfile
# File lib/generators/repres/dosser/swagger/swagger_generator.rb, line 38
def generate_gemfile
  gem 'swagger_engine'
end
generate_initializer() click to toggle source

initializer

config/initializers/swagger_engine.rb
# File lib/generators/repres/dosser/swagger/swagger_generator.rb, line 46
def generate_initializer
  template 'config/initializers/swagger_engine.rb.erb', 'config/initializers/swagger_engine.rb'

  line = "'#{@platform_module_name} API #{@version_name}': 'lib/swagger/#{@platform_name}_api_#{@version_name}.json'"
  file = Rails.root.join 'config', 'initializers', 'swagger_engine.rb'
  if :invoke==behavior
    puts "Please make sure the following line is in the file #{file}:\n\n    #{line}\n\n"
  elsif :revoke==behavior
    puts "Please remove the following line from the file #{file}:\n\n    #{line}\n\n"
  end

end
generate_route() click to toggle source

route

config/routes.rb
# File lib/generators/repres/dosser/swagger/swagger_generator.rb, line 71
def generate_route
  source  = File.expand_path find_in_source_paths('config/routes.rb.erb')
  content = ERB.new(File.binread(source).strip, nil, '-', "@output_buffer").result instance_eval('binding')
  route content
end
generate_swagger() click to toggle source

swagger

lib/swagger/{platform}_api_{version}.json
# File lib/generators/repres/dosser/swagger/swagger_generator.rb, line 63
def generate_swagger
  template 'lib/swagger/api.json.erb', "lib/swagger/#{@platform_name}_api_#{@version_name}.json"
end