class DogBiscuits::AuthorityGenerator

Public Instance Methods

authority_service() click to toggle source
# File lib/generators/dog_biscuits/authority_generator.rb, line 48
def authority_service
  template('authority_service.rb.erb', 'app/services/authority_service.rb')
end
copy_authorities() click to toggle source
# File lib/generators/dog_biscuits/authority_generator.rb, line 14
def copy_authorities
  directory 'config/authorities', 'config/authorities'
end
copy_concerns() click to toggle source
# File lib/generators/dog_biscuits/authority_generator.rb, line 52
def copy_concerns
  directory 'app/services/concerns', 'app/services/concerns'
end
create_dog_biscuits() click to toggle source
# File lib/generators/dog_biscuits/authority_generator.rb, line 18
def create_dog_biscuits
  init_path = 'config/initializers/dog_biscuits.rb'
  yml_path = 'config/dog_biscuits.yml'

  copy_file 'config/dog_biscuits.yml', yml_path unless File.exist?(yml_path)
  copy_file 'config/initializers/dog_biscuits.rb', init_path unless File.exist?(init_path)
end
inject_into_dog_biscuits() click to toggle source
# File lib/generators/dog_biscuits/authority_generator.rb, line 26
def inject_into_dog_biscuits
  init_path = 'config/initializers/dog_biscuits.rb'
  yml_path = 'config/dog_biscuits.yml'

  init_content = File.read(init_path)
  yml_content = File.read(yml_path)

  ::DogBiscuits::Terms.constants.each do |term|
    t = term.to_s
    term_string = "Qa::Authorities::Local.register_subauthority('#{t.gsub('Terms', '').underscore.downcase}', 'DogBiscuits::Terms::#{t}')"
    unless init_content.include? term_string
      inject_into_file init_path, after: '# include Terms' do
        "\n#{term_string}"
      end
    end
    next if yml_content.include? t
    inject_into_file yml_path, after: '# authorities' do
      "\n#{t.gsub('Terms', '').underscore.pluralize}: \"\""
    end
  end
end