Class: ApiVersions::Generators::BumpGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Defined in:
lib/generators/api_versions/bump_generator.rb

Instance Method Summary collapse

Instance Method Details

#generate_new_controllersObject



19
20
21
22
23
24
25
26
# File 'lib/generators/api_versions/bump_generator.rb', line 19

def generate_new_controllers
  @controllers.each do |controller|
    new_controller = controller.gsub(/api\/v#{@highest_version}\//, "api/v#{@highest_version.to_i + 1}/")
    @current_new_controller = new_controller.chomp(File.extname(controller)).camelize
    @current_old_controller = controller.chomp(File.extname(controller)).camelize
    template 'controller.rb', File.join('app', 'controllers', new_controller)
  end
end

#get_controllersObject



7
8
9
10
11
12
13
14
15
16
17
# File 'lib/generators/api_versions/bump_generator.rb', line 7

def get_controllers
  Dir.chdir File.join(Rails.root, 'app', 'controllers') do
    @controllers = Dir.glob('api/v**/**/*.rb')
  end

  @highest_version = @controllers.map do |controller|
    controller.match(/api\/v(\d+?)\//)[1]
  end.max

  @controllers.keep_if { |element| element =~ /api\/v#{@highest_version}\// }
end