class AppDynamics::Generators::BusinessTransactionsGenerator
Public Instance Methods
create_business_transactions()
click to toggle source
# File lib/generators/app_dynamics/business_transactions_generator.rb, line 10 def create_business_transactions routes = Rails.application.routes.routes.reject(&:internal) bts = routes.map do |route| path = route.path.spec.to_s path.gsub!('.', '\.') path = if route.parts.length > 0 route.parts.each do |part| path.sub!(":#{part}", ".+") end path.gsub!(')', ')?') "%r{#{path}}" else "'#{path}'" end bt = "" if route.name bt << "bt '#{route.name}' => " else bt << "# bt ??? => " end bt << path verbs = route.verb.split("|") unless verbs.empty? bt << ", method: " if verbs.length == 1 bt << ":#{::AppDynamics::BusinessTransactions::METHODS.key(verbs.first)}" else bt << "[" << verbs.map{|v| ":#{::AppDynamics::BusinessTransactions::METHODS.key(v)}" }.join(", ") << "]" end end bt end output = ["AppDynamics::BusinessTransactions.define do"] output.concat bts.map{|bt| " #{bt}" } output << ["end"] initializer "app_dynamics.rb", output.join("\n") end