class Mindapp::Generators::InstallGenerator

Public Class Methods

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

Public Instance Methods

finish() click to toggle source
# File lib/generators/mindapp/install_generator.rb, line 178
def finish
  puts "Mindapp installation finish, please run the following command:\n"
  puts "----------------------------------------\n"
  puts "bundle install\n"
  puts "rails generate mindapp:mongoid\n"
  puts "----------------------------------------\n"
end
gen_image_store() click to toggle source
# File lib/generators/mindapp/install_generator.rb, line 123
def gen_image_store
  copy_file "cloudinary.yml","config/cloudinary.yml"
  copy_file ".env",".env"

  empty_directory "upload" # create upload directory just in case
end
gen_user() click to toggle source
# File lib/generators/mindapp/install_generator.rb, line 119
def gen_user
  # copy_file "seeds.rb","db/seeds.rb"
end
setup_app() click to toggle source
# File lib/generators/mindapp/install_generator.rb, line 111
def setup_app
  inside("public") { run "mv index.html index.html.bak" }
  inside("app/views/layouts") { run "mv application.html.erb application.html.erb.bak" }
  inside("app/assets/javascripts") { run "mv application.js application.js.bak" }
  inside("app/assets/stylesheets") { run "mv application.css application.css.bak" }
  directory "app"
end
setup_ckeditor() click to toggle source

gem 'ckeditor', github: 'galetahub/ckeditor'

rails generate ckeditor:install –orm=mongoid –backend=paperclip

# File lib/generators/mindapp/install_generator.rb, line 168
      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_env() click to toggle source
# File lib/generators/mindapp/install_generator.rb, line 23
      def setup_env
        create_file 'README.md', ''
        inject_into_file 'config/application.rb', :after => 'require "active_resource/railtie"' do
          "\nrequire 'mongoid/railtie'\n"
          "\nrequire 'rexml/document'\n"
        end
        application do
%q{
  # Mindapp default
  config.generators do |g|
    g.orm             :mongoid
    g.template_engine :haml
    g.test_framework  :rspec
    g.integration_tool :rspec
  end
  # gmail config
  config.action_mailer.delivery_method = :smtp
  config.action_mailer.smtp_settings = {
    :address              => "smtp.gmail.com",
    :port                 => 587,
    :user_name            => 'user@gmail.com',
    :password             => 'secret',
    :authentication       => 'plain',
    :enable_starttls_auto => true  }
  config.action_mailer.raise_delivery_errors = true
  config.action_mailer.perform_deliveries = true
}
        end
        initializer "mindapp.rb" do
%q{# encoding: utf-8
MM = "#{Rails.root}/app/mindapp/index.mm"
DEFAULT_TITLE = 'Mindapp2'
DEFAULT_HEADER = 'Mindapp2'
GMAP = false
NEXT = "Next >"
# comment IMAGE_LOCATION to use cloudinary (specify params in config/cloudinary.yml)
IMAGE_LOCATION = "upload"
# for debugging
# DONT_SEND_MAIL = true
}
        end

initializer "mongoid.rb" do
%q{# encoding: utf-8
#
# Mongoid 6 follows the new pattern of AR5 requiring a belongs_to relation to always require its parent
# belongs_to` will now trigger a validation error by default if the association is not present.
# You can turn this off on a per-association basis with `optional: true`.
# (Note this new default only applies to new Rails apps that will be generated with
# `config.active_record.belongs_to_required_by_default = true` in initializer.)
#
Mongoid::Config.belongs_to_required_by_default = false
}
        end

        inject_into_file 'config/environment.rb', :after => "initialize!"  do
          "\n\n# hack to fix cloudinary error https://github.com/archiloque/rest-client/issues/141" +
          "\nclass Hash\n  remove_method :read\nrescue\nend"
        end
        inject_into_file 'config/environments/development.rb', :after => 'config.action_mailer.raise_delivery_errors = false' do
          "\n  config.action_mailer.default_url_options = { :host => 'localhost:3000' }"
        end
        inject_into_file 'config/environments/production.rb', :after => 'config.assets.compile = false' do
          "\n  config.assets.compile = true"
        end
        inject_into_file 'config/initializers/assets.rb', :after => '# Precompile additional assets.
' do        
"\nRails.application.config.assets.precompile += %w( sarabun.css )\n"
        end
      end
setup_gems() click to toggle source
# File lib/generators/mindapp/install_generator.rb, line 130
def setup_gems
  gem 'maruku', '~> 0.7.3'
  gem 'rouge'
  gem 'normalize-rails'
  gem "font-awesome-rails"
  gem 'ckeditor', github: 'galetahub/ckeditor'
  gem 'mongoid-paperclip', require: 'mongoid_paperclip'
  gem 'meta-tags'
  gem 'jquery-turbolinks'

  gem "mongo", '~> 2.2'
  gem "bson", '~> 4.0'
  gem 'mongoid', github: 'mongodb/mongoid'
  # gem "mongoid"
  gem "nokogiri" # use for mindapp/doc
  gem 'haml', git: 'https://github.com/haml/haml'
  gem "mail"
  gem "prawn"
  gem "redcarpet"
  gem 'bcrypt-ruby', '~> 3.0.0'
  gem 'omniauth-identity'
  gem 'omniauth-facebook'
  gem 'dotenv-rails'
  gem 'cloudinary'
  gem 'kaminari'
  gem 'kaminari-mongoid'
  gem 'jquery-rails'
  gem_group :development, :test do
    gem "rspec"
    gem "rspec-rails"
    gem "better_errors"
    gem "binding_of_caller"
    gem 'pry-byebug'
  end
end
setup_omniauth() click to toggle source
# File lib/generators/mindapp/install_generator.rb, line 94
      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']
end
}
        end
      end
setup_routes() click to toggle source
# File lib/generators/mindapp/install_generator.rb, line 9
def setup_routes
  route "root :to => 'mindapp#index'"
  # route "match '/mindapp/init/:module/:service(/:id)' => 'Mindapp#init'"
  route "mount Ckeditor::Engine => '/ckeditor'"
  route "resources :identities"
  route "resources :sessions"
  route "post '/auth/:provider/callback' => 'sessions#create'"
  route "get '/auth/:provider/callback' => 'sessions#create'"
  route "get '/auth/failure' => 'sessions#failure'"
  route "get '/logout' => 'sessions#destroy', :as => 'logout'"
  route "get ':controller(/:action(/:id))(.:format)'"
  route "post ':controller(/:action(/:id))(.:format)'"
end