class Versionist::CopyApiVersionGenerator
Public Instance Methods
copy_controller_tests()
click to toggle source
due to the inflector quirks we can't use hook_for :test_framework
# File lib/generators/versionist/copy_api_version/copy_api_version_generator.rb, line 55 def copy_controller_tests in_root do case Versionist.configuration.configured_test_framework when :test_unit if File.exists? "#{Versionist.test_path}/#{module_name_for_path(old_module_name)}" log "Copying all files from #{Versionist.test_path}/#{module_name_for_path(old_module_name)} to #{Versionist.test_path}/#{module_name_for_path(new_module_name)}" FileUtils.cp_r "#{Versionist.test_path}/#{module_name_for_path(old_module_name)}", "#{Versionist.test_path}/#{module_name_for_path(new_module_name)}" Dir.glob("#{Versionist.test_path}/#{module_name_for_path(new_module_name)}/*.rb").each do |f| text = File.read(f) File.open(f, 'w') {|f| f << text.gsub(/#{old_module_name}/, new_module_name)} end else say "No tests found in #{Versionist.test_path} for #{old_version}" end if Versionist.older_than_rails_5? if File.exists? "test/integration/#{module_name_for_path(old_module_name)}" log "Copying all files from test/integration/#{module_name_for_path(old_module_name)} to test/integration/#{module_name_for_path(new_module_name)}" FileUtils.cp_r "test/integration/#{module_name_for_path(old_module_name)}", "test/integration/#{module_name_for_path(new_module_name)}" Dir.glob("test/integration/#{module_name_for_path(new_module_name)}/*.rb").each do |f| text = File.read(f) File.open(f, 'w') {|f| f << text.gsub(/#{old_module_name}/, new_module_name)} end else say "No integration tests found in test/integration for #{old_version}" end end when :rspec if File.exists? "spec/controllers/#{module_name_for_path(old_module_name)}" log "Copying all files from spec/controllers/#{module_name_for_path(old_module_name)} to spec/controllers/#{module_name_for_path(new_module_name)}" FileUtils.cp_r "spec/controllers/#{module_name_for_path(old_module_name)}", "spec/controllers/#{module_name_for_path(new_module_name)}" Dir.glob("spec/controllers/#{module_name_for_path(new_module_name)}/*.rb").each do |f| text = File.read(f) File.open(f, 'w') {|f| f << text.gsub(/#{old_module_name}/, new_module_name)} end else say "No controller specs found in spec/controllers for #{old_version}" end if File.exists? "spec/requests/#{module_name_for_path(old_module_name)}" log "Copying all files from spec/requests/#{module_name_for_path(old_module_name)} to spec/requests/#{module_name_for_path(new_module_name)}" FileUtils.cp_r "spec/requests/#{module_name_for_path(old_module_name)}", "spec/requests/#{module_name_for_path(new_module_name)}" Dir.glob("spec/requests/#{module_name_for_path(new_module_name)}/*.rb").each do |f| text = File.read(f) File.open(f, 'w') {|f| f << text.gsub(/#{old_module_name}/, new_module_name)} end else say "No request specs found in spec/requests for #{old_version}" end else say "Unsupported test_framework: #{Versionist.configuration.configured_test_framework}" end end end
copy_controllers()
click to toggle source
# File lib/generators/versionist/copy_api_version/copy_api_version_generator.rb, line 39 def copy_controllers in_root do if File.exists? "app/controllers/#{module_name_for_path(old_module_name)}" log "Copying all files from app/controllers/#{module_name_for_path(old_module_name)} to app/controllers/#{module_name_for_path(new_module_name)}" FileUtils.cp_r "app/controllers/#{module_name_for_path(old_module_name)}", "app/controllers/#{module_name_for_path(new_module_name)}" Dir.glob("app/controllers/#{module_name_for_path(new_module_name)}/*.rb").each do |f| text = File.read(f) File.open(f, 'w') {|f| f << text.gsub(/#{old_module_name}/, new_module_name)} end else say "No controllers found in app/controllers for #{old_version}" end end end
copy_documentation()
click to toggle source
# File lib/generators/versionist/copy_api_version/copy_api_version_generator.rb, line 202 def copy_documentation in_root do if File.exists? "public/docs/#{old_version}" log "Copying all files from public/docs/#{old_version} to public/docs/#{new_version}" FileUtils.cp_r "public/docs/#{old_version}/.", "public/docs/#{new_version}" else say "No documentation found in public/docs for #{old_version}" end end end
copy_helper_tests()
click to toggle source
# File lib/generators/versionist/copy_api_version/copy_api_version_generator.rb, line 171 def copy_helper_tests in_root do case Versionist.configuration.configured_test_framework when :test_unit if File.exists? "test/helpers/#{module_name_for_path(old_module_name)}" log "Copying all files from test/helpers/#{module_name_for_path(old_module_name)} to test/helpers/#{module_name_for_path(new_module_name)}" FileUtils.cp_r "test/helpers/#{module_name_for_path(old_module_name)}", "test/helpers/#{module_name_for_path(new_module_name)}" Dir.glob("test/helpers/#{module_name_for_path(new_module_name)}/*.rb").each do |f| text = File.read(f) File.open(f, 'w') {|f| f << text.gsub(/#{old_module_name}/, new_module_name)} end else say "No helper tests found in test/helpers for #{old_version}" end when :rspec if File.exists? "spec/helpers/#{module_name_for_path(old_module_name)}" log "Copying all files from spec/helpers/#{module_name_for_path(old_module_name)} to spec/helpers/#{module_name_for_path(new_module_name)}" FileUtils.cp_r "spec/helpers/#{module_name_for_path(old_module_name)}", "spec/helpers/#{module_name_for_path(new_module_name)}" Dir.glob("spec/helpers/#{module_name_for_path(new_module_name)}/*.rb").each do |f| text = File.read(f) File.open(f, 'w') {|f| f << text.gsub(/#{old_module_name}/, new_module_name)} end else say "No helper specs found in spec/helpers for #{old_version}" end else say "Unsupported test_framework: #{Versionist.configuration.configured_test_framework}" end end end
copy_helpers()
click to toggle source
# File lib/generators/versionist/copy_api_version/copy_api_version_generator.rb, line 156 def copy_helpers in_root do if File.exists? "app/helpers/#{module_name_for_path(old_module_name)}" log "Copying all files from app/helpers/#{module_name_for_path(old_module_name)} to app/helpers/#{module_name_for_path(new_module_name)}" FileUtils.cp_r "app/helpers/#{module_name_for_path(old_module_name)}", "app/helpers/#{module_name_for_path(new_module_name)}" Dir.glob("app/helpers/#{module_name_for_path(new_module_name)}/*.rb").each do |f| text = File.read(f) File.open(f, 'w') {|f| f << text.gsub(/#{old_module_name}/, new_module_name)} end else say "No helpers found in app/helpers for #{old_version}" end end end
copy_presenter_tests()
click to toggle source
# File lib/generators/versionist/copy_api_version/copy_api_version_generator.rb, line 125 def copy_presenter_tests in_root do case Versionist.configuration.configured_test_framework when :test_unit if File.exists? "test/presenters/#{module_name_for_path(old_module_name)}" log "Copying all files from test/presenters/#{module_name_for_path(old_module_name)} to test/presenters/#{module_name_for_path(new_module_name)}" FileUtils.cp_r "test/presenters/#{module_name_for_path(old_module_name)}", "test/presenters/#{module_name_for_path(new_module_name)}" Dir.glob("test/presenters/#{module_name_for_path(new_module_name)}/*.rb").each do |f| text = File.read(f) File.open(f, 'w') {|f| f << text.gsub(/#{old_module_name}/, new_module_name)} end else say "No presenter tests found in test/presenters for #{old_version}" end when :rspec if File.exists? "spec/presenters/#{module_name_for_path(old_module_name)}" log "Copying all files from spec/presenters/#{module_name_for_path(old_module_name)} to spec/presenters/#{module_name_for_path(new_module_name)}" FileUtils.cp_r "spec/presenters/#{module_name_for_path(old_module_name)}", "spec/presenters/#{module_name_for_path(new_module_name)}" Dir.glob("spec/presenters/#{module_name_for_path(new_module_name)}/*.rb").each do |f| text = File.read(f) File.open(f, 'w') {|f| f << text.gsub(/#{old_module_name}/, new_module_name)} end else say "No presenter specs found in spec/presenters for #{old_version}" end else say "Unsupported test_framework: #{Versionist.configuration.configured_test_framework}" end end end
copy_presenters()
click to toggle source
# File lib/generators/versionist/copy_api_version/copy_api_version_generator.rb, line 110 def copy_presenters in_root do if File.exists? "app/presenters/#{module_name_for_path(old_module_name)}" log "Copying all files from app/presenters/#{module_name_for_path(old_module_name)} to app/presenters/#{module_name_for_path(new_module_name)}" FileUtils.cp_r "app/presenters/#{module_name_for_path(old_module_name)}", "app/presenters/#{module_name_for_path(new_module_name)}" Dir.glob("app/presenters/#{module_name_for_path(new_module_name)}/*.rb").each do |f| text = File.read(f) File.open(f, 'w') {|f| f << text.gsub(/#{old_module_name}/, new_module_name)} end else say "No presenters found in app/presenters for #{old_version}" end end end
copy_routes()
click to toggle source
# File lib/generators/versionist/copy_api_version/copy_api_version_generator.rb, line 17 def copy_routes in_root do if RUBY_VERSION =~ /1.8/ || !defined?(RUBY_ENGINE) || RUBY_ENGINE != "ruby" log "ERROR: Cannot copy routes as this feature relies on the Ripper library, which is only available in MRI 1.9." return end parser = YARD::Parser::SourceParser.parse_string(File.read("config/routes.rb")) existing_routes = nil parser.enumerator.first.traverse do |node| existing_routes = node.source if node.type == :fcall && node.source =~ /api_version.*:?module\s*(=>|:)\s*("|')#{module_name_for_route(old_module_name)}("|')/ end if !existing_routes.nil? copied_routes = String.new(existing_routes) copied_routes.gsub!(/"#{module_name_for_route(old_module_name)}"/, "\"#{module_name_for_route(new_module_name)}\"") copied_routes.gsub!(/#{old_version}/, new_version) route copied_routes else say "No routes found in config/routes.rb for #{old_version}" end end end