class HappySeed::Generators::HappySeedGenerator
Protected Class Methods
gem_available?( name )
click to toggle source
# File lib/generators/happy_seed/happy_seed_generator.rb, line 59 def self.gem_available?( name ) Bundler.with_clean_env do begin return Bundler.environment.gem name rescue Gem::LoadError false end end end
Protected Instance Methods
add_env( key )
click to toggle source
# File lib/generators/happy_seed/happy_seed_generator.rb, line 69 def add_env( key ) defaults_file = File.expand_path ".seed_defaults", ENV['HOME'] value = "#{key}=\n" if File.exists? defaults_file value = File.readlines( defaults_file ).grep( /#{key}=/ ).first || value end append_to_file ".env", value end
add_omniauth( provider, scope = nil, client_api = nil, init = nil )
click to toggle source
# File lib/generators/happy_seed/happy_seed_generator.rb, line 25 def add_omniauth( provider, scope = nil, client_api = nil, init = nil ) scopeline = nil scopeline = ", scope: \"#{scope}\"" if scope inject_into_file 'config/initializers/devise.rb', after: "==> OmniAuth\n" do <<-"RUBY" config.omniauth :#{provider}, ENV['#{provider.upcase}_APP_ID'], ENV['#{provider.upcase}_APP_SECRET']#{scopeline} RUBY end begin add_env "#{provider.upcase}_APP_ID" add_env "#{provider.upcase}_APP_SECRET" rescue say_status :env, "Unable to add template variables to .env", :red end client_api ||= provider.to_s.humanize init ||= "access_token: #{provider}.accesstoken" inject_into_file 'app/controllers/omniauth_callbacks_controller.rb', "\n def #{provider}\n generic_callback( '#{provider}' )\n end\n", before: /\s*def generic_callback/ inject_into_file 'app/models/user.rb', :before => "\nend" do <<-"RUBY" def #{provider} identities.where( :provider => "#{provider}" ).first end def #{provider}_client @#{provider}_client ||= #{client_api}.client( #{init} ) end RUBY end end
already_installed()
click to toggle source
# File lib/generators/happy_seed/happy_seed_generator.rb, line 7 def already_installed installed = self.class.fingerprint puts "#{self.class.to_s} has already been run" if installed installed end
fingerprint()
click to toggle source
# File lib/generators/happy_seed/happy_seed_generator.rb, line 13 def fingerprint raise "Fingerprint not implemented in #{self.to_s}" end
gem_available?(name)
click to toggle source
# File lib/generators/happy_seed/happy_seed_generator.rb, line 55 def gem_available?(name) self.gem_available?( name ) end
require_generator(kls)
click to toggle source
# File lib/generators/happy_seed/happy_seed_generator.rb, line 17 def require_generator kls if !kls.fingerprint name = kls.to_s.gsub( /.*::/, "" ).gsub( /Generator/, "" ).underscore puts "Running dependancy happy_seed:#{name}" generate "happy_seed:#{name}" end end