class Textualize::RequestSpecs
Public Instance Methods
create_airborne_specs()
click to toggle source
# File lib/textualize/tasks/request_specs.rb, line 11 def create_airborne_specs add_airborne_specs end
Private Instance Methods
add_airborne_specs()
click to toggle source
# File lib/textualize/tasks/request_specs.rb, line 17 def add_airborne_specs RouteHashes.filenames_and_hashes.each do |(filename, hashes)| request_directory = "dist/#{filename}/spec/requests/" FileUtils.mkdir_p(request_directory) hashes.each do |route_hash| modified_hash = replace_ids_with_interpolated_ruby(route_hash) File.open( "#{request_directory}#{route_hash.verb}_"\ "#{route_hash.name}_spec.rb", 'w' ) do |file| file.write(request_spec_template(modified_hash)) end end end end
non_ro_type(route_hash)
click to toggle source
# File lib/textualize/tasks/request_specs.rb, line 49 def non_ro_type(route_hash) route_hash.type.gsub(/-ro$/, '') end
replace_ids_with_interpolated_ruby(route_hash)
click to toggle source
# File lib/textualize/tasks/request_specs.rb, line 53 def replace_ids_with_interpolated_ruby(route_hash) modified_hash = route_hash modified_hash.relative_path.gsub!(/({|_id)/, '{' => '#{', '_id' => '.id') modified_hash.url.gsub!(/({|_id)/, '{' => '#{', '_id' => '.id') modified_hash end
request_spec_template(route_hash)
click to toggle source
# File lib/textualize/tasks/request_specs.rb, line 36 def request_spec_template(route_hash) ERB.new( File.read( "#{template_directory}#{route_hash.verb}"\ "_#{non_ro_type(route_hash)}.rb.erb" ) ).result(route_hash.instance_eval { binding }) end
template_directory()
click to toggle source
# File lib/textualize/tasks/request_specs.rb, line 45 def template_directory @_directory ||= __dir__.chomp('tasks') + 'templates/request_specs/' end