Class: RailsGui::Model::RailsCommand

Inherits:
Object
  • Object
show all
Includes:
Singleton
Defined in:
app/rails_gui/model/rails_command.rb

Overview

abstracts rails commands like ‘rails routes` and `rails generate …`

Constant Summary collapse

FILE_ROUTES =
File.join(Dir.home, '.rails-gui', 'routes.yml')

Instance Method Summary collapse

Instance Method Details

#fetch_routesObject



36
37
38
39
40
41
42
43
# File 'app/rails_gui/model/rails_command.rb', line 36

def fetch_routes
  `rails routes`.lines.drop(2).map do |line|
    cells = line.split
    cells.prepend('') if cells[0] && (cells[0] == cells[0].upcase)
    cells.insert(1, '') if cells[1] && (cells[1] != cells[1].upcase)
    cells
  end
end

#load_routesObject



19
20
21
22
23
24
25
26
# File 'app/rails_gui/model/rails_command.rb', line 19

def load_routes
  FileUtils.mkdir_p(File.dirname(FILE_ROUTES))
  YAML.load(File.read(FILE_ROUTES))
rescue => e
  puts "No routes found at: #{FILE_ROUTES}"
  Glimmer::Config.logger.error {e.full_message}
  nil
end

#refresh_routesObject



45
46
47
48
49
# File 'app/rails_gui/model/rails_command.rb', line 45

def refresh_routes
  @routes = fetch_routes
  save_routes
  @routes
end

#routesObject



13
14
15
16
17
# File 'app/rails_gui/model/rails_command.rb', line 13

def routes
  @routes = load_routes
  refresh_routes if @routes.nil?
  @routes
end

#save_routesObject



28
29
30
31
32
33
34
# File 'app/rails_gui/model/rails_command.rb', line 28

def save_routes
  FileUtils.mkdir_p(File.dirname(FILE_ROUTES))
  File.write(FILE_ROUTES, YAML.dump(@routes))
rescue => e
  puts "Cannot save routes at: #{FILE_ROUTES}"
  Glimmer::Config.logger.error {e.full_message}
end