Class: Medea::Generators::InitGenerator

Inherits:
Base
  • Object
show all
Defined in:
lib/generators/medea/init/init_generator.rb

Instance Method Summary collapse

Methods inherited from Base

banner, source_root

Constructor Details

#initialize(*args, &block) ⇒ InitGenerator



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/generators/medea/init/init_generator.rb', line 17

def initialize(*args, &block)
  super

  @topic = jason_topic
  if not @topic
    @topic ||= random_string 10
    if @topic[0] =~ /[0-9]/
      @topic[0] = "abcdefghij"[@topic[0].to_i]
    end
  end
  @user = username
  @user ||= random_string
  @pass = password
  @pass ||= random_string
end

Instance Method Details

#initObject



33
34
35
36
37
38
# File 'lib/generators/medea/init/init_generator.rb', line 33

def init
  #we can't create the topic, but we can create database.yml
  template "database.yml", "config/database.yml"
  template "jasondb.rb", "config/initializers/jasondb.rb"
  create_topics
end

#patch_applicationObject



40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# File 'lib/generators/medea/init/init_generator.rb', line 40

def patch_application
  new_requires = "require 'action_controller/railtie'\nrequire 'action_mailer/railtie'\nrequire 'active_resource/railtie'\nrequire 'rails/test_unit/railtie'\n  END\n\n  #open up application.rb\n  application_rb = File.new(\"\#{Rails.root}/config/application.rb\")\n  lines = application_rb.readlines\n  application_rb.close\n\n  changes = false\n  #find the line that reads require 'rails/all'\n  lines.each do |line|\n    #replace that line with the new four\n    changes = true if line.gsub!(/require 'rails\\/all'/, new_requires)\n  end\n\n  if changes\n    application_rb = File.new(\"\#{Rails.root}/config/application.rb\", \"w\")\n    lines.each do |line|\n      application_rb.write line\n    end\n\n    application_rb.close\n    say_status \"patch\", \"config/application.rb\", :green\n  else\n    say_status \"check\", \"config/application.rb\", :blue\n  end\nend\n"