class Jinda::Generators::ConfigGenerator

Public Class Methods

source_root() click to toggle source
# File lib/generators/jinda/config_generator.rb, line 4
def self.source_root
    File.dirname(__FILE__) + "/templates"
end

Public Instance Methods

backup_files() click to toggle source
# File lib/generators/jinda/config_generator.rb, line 8
def backup_files
    st="      "
    # inside("config/initializers") {(File.file? "omniauth.rb") ? (FileUtils.mv "omniauth.rb",  "omniauth.rb.bak") : (puts "new omniauth.rb created")}
    # inside("config/initializers") {(File.file? "mongoid.rb") ? (FileUtils.mv "mongoid.rb", "omniauth.rb.bak") : (puts "new mongoid.rb created")}
    (File.file? ".env") ? (FileUtils.mv ".env", ".env-bak") : (puts "backup .env")
end
finish() click to toggle source
# File lib/generators/jinda/config_generator.rb, line 80
def finish
    puts "      configured omniauth.\n"
    puts "      configured setup_ckeditor.\n"
    puts "      configured Mongoid.\n"
    puts "\n"
    puts "      To set user/password as admin/secret run:\n"
    puts "-----------------------------------------\n"
    puts "rails jinda:seed\n"
    puts "-----------------------------------------\n"
    puts "      To test with rspec  run:"
    puts "-----------------------------------------\n"
    puts "rspec\n"
    puts "-----------------------------------------\n"
    puts "      To config rspec run:"
    puts "rails g jinda:rspec\n"
    puts "run $chromediver for Capybara & Chrome\n"
    puts "-----------------------------------------\n"
    puts "      To config minitest run:"
    puts "-----------------------------------------\n"
    puts "rails g jinda:minitest\n"
    puts "-----------------------------------------\n"
    puts "      To login with facebook"
    puts "-----------------------------------------\n"
    puts "Please config. in .env or restore from .env-bak \n"
    puts "-----------------------------------------\n"
end
gen_image_store() click to toggle source
# File lib/generators/jinda/config_generator.rb, line 15
def gen_image_store
    # FileUtils.cp "cloudinary.yml","config/cloudinary.yml"
    # FileUtils.cp "dot.env",".env"
    # FileUtils.cp "dot.rspec",".rspec"
    empty_directory "upload" # create upload directory just in case
end
setup_ckeditor() click to toggle source
# File lib/generators/jinda/config_generator.rb, line 49
def setup_ckeditor
    initializer "ckeditor.rb" do
      %q{# gem 'ckeditor', github: 'galetahub/ckeditor'      
        Ckeditor.setup do |config|
          require 'ckeditor/orm/mongoid'
        end  
      }  
    end            
end
setup_mongoid() click to toggle source
# File lib/generators/jinda/config_generator.rb, line 60
def setup_mongoid
    generate "mongoid:config"
    inject_into_file 'config/mongoid.yml', :after => '  # raise_not_found_error: true' do
        "\n    raise_not_found_error: false"
    end

    inject_into_file 'config/mongoid.yml', :after => '  # belongs_to_required_by_default: true' do
        "\n    belongs_to_required_by_default: false"
    end
    inject_into_file 'config/mongoid.yml', :after => '  # app_name: MyApplicationName' do
        "\n\nproduction:" +
            "\n  clients:" +
            "\n    default:" +
            "\n      uri: <%= ENV['MONGODB_URI'] %>" +
            "\n  options:" +
            "\n    raise_not_found_error: false" +
            "\n    belongs_to_required_by_default: false\n"
    end
end
setup_omniauth() click to toggle source
# File lib/generators/jinda/config_generator.rb, line 22
def setup_omniauth
    # gem 'bcrypt-ruby', '~> 3.0.0'
    # gem 'omniauth-identity'
    initializer "omniauth.rb" do
      %q{
        Rails.application.config.middleware.use OmniAuth::Builder do
          provider :identity,
                   :fields => [:code, :email],
                   :on_failed_registration=> lambda { |env|
                     IdentitiesController.action(:new).call(env)
                   }
          provider :facebook, ENV['FACEBOOK_API'], ENV['FACEBOOK_KEY']
          provider :google_oauth2, ENV['GOOGLE_CLIENT_ID'], ENV['GOOGLE_CLIENT_SECRET']
        end

        # https://stackoverflow.com/questions/11461084/handle-omniautherror-invalid-credentials-for-identity-login
        OmniAuth.config.on_failure = Proc.new { |env|
          OmniAuth::FailureEndpoint.new(env).redirect_to_failure
        }
        
      }
    end
end