rails_baseline 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +14 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +41 -0
- data/Rakefile +2 -0
- data/bin/rails_baseline +9 -0
- data/lib/rails_baseline.rb +1 -0
- data/lib/rails_baseline/command.rb +40 -0
- data/lib/rails_baseline/recipes.txt +23 -0
- data/lib/rails_baseline/template.rb +544 -0
- data/lib/rails_baseline/version.rb +3 -0
- data/rails_baseline.gemspec +27 -0
- metadata +146 -0
    
        checksums.yaml
    ADDED
    
    | @@ -0,0 +1,7 @@ | |
| 1 | 
            +
            ---
         | 
| 2 | 
            +
            SHA1:
         | 
| 3 | 
            +
              metadata.gz: 5ba8dfa939906dcbdf9584f578e7f96bcf639d01
         | 
| 4 | 
            +
              data.tar.gz: 9b097bc63311f9f568469c0462362d07d3178b10
         | 
| 5 | 
            +
            SHA512:
         | 
| 6 | 
            +
              metadata.gz: 71af800882a0db5adbd959b45df9af8d15dca905f1db098f369aedb26cd71ae7d72f98280b7d6d29333794b8968959e9a8e703dac9d111f00d12ef52b9f1f1ae
         | 
| 7 | 
            +
              data.tar.gz: 91b10c56f60c052e56146882533a30528dc18bae5cc8ffe301ed2297c62ef1beb551cdaef5db10fe3ae9a0e396935fd462986eabaf972c8982a5dc72b453d099
         | 
    
        data/.gitignore
    ADDED
    
    
    
        data/Gemfile
    ADDED
    
    
    
        data/LICENSE.txt
    ADDED
    
    | @@ -0,0 +1,22 @@ | |
| 1 | 
            +
            Copyright (c) 2015 Yoon Wai Yan
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            MIT License
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            Permission is hereby granted, free of charge, to any person obtaining
         | 
| 6 | 
            +
            a copy of this software and associated documentation files (the
         | 
| 7 | 
            +
            "Software"), to deal in the Software without restriction, including
         | 
| 8 | 
            +
            without limitation the rights to use, copy, modify, merge, publish,
         | 
| 9 | 
            +
            distribute, sublicense, and/or sell copies of the Software, and to
         | 
| 10 | 
            +
            permit persons to whom the Software is furnished to do so, subject to
         | 
| 11 | 
            +
            the following conditions:
         | 
| 12 | 
            +
             | 
| 13 | 
            +
            The above copyright notice and this permission notice shall be
         | 
| 14 | 
            +
            included in all copies or substantial portions of the Software.
         | 
| 15 | 
            +
             | 
| 16 | 
            +
            THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
         | 
| 17 | 
            +
            EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
         | 
| 18 | 
            +
            MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
         | 
| 19 | 
            +
            NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
         | 
| 20 | 
            +
            LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
         | 
| 21 | 
            +
            OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
         | 
| 22 | 
            +
            WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
         | 
    
        data/README.md
    ADDED
    
    | @@ -0,0 +1,41 @@ | |
| 1 | 
            +
            ## !!Under Active Development
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            This gem is still under active development.
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            # Rails 4.2 Baseline
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            This gem is a wrapper of a Rails Applications Template to create a new Rails 4.2 application based on the normal practices in [cloudcoder.com.my](http://cloudcoder.com.my). Just go through a simple wizard to get all the gems set and you'll be good to proceed with migrations and start coding your project.
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            This gem is heavily based on [rails_wizard](https://github.com/intridea/rails_wizard) for the overall idea of the gem and refers to [rails-composer](https://github.com/RailsApps/rails-composer) for the code organization.
         | 
| 10 | 
            +
             | 
| 11 | 
            +
            ## Installation
         | 
| 12 | 
            +
             | 
| 13 | 
            +
                $ gem install rails_baseline
         | 
| 14 | 
            +
             | 
| 15 | 
            +
            ## Usage
         | 
| 16 | 
            +
             | 
| 17 | 
            +
            Create a new Rails app:
         | 
| 18 | 
            +
             | 
| 19 | 
            +
                $ rails_baseline new APP_NAME
         | 
| 20 | 
            +
             | 
| 21 | 
            +
            Please replace APP_NAME with your new Rails app name.
         | 
| 22 | 
            +
             | 
| 23 | 
            +
            List out all available recipes:
         | 
| 24 | 
            +
             | 
| 25 | 
            +
                $ rails_baseline list
         | 
| 26 | 
            +
             | 
| 27 | 
            +
            ## Changelog
         | 
| 28 | 
            +
             | 
| 29 | 
            +
            1. 0.0.5 - Executable file
         | 
| 30 | 
            +
            2. 0.1.0 - Rearrange wizard orders and order listing
         | 
| 31 | 
            +
            3. 0.1.1 - Added jQuery Validation, CanCanCan and Google Tag Manager
         | 
| 32 | 
            +
            3. 0.1.2 - Added Paranoia, Better Errors, Hirb and jQuery DataTables
         | 
| 33 | 
            +
            4. 0.1.3 - Added Quiet Assets, Decent Exposure, Paperclip, State Machines, Delayed Job and Kaminari
         | 
| 34 | 
            +
             | 
| 35 | 
            +
            ## Contributing
         | 
| 36 | 
            +
             | 
| 37 | 
            +
            1. Fork it ( https://github.com/cloudcodermy/baseline/fork )
         | 
| 38 | 
            +
            2. Create your feature branch (`git checkout -b my-new-feature`)
         | 
| 39 | 
            +
            3. Commit your changes (`git commit -am 'Add some feature'`)
         | 
| 40 | 
            +
            4. Push to the branch (`git push origin my-new-feature`)
         | 
| 41 | 
            +
            5. Create a new Pull Request
         | 
    
        data/Rakefile
    ADDED
    
    
    
        data/bin/rails_baseline
    ADDED
    
    
| @@ -0,0 +1 @@ | |
| 1 | 
            +
            require "rails_baseline/version"
         | 
| @@ -0,0 +1,40 @@ | |
| 1 | 
            +
            require "thor"
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            module RailsBaseline
         | 
| 4 | 
            +
              class Command < Thor
         | 
| 5 | 
            +
              	include Thor::Actions
         | 
| 6 | 
            +
                desc "new APP_NAME", "create a new Rails app"
         | 
| 7 | 
            +
                def new(name)
         | 
| 8 | 
            +
                  run_template(name)
         | 
| 9 | 
            +
                end
         | 
| 10 | 
            +
             | 
| 11 | 
            +
                desc "list", "list all recipes"
         | 
| 12 | 
            +
                def list
         | 
| 13 | 
            +
                  list_all_recipes
         | 
| 14 | 
            +
                end
         | 
| 15 | 
            +
             | 
| 16 | 
            +
                no_tasks do
         | 
| 17 | 
            +
                  def cyan; "\033[36m" end
         | 
| 18 | 
            +
                  def clear; "\033[0m" end
         | 
| 19 | 
            +
                  def bold; "\033[1m" end
         | 
| 20 | 
            +
                  def red; "\033[31m" end
         | 
| 21 | 
            +
                  def green; "\033[32m" end
         | 
| 22 | 
            +
                  def yellow; "\033[33m" end
         | 
| 23 | 
            +
             | 
| 24 | 
            +
                  def run_template(name)
         | 
| 25 | 
            +
                    puts "#{bold}Generating and Running Template..."
         | 
| 26 | 
            +
                    template_path = File.join( File.dirname(__FILE__), 'template.rb' )
         | 
| 27 | 
            +
              			file = File.open( template_path )
         | 
| 28 | 
            +
                    system "rails new #{name} -m #{file.path} --skip-bundle"
         | 
| 29 | 
            +
                  end
         | 
| 30 | 
            +
                    
         | 
| 31 | 
            +
                  def list_all_recipes
         | 
| 32 | 
            +
                    puts "#{yellow}All recipes in order:#{clear}"
         | 
| 33 | 
            +
                    recipes_list_path = File.join( File.dirname(__FILE__), 'recipes.txt' )
         | 
| 34 | 
            +
                    File.open(recipes_list_path, "r").each_line.with_index do |line, index|
         | 
| 35 | 
            +
                      puts "#{index+1}. #{line}"
         | 
| 36 | 
            +
                    end
         | 
| 37 | 
            +
                  end
         | 
| 38 | 
            +
                end
         | 
| 39 | 
            +
              end
         | 
| 40 | 
            +
            end
         | 
| @@ -0,0 +1,23 @@ | |
| 1 | 
            +
            Rails Deflator
         | 
| 2 | 
            +
            SMTP Configurations
         | 
| 3 | 
            +
            Rails Config
         | 
| 4 | 
            +
            Quiet Assets
         | 
| 5 | 
            +
            RSpec test suite
         | 
| 6 | 
            +
            Database(Mongoid, MySQL, Postgresql, SQLite)
         | 
| 7 | 
            +
            Devise
         | 
| 8 | 
            +
            ActiveAdmin
         | 
| 9 | 
            +
            CanCanCan
         | 
| 10 | 
            +
            Decent Exposure
         | 
| 11 | 
            +
            Paperclip
         | 
| 12 | 
            +
            State Machines
         | 
| 13 | 
            +
            Delayed Job
         | 
| 14 | 
            +
            Application views
         | 
| 15 | 
            +
            Paranoia
         | 
| 16 | 
            +
            Better Errors
         | 
| 17 | 
            +
            Hirb
         | 
| 18 | 
            +
            SASS
         | 
| 19 | 
            +
            Bootstrap
         | 
| 20 | 
            +
            jQuery Validate
         | 
| 21 | 
            +
            jQuery dataTables
         | 
| 22 | 
            +
            Kaminari
         | 
| 23 | 
            +
            Git
         | 
| @@ -0,0 +1,544 @@ | |
| 1 | 
            +
            # >----------------------------[ Initial Setup ]------------------------------<
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            # @recipes = ["database", "mongoid", "devise", "activeadmin", "git", "sass"] 
         | 
| 4 | 
            +
            @database_choice = nil
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            def recipes; @recipes end
         | 
| 7 | 
            +
            def recipe?(name); @recipes.include?(name) end
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            def say_custom(tag, text); say "\033[1m\033[36m" + tag.to_s.rjust(10) + "\033[0m" + "  #{text}" end
         | 
| 10 | 
            +
            def say_recipe(name); say "\033[1m\033[36m" + "recipe".rjust(10) + "\033[0m" + "  Running #{name} recipe..." end
         | 
| 11 | 
            +
            def say_wizard(text); say_custom(@current_recipe || 'wizard', text) end
         | 
| 12 | 
            +
             | 
| 13 | 
            +
            def ask_wizard(question)
         | 
| 14 | 
            +
              ask "\033[1m\033[30m\033[46m" + (@current_recipe || "prompt").rjust(10) + "\033[0m\033[36m" + "  #{question}\033[0m"
         | 
| 15 | 
            +
            end
         | 
| 16 | 
            +
             | 
| 17 | 
            +
            def yes_wizard?(question)
         | 
| 18 | 
            +
              answer = ask_wizard(question + " \033[33m(y/n)\033[0m")
         | 
| 19 | 
            +
              case answer.downcase
         | 
| 20 | 
            +
                when "yes", "y"
         | 
| 21 | 
            +
                  true
         | 
| 22 | 
            +
                when "no", "n"
         | 
| 23 | 
            +
                  false
         | 
| 24 | 
            +
                else
         | 
| 25 | 
            +
                  yes_wizard?(question)
         | 
| 26 | 
            +
              end
         | 
| 27 | 
            +
            end
         | 
| 28 | 
            +
             | 
| 29 | 
            +
            def no_wizard?(question); !yes_wizard?(question) end
         | 
| 30 | 
            +
             | 
| 31 | 
            +
            def multiple_choice(question, choices)
         | 
| 32 | 
            +
              say_custom('question', question)
         | 
| 33 | 
            +
              values = {}
         | 
| 34 | 
            +
              choices.each_with_index do |choice,i| 
         | 
| 35 | 
            +
                values[(i + 1).to_s] = choice[1]
         | 
| 36 | 
            +
                say_custom (i + 1).to_s + ')', choice[0]
         | 
| 37 | 
            +
              end
         | 
| 38 | 
            +
              answer = ask_wizard("Enter your selection:") while !values.keys.include?(answer)
         | 
| 39 | 
            +
              values[answer]
         | 
| 40 | 
            +
            end
         | 
| 41 | 
            +
             | 
| 42 | 
            +
            @current_recipe = nil
         | 
| 43 | 
            +
            @configs = {}
         | 
| 44 | 
            +
             | 
| 45 | 
            +
            @after_blocks = []
         | 
| 46 | 
            +
            def after_bundler(&block); @after_blocks << [@current_recipe, block]; end
         | 
| 47 | 
            +
            @after_everything_blocks = []
         | 
| 48 | 
            +
            def after_everything(&block); @after_everything_blocks << [@current_recipe, block]; end
         | 
| 49 | 
            +
            @before_configs = {}
         | 
| 50 | 
            +
            def before_config(&block); @before_configs[@current_recipe] = block; end
         | 
| 51 | 
            +
             | 
| 52 | 
            +
            # >-----------------------[ Deflator and Autoloads ]--------------------------<
         | 
| 53 | 
            +
            @current_recipe = "deflator"
         | 
| 54 | 
            +
             | 
| 55 | 
            +
            insertion_text = <<-TEXT
         | 
| 56 | 
            +
            \n
         | 
| 57 | 
            +
                config.middleware.use Rack::Deflater
         | 
| 58 | 
            +
            TEXT
         | 
| 59 | 
            +
             | 
| 60 | 
            +
            inject_into_file "config/application.rb", insertion_text, :after => "# config.i18n.default_locale = :de"
         | 
| 61 | 
            +
             | 
| 62 | 
            +
            # >--------------------------------[ Email Settings ]---------------------------------<
         | 
| 63 | 
            +
            @current_recipe = "smtp"
         | 
| 64 | 
            +
             | 
| 65 | 
            +
            email_configuration_text = <<-TEXT
         | 
| 66 | 
            +
            \n
         | 
| 67 | 
            +
              config.action_mailer.default_url_options = { :host => 'localhost:3000' }
         | 
| 68 | 
            +
             | 
| 69 | 
            +
              config.action_mailer.delivery_method = :smtp
         | 
| 70 | 
            +
              config.action_mailer.smtp_settings = {
         | 
| 71 | 
            +
                :enable_starttls_auto => true,
         | 
| 72 | 
            +
                :address              => "smtp.mandrillapp.com",
         | 
| 73 | 
            +
                :port                 => 587,
         | 
| 74 | 
            +
                :domain               => 'YOUR_DOMAIN',
         | 
| 75 | 
            +
                :user_name            => "USERNAME",
         | 
| 76 | 
            +
                :password             => "PASSWORD",
         | 
| 77 | 
            +
                :authentication       => :plain
         | 
| 78 | 
            +
              }
         | 
| 79 | 
            +
            TEXT
         | 
| 80 | 
            +
             | 
| 81 | 
            +
            after_bundler do
         | 
| 82 | 
            +
              inject_into_file 'config/environments/development.rb', email_configuration_text, :after => "config.assets.debug = true"
         | 
| 83 | 
            +
              inject_into_file 'config/environments/production.rb', email_configuration_text, :after => "config.active_support.deprecation = :notify"
         | 
| 84 | 
            +
              say_wizard "------------------------ EMAIL SETTINGS --------------------------"
         | 
| 85 | 
            +
              say_wizard "| Please change your email settings in development.rb            |"
         | 
| 86 | 
            +
              say_wizard "| and production.rb                                              |"
         | 
| 87 | 
            +
              say_wizard "------------------------------------------------------------------"
         | 
| 88 | 
            +
            end
         | 
| 89 | 
            +
             | 
| 90 | 
            +
            # >--------------------------------[ Rails Config ]---------------------------------<
         | 
| 91 | 
            +
             | 
| 92 | 
            +
            @current_recipe = "rails_config"
         | 
| 93 | 
            +
            @before_configs["rails_config"].call if @before_configs["rails_config"]
         | 
| 94 | 
            +
            say_recipe 'Rails Config'
         | 
| 95 | 
            +
             | 
| 96 | 
            +
            gem 'rails_config', '0.5.0.beta1'
         | 
| 97 | 
            +
             | 
| 98 | 
            +
            after_bundler do
         | 
| 99 | 
            +
              generate 'rails_config:install'
         | 
| 100 | 
            +
            end
         | 
| 101 | 
            +
             | 
| 102 | 
            +
            # >--------------------------------[ Quiet Assets ]---------------------------------<
         | 
| 103 | 
            +
             | 
| 104 | 
            +
            @current_recipe = "quiet_assets"
         | 
| 105 | 
            +
            @before_configs["quiet_assets"].call if @before_configs["quiet_assets"]
         | 
| 106 | 
            +
            say_recipe 'Quiet Assets'
         | 
| 107 | 
            +
             | 
| 108 | 
            +
            gem 'quiet_assets', group: :development
         | 
| 109 | 
            +
             | 
| 110 | 
            +
            # >--------------------------------[ RSpec ]---------------------------------<
         | 
| 111 | 
            +
            @current_recipe = "rspec"
         | 
| 112 | 
            +
            @before_configs["rspec"].call if @before_configs["rspec"]
         | 
| 113 | 
            +
            say_recipe 'RSpec'
         | 
| 114 | 
            +
             | 
| 115 | 
            +
            gem_group :development do
         | 
| 116 | 
            +
              gem 'spring-commands-rspec'
         | 
| 117 | 
            +
              gem 'rails_apps_testing'
         | 
| 118 | 
            +
            end
         | 
| 119 | 
            +
             | 
| 120 | 
            +
            gem_group :development, :test do
         | 
| 121 | 
            +
              gem "rspec-rails"
         | 
| 122 | 
            +
              gem 'factory_girl_rails'
         | 
| 123 | 
            +
              gem 'faker'
         | 
| 124 | 
            +
            end
         | 
| 125 | 
            +
             | 
| 126 | 
            +
            gem_group :test do
         | 
| 127 | 
            +
              gem 'capybara'
         | 
| 128 | 
            +
              gem 'database_cleaner'
         | 
| 129 | 
            +
              gem 'launchy'
         | 
| 130 | 
            +
              gem 'selenium-webdriver'
         | 
| 131 | 
            +
            end
         | 
| 132 | 
            +
             | 
| 133 | 
            +
            rspec_text = <<-TEXT
         | 
| 134 | 
            +
            \n
         | 
| 135 | 
            +
                config.generators do |g|
         | 
| 136 | 
            +
                  g.test_framework :rspec,
         | 
| 137 | 
            +
                  fixtures: true,
         | 
| 138 | 
            +
                  view_specs: false,
         | 
| 139 | 
            +
                  helper_specs: false,
         | 
| 140 | 
            +
                  routing_specs: false,
         | 
| 141 | 
            +
                  controller_specs: true,
         | 
| 142 | 
            +
                  request_specs: false
         | 
| 143 | 
            +
                  g.fixture_replacement :factory_girl, dir: "spec/factories"
         | 
| 144 | 
            +
                end
         | 
| 145 | 
            +
            TEXT
         | 
| 146 | 
            +
             | 
| 147 | 
            +
            after_bundler do
         | 
| 148 | 
            +
              run 'bundle binstubs rspec-core'
         | 
| 149 | 
            +
              generate 'rspec:install'
         | 
| 150 | 
            +
              remove_dir 'test'
         | 
| 151 | 
            +
             | 
| 152 | 
            +
              inject_into_file "config/application.rb", rspec_text, :after => "# config.i18n.default_locale = :de"
         | 
| 153 | 
            +
            end
         | 
| 154 | 
            +
             | 
| 155 | 
            +
            # >---------------------------[ ActiveRecord/Mongoid ]----------------------------<
         | 
| 156 | 
            +
             | 
| 157 | 
            +
            @current_recipe = "database"
         | 
| 158 | 
            +
            @before_configs["activerecord"].call if @before_configs["activerecord"]
         | 
| 159 | 
            +
            say_recipe 'Database'
         | 
| 160 | 
            +
             | 
| 161 | 
            +
            database_option = "activerecord"
         | 
| 162 | 
            +
             | 
| 163 | 
            +
            config = {}
         | 
| 164 | 
            +
            config['database'] = multiple_choice("Which database are you using?", [["MongoDB", "mongoid"], ["MySQL", "mysql"], ["PostgreSQL", "postgresql"], ["SQLite", "sqlite3"]]) if true && true unless config.key?('database')
         | 
| 165 | 
            +
            database_option = config['database']
         | 
| 166 | 
            +
            @configs[@current_recipe] = config
         | 
| 167 | 
            +
             | 
| 168 | 
            +
             | 
| 169 | 
            +
            if config['database']
         | 
| 170 | 
            +
                say_wizard "Configuring '#{config['database']}' database settings..."
         | 
| 171 | 
            +
                @options = @options.dup.merge(:database => config['database'])
         | 
| 172 | 
            +
                say_recipe "Currently selected as #{database_option}"
         | 
| 173 | 
            +
              if database_option != "mongoid"
         | 
| 174 | 
            +
                config['auto_create'] = yes_wizard?("Automatically create database with default configuration?") if true && true unless config.key?('auto_create')
         | 
| 175 | 
            +
                gem gem_for_database
         | 
| 176 | 
            +
                template "config/databases/#{@options[:database]}.yml", "config/database.yml.new"
         | 
| 177 | 
            +
                run 'mv config/database.yml.new config/database.yml'
         | 
| 178 | 
            +
              else
         | 
| 179 | 
            +
                database_option = "mongoid"
         | 
| 180 | 
            +
                gem 'mongoid',  '~> 4.0.0'
         | 
| 181 | 
            +
              end
         | 
| 182 | 
            +
            end
         | 
| 183 | 
            +
             | 
| 184 | 
            +
            after_bundler do
         | 
| 185 | 
            +
              if database_option == "activerecord"
         | 
| 186 | 
            +
                rake "db:create" if config['auto_create']
         | 
| 187 | 
            +
              elsif database_option == "mongoid"
         | 
| 188 | 
            +
                generate 'mongoid:config'
         | 
| 189 | 
            +
              end
         | 
| 190 | 
            +
            end
         | 
| 191 | 
            +
             | 
| 192 | 
            +
            # >--------------------------------[ Devise ]---------------------------------<
         | 
| 193 | 
            +
             | 
| 194 | 
            +
            @current_recipe = "devise"
         | 
| 195 | 
            +
            @before_configs["devise"].call if @before_configs["devise"]
         | 
| 196 | 
            +
            say_recipe 'Devise'
         | 
| 197 | 
            +
             | 
| 198 | 
            +
            gem 'devise'
         | 
| 199 | 
            +
             | 
| 200 | 
            +
            after_bundler do
         | 
| 201 | 
            +
              generate 'devise:install'
         | 
| 202 | 
            +
            end
         | 
| 203 | 
            +
             | 
| 204 | 
            +
            if yes_wizard?("Generate Devise model?")
         | 
| 205 | 
            +
              model_name = ask_wizard("Enter the model name for Devise. Leave it blank to default as User.")
         | 
| 206 | 
            +
              after_bundler do
         | 
| 207 | 
            +
                if model_name.present?
         | 
| 208 | 
            +
                  generate "devise #{model_name}"
         | 
| 209 | 
            +
                else
         | 
| 210 | 
            +
                  generate "devise user"
         | 
| 211 | 
            +
                end
         | 
| 212 | 
            +
              end
         | 
| 213 | 
            +
            end
         | 
| 214 | 
            +
             | 
| 215 | 
            +
            # >--------------------------------[ Active Admin ]---------------------------------<
         | 
| 216 | 
            +
             | 
| 217 | 
            +
            # Disable activeadmin for mongoid at the moment
         | 
| 218 | 
            +
            if config['database'] != "mongoid"
         | 
| 219 | 
            +
              @current_recipe = "activeadmin"
         | 
| 220 | 
            +
              @before_configs["activeadmin"].call if @before_configs["activeadmin"]
         | 
| 221 | 
            +
              say_recipe 'Active Admin'
         | 
| 222 | 
            +
             | 
| 223 | 
            +
              gem 'activeadmin', github: 'activeadmin'
         | 
| 224 | 
            +
             | 
| 225 | 
            +
              if yes_wizard?("Active Admin with Users?(no to skip users)")
         | 
| 226 | 
            +
                model_name = ask_wizard("Enter the model name of ActiveAdmin. Leave it blank to default as AdminUser.")
         | 
| 227 | 
            +
                after_bundler do
         | 
| 228 | 
            +
                  if model_name.present?
         | 
| 229 | 
            +
                    generate "active_admin:install #{model_name}"
         | 
| 230 | 
            +
                  else
         | 
| 231 | 
            +
                    generate "active_admin:install"
         | 
| 232 | 
            +
                  end
         | 
| 233 | 
            +
                end
         | 
| 234 | 
            +
              else
         | 
| 235 | 
            +
                after_bundler do
         | 
| 236 | 
            +
                  generate "active_admin:install --skip-users"
         | 
| 237 | 
            +
                end
         | 
| 238 | 
            +
              end
         | 
| 239 | 
            +
            end
         | 
| 240 | 
            +
             | 
| 241 | 
            +
            # >--------------------------------[ CanCanCan ]---------------------------------<
         | 
| 242 | 
            +
             | 
| 243 | 
            +
            @current_recipe = "cancancan"
         | 
| 244 | 
            +
            @before_configs["cancancan"].call if @before_configs["cancancan"]
         | 
| 245 | 
            +
            say_recipe 'CanCanCan'
         | 
| 246 | 
            +
             | 
| 247 | 
            +
            gem 'cancancan', '~> 1.10'
         | 
| 248 | 
            +
             | 
| 249 | 
            +
            after_bundler do
         | 
| 250 | 
            +
              generate "cancan:ability"
         | 
| 251 | 
            +
            end
         | 
| 252 | 
            +
             | 
| 253 | 
            +
            # >-----------------------------[ Decent Exposure ]------------------------------<
         | 
| 254 | 
            +
             | 
| 255 | 
            +
            @current_recipe = "decent_exposure"
         | 
| 256 | 
            +
            @before_configs["decent_exposure"].call if @before_configs["decent_exposure"]
         | 
| 257 | 
            +
            say_recipe 'Decent Exposure'
         | 
| 258 | 
            +
             | 
| 259 | 
            +
            gem 'decent_exposure', '~> 2.3.2'
         | 
| 260 | 
            +
             | 
| 261 | 
            +
            decent_exposure_strong_parameters = <<-TEXT
         | 
| 262 | 
            +
              \n
         | 
| 263 | 
            +
              decent_configuration do
         | 
| 264 | 
            +
                strategy DecentExposure::StrongParametersStrategy
         | 
| 265 | 
            +
              end
         | 
| 266 | 
            +
            TEXT
         | 
| 267 | 
            +
             | 
| 268 | 
            +
            after_bundler do
         | 
| 269 | 
            +
              inject_into_file "app/controllers/application_controller.rb", decent_exposure_strong_parameters, :after => "protect_from_forgery with: :exception"
         | 
| 270 | 
            +
            end
         | 
| 271 | 
            +
             | 
| 272 | 
            +
            # >--------------------------------[ Paperclip ]---------------------------------<
         | 
| 273 | 
            +
             | 
| 274 | 
            +
            @current_recipe = "paperclip"
         | 
| 275 | 
            +
            @before_configs["paperclip"].call if @before_configs["paperclip"]
         | 
| 276 | 
            +
            say_recipe 'Paperclip'
         | 
| 277 | 
            +
             | 
| 278 | 
            +
            if config['database'] == "mongoid"
         | 
| 279 | 
            +
              gem "mongoid-paperclip", :require => "mongoid_paperclip"
         | 
| 280 | 
            +
              gem 'aws-sdk', '~> 1.3.4'
         | 
| 281 | 
            +
            else
         | 
| 282 | 
            +
              gem "paperclip", "~> 4.2"
         | 
| 283 | 
            +
            end
         | 
| 284 | 
            +
             | 
| 285 | 
            +
            # >--------------------------------[ State Machines ]---------------------------------<
         | 
| 286 | 
            +
             | 
| 287 | 
            +
            @current_recipe = "state_machines"
         | 
| 288 | 
            +
            @before_configs["state_machines"].call if @before_configs["state_machines"]
         | 
| 289 | 
            +
            say_recipe 'State Machines'
         | 
| 290 | 
            +
             | 
| 291 | 
            +
            if config['database'] == "mongoid"
         | 
| 292 | 
            +
              gem 'state_machines-mongoid'
         | 
| 293 | 
            +
            else
         | 
| 294 | 
            +
              gem 'state_machines-activerecord'
         | 
| 295 | 
            +
            end
         | 
| 296 | 
            +
             | 
| 297 | 
            +
            # >--------------------------------[ Delayed Job ]---------------------------------<
         | 
| 298 | 
            +
             | 
| 299 | 
            +
            @current_recipe = "delayed_job"
         | 
| 300 | 
            +
            @before_configs["delayed_job"].call if @before_configs["delayed_job"]
         | 
| 301 | 
            +
            say_recipe 'Delayed Job'
         | 
| 302 | 
            +
             | 
| 303 | 
            +
            if config['database'] == "mongoid"
         | 
| 304 | 
            +
              gem 'delayed_job_mongoid'
         | 
| 305 | 
            +
            else
         | 
| 306 | 
            +
              gem 'delayed_job_active_record'
         | 
| 307 | 
            +
              after_bundler do
         | 
| 308 | 
            +
                generate "delayed_job:active_record"
         | 
| 309 | 
            +
              end
         | 
| 310 | 
            +
            end
         | 
| 311 | 
            +
             | 
| 312 | 
            +
            delayed_job_config = <<-TEXT
         | 
| 313 | 
            +
              \n
         | 
| 314 | 
            +
                config.active_job.queue_adapter = :delayed_job
         | 
| 315 | 
            +
            TEXT
         | 
| 316 | 
            +
             | 
| 317 | 
            +
            after_bundler do
         | 
| 318 | 
            +
              inject_into_file "config/application.rb", delayed_job_config, :after => "# config.i18n.default_locale = :de"
         | 
| 319 | 
            +
            end
         | 
| 320 | 
            +
            # >---------------------------[ Application Views ]------------------------------<
         | 
| 321 | 
            +
            @current_recipe = "application"
         | 
| 322 | 
            +
            @before_configs["application"].call if @before_configs["application"]
         | 
| 323 | 
            +
            say_recipe 'Application Views'
         | 
| 324 | 
            +
             | 
| 325 | 
            +
            application_html_file = <<-TEXT
         | 
| 326 | 
            +
            <!DOCTYPE html>
         | 
| 327 | 
            +
            <!--[if lt IE 7]>      <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
         | 
| 328 | 
            +
            <!--[if IE 7]>         <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
         | 
| 329 | 
            +
            <!--[if IE 8]>         <html class="no-js lt-ie9"> <![endif]-->
         | 
| 330 | 
            +
            <!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->
         | 
| 331 | 
            +
            <html>
         | 
| 332 | 
            +
            <head>
         | 
| 333 | 
            +
              <meta charset="utf-8">
         | 
| 334 | 
            +
              <meta http-equiv="X-UA-Compatible" content="IE=edge">
         | 
| 335 | 
            +
              <meta name="viewport" content="width=device-width, initial-scale=1">
         | 
| 336 | 
            +
              <title>Title</title>
         | 
| 337 | 
            +
              <meta name="description" content="This is the description">
         | 
| 338 | 
            +
              <meta content="width=device-width, initial-scale=1.0" name="viewport">
         | 
| 339 | 
            +
             | 
| 340 | 
            +
              <meta property="og:title" content="Title" />
         | 
| 341 | 
            +
              <meta property="og:type" content="article" />
         | 
| 342 | 
            +
              <meta property="og:url" content="<%= root_url %>" />
         | 
| 343 | 
            +
              <meta property="og:image" content="<%= root_url %>/logo.png" />
         | 
| 344 | 
            +
              <meta property="og:description" content="This is the description" />
         | 
| 345 | 
            +
             | 
| 346 | 
            +
              <%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track' => true %>
         | 
| 347 | 
            +
              <%= csrf_meta_tags %>
         | 
| 348 | 
            +
              <!--[if lt IE 9]>
         | 
| 349 | 
            +
                <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
         | 
| 350 | 
            +
                <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
         | 
| 351 | 
            +
              <![endif]-->
         | 
| 352 | 
            +
            </head>
         | 
| 353 | 
            +
            <body>
         | 
| 354 | 
            +
              <!--[if lt IE 7]>
         | 
| 355 | 
            +
                <p class="browsehappy">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</p>
         | 
| 356 | 
            +
              <![endif]-->
         | 
| 357 | 
            +
              <!-- Google Tag Manager -->
         | 
| 358 | 
            +
              <noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-XXXXXX"
         | 
| 359 | 
            +
              height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
         | 
| 360 | 
            +
              <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
         | 
| 361 | 
            +
              new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
         | 
| 362 | 
            +
              j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
         | 
| 363 | 
            +
              '//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
         | 
| 364 | 
            +
              })(window,document,'script','dataLayer','GTM-XXXXXX');</script>
         | 
| 365 | 
            +
              <!-- End Google Tag Manager -->
         | 
| 366 | 
            +
             | 
| 367 | 
            +
              <%= yield %>
         | 
| 368 | 
            +
              
         | 
| 369 | 
            +
              <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
         | 
| 370 | 
            +
            </body>
         | 
| 371 | 
            +
            </html>
         | 
| 372 | 
            +
            TEXT
         | 
| 373 | 
            +
             | 
| 374 | 
            +
            after_bundler do
         | 
| 375 | 
            +
              remove_file 'app/views/layouts/application.html.erb'
         | 
| 376 | 
            +
              create_file 'app/views/layouts/application.html.erb', application_html_file
         | 
| 377 | 
            +
              say_wizard "--------------------------- APPLICATION VIEWS -----------------------------"
         | 
| 378 | 
            +
              say_wizard "|Please change your GTM, title and meta settings in application.html.erb. |"
         | 
| 379 | 
            +
              say_wizard "---------------------------------------------------------------------------"
         | 
| 380 | 
            +
            end
         | 
| 381 | 
            +
             | 
| 382 | 
            +
            # >--------------------------------[ Paranoia ]-----------------------------------<
         | 
| 383 | 
            +
             | 
| 384 | 
            +
            @current_recipe = "paranoia"
         | 
| 385 | 
            +
            @before_configs["paranoia"].call if @before_configs["paranoia"]
         | 
| 386 | 
            +
            say_recipe 'Paranoia'
         | 
| 387 | 
            +
             | 
| 388 | 
            +
            gem "paranoia", "~> 2.0"
         | 
| 389 | 
            +
             | 
| 390 | 
            +
            # >------------------------[ Better Errors and Hirb ]-----------------------------<
         | 
| 391 | 
            +
             | 
| 392 | 
            +
            @current_recipe = "better_errors"
         | 
| 393 | 
            +
            @before_configs["better_errors"].call if @before_configs["better_errors"]
         | 
| 394 | 
            +
            say_recipe 'Better Errors and Hirb'
         | 
| 395 | 
            +
             | 
| 396 | 
            +
            gem_group :development do
         | 
| 397 | 
            +
              gem "better_errors"
         | 
| 398 | 
            +
              gem "hirb"
         | 
| 399 | 
            +
            end
         | 
| 400 | 
            +
             | 
| 401 | 
            +
            # >-------------------------------[ Setup SASS ]----------------------------------<
         | 
| 402 | 
            +
             | 
| 403 | 
            +
            @current_recipe = "sass"
         | 
| 404 | 
            +
            @before_configs["sass"].call if @before_configs["sass"]
         | 
| 405 | 
            +
            say_recipe 'SASS'
         | 
| 406 | 
            +
             | 
| 407 | 
            +
            after_bundler do
         | 
| 408 | 
            +
              copy_file 'app/assets/stylesheets/application.css', 'app/assets/stylesheets/application.css.scss'
         | 
| 409 | 
            +
              remove_file 'app/assets/stylesheets/application.css'
         | 
| 410 | 
            +
            end
         | 
| 411 | 
            +
             | 
| 412 | 
            +
            # >--------------------------------[ Bootstrap ]---------------------------------<
         | 
| 413 | 
            +
             | 
| 414 | 
            +
            @current_recipe = "bootstrap"
         | 
| 415 | 
            +
            @before_configs["bootstrap"].call if @before_configs["bootstrap"]
         | 
| 416 | 
            +
            say_recipe 'Bootstrap Front End'
         | 
| 417 | 
            +
             | 
| 418 | 
            +
            config_lines = <<-TEXT
         | 
| 419 | 
            +
            @import "bootstrap-sprockets";
         | 
| 420 | 
            +
            @import "bootstrap";
         | 
| 421 | 
            +
            TEXT
         | 
| 422 | 
            +
             | 
| 423 | 
            +
            flash_message = <<-TEXT
         | 
| 424 | 
            +
            <% flash.each do |name, msg| %>
         | 
| 425 | 
            +
              <% 
         | 
| 426 | 
            +
                code = "warning"
         | 
| 427 | 
            +
                desc = "Oh!"
         | 
| 428 | 
            +
                case name.to_s 
         | 
| 429 | 
            +
                when "notice"
         | 
| 430 | 
            +
                  code = "success"
         | 
| 431 | 
            +
                  desc = "Done!" 
         | 
| 432 | 
            +
                when "error"
         | 
| 433 | 
            +
                  code = "danger"
         | 
| 434 | 
            +
                  desc = "Alert!"
         | 
| 435 | 
            +
                when "info"
         | 
| 436 | 
            +
                  code = "info"
         | 
| 437 | 
            +
                  desc = "Info!"
         | 
| 438 | 
            +
                end
         | 
| 439 | 
            +
              %>      
         | 
| 440 | 
            +
              <div class="alert alert-<%= code %>">
         | 
| 441 | 
            +
                  <button type="button" class="close" data-dismiss="alert">x</button>
         | 
| 442 | 
            +
                  <strong><%= desc %></strong> <%= msg %>
         | 
| 443 | 
            +
              </div> 
         | 
| 444 | 
            +
            <% end %>
         | 
| 445 | 
            +
            TEXT
         | 
| 446 | 
            +
             | 
| 447 | 
            +
            use_bootstrap = @configs[@current_recipe] = yes_wizard?("Install and configure Bootstrap?")
         | 
| 448 | 
            +
            if use_bootstrap
         | 
| 449 | 
            +
              gem 'bootstrap-sass', '~> 3.3.4'
         | 
| 450 | 
            +
             | 
| 451 | 
            +
              after_bundler do
         | 
| 452 | 
            +
                append_to_file 'app/assets/stylesheets/application.css.scss', config_lines
         | 
| 453 | 
            +
                insert_into_file "app/assets/javascripts/application.js", :after => %r{//= require +['"]?jquery_ujs['"]?} do
         | 
| 454 | 
            +
                  "\n//= require bootstrap-sprockets"
         | 
| 455 | 
            +
                end
         | 
| 456 | 
            +
                create_file 'app/views/shared/_messages.html.erb', flash_message
         | 
| 457 | 
            +
              end
         | 
| 458 | 
            +
            end
         | 
| 459 | 
            +
             | 
| 460 | 
            +
            # >--------------------------[ jQuery Validation ]-----------------------------<
         | 
| 461 | 
            +
             | 
| 462 | 
            +
            @current_recipe = "jquery-validation-rails"
         | 
| 463 | 
            +
            @before_configs["jquery-validation-rails"].call if @before_configs["jquery-validation-rails"]
         | 
| 464 | 
            +
            say_recipe 'jQuery Validation Rails'
         | 
| 465 | 
            +
             | 
| 466 | 
            +
            gem "jquery-validation-rails"
         | 
| 467 | 
            +
             | 
| 468 | 
            +
            after_bundler do
         | 
| 469 | 
            +
              insert_into_file "app/assets/javascripts/application.js", :after => %r{//= require +['"]?jquery_ujs['"]?} do
         | 
| 470 | 
            +
                "\n//= require jquery.validate\n//= require jquery.validate.additional-methods"
         | 
| 471 | 
            +
              end
         | 
| 472 | 
            +
            end
         | 
| 473 | 
            +
             | 
| 474 | 
            +
            # >--------------------------[ jQuery dataTables ]-----------------------------<
         | 
| 475 | 
            +
             | 
| 476 | 
            +
            @current_recipe = "jquery-datatables-rails"
         | 
| 477 | 
            +
            @before_configs["jquery-datatables-rails"].call if @before_configs["jquery-datatables-rails"]
         | 
| 478 | 
            +
            say_recipe 'jQuery dataTables Rails'
         | 
| 479 | 
            +
             | 
| 480 | 
            +
            gem 'jquery-datatables-rails', '~> 3.2.0'
         | 
| 481 | 
            +
             | 
| 482 | 
            +
            datatable_config_lines_bootstrap = <<-TEXT
         | 
| 483 | 
            +
            @import "dataTables/bootstrap/3/jquery.dataTables.bootstrap";
         | 
| 484 | 
            +
            TEXT
         | 
| 485 | 
            +
             | 
| 486 | 
            +
            datatable_config_lines_non_bootstrap = <<-TEXT
         | 
| 487 | 
            +
            @import "dataTables/jquery.dataTables";
         | 
| 488 | 
            +
            TEXT
         | 
| 489 | 
            +
             | 
| 490 | 
            +
            after_bundler do
         | 
| 491 | 
            +
              after_bundler do
         | 
| 492 | 
            +
                if @configs["bootstrap"] # if bootstrap configuration is true
         | 
| 493 | 
            +
                  say_wizard "Generating Bootstrap 3 dataTables"
         | 
| 494 | 
            +
                  append_to_file 'app/assets/stylesheets/application.css.scss', datatable_config_lines_bootstrap
         | 
| 495 | 
            +
                  insert_into_file "app/assets/javascripts/application.js", :after => %r{//= require +['"]?jquery_ujs['"]?} do
         | 
| 496 | 
            +
                    "\n//= require dataTables/jquery.dataTables\n//= require dataTables/bootstrap/3/jquery.dataTables.bootstrap"
         | 
| 497 | 
            +
                  end
         | 
| 498 | 
            +
                else
         | 
| 499 | 
            +
                  append_to_file 'app/assets/stylesheets/application.css.scss', datatable_config_lines_non_bootstrap
         | 
| 500 | 
            +
                  insert_into_file "app/assets/javascripts/application.js", :after => %r{//= require +['"]?jquery_ujs['"]?} do
         | 
| 501 | 
            +
                    "\n//= require dataTables/jquery.dataTables\n//= require dataTables/bootstrap/3/jquery.dataTables.bootstrap"
         | 
| 502 | 
            +
                  end
         | 
| 503 | 
            +
                end
         | 
| 504 | 
            +
              end
         | 
| 505 | 
            +
            end
         | 
| 506 | 
            +
             | 
| 507 | 
            +
            # >-----------------------------[ Kaminari ]------------------------------<
         | 
| 508 | 
            +
             | 
| 509 | 
            +
            @current_recipe = "kaminari"
         | 
| 510 | 
            +
            @before_configs["kaminari"].call if @before_configs["kaminari"]
         | 
| 511 | 
            +
            say_recipe 'Kaminari'
         | 
| 512 | 
            +
             | 
| 513 | 
            +
            gem 'kaminari'
         | 
| 514 | 
            +
             | 
| 515 | 
            +
            after_bundler do
         | 
| 516 | 
            +
              generate "kaminari:views bootstrap3" if @configs["bootstrap"]
         | 
| 517 | 
            +
            end
         | 
| 518 | 
            +
             | 
| 519 | 
            +
            # >----------------------------------[ Git ]----------------------------------<
         | 
| 520 | 
            +
             | 
| 521 | 
            +
            @current_recipe = "git"
         | 
| 522 | 
            +
            @before_configs["git"].call if @before_configs["git"]
         | 
| 523 | 
            +
            say_recipe 'Git'
         | 
| 524 | 
            +
             | 
| 525 | 
            +
            after_everything do
         | 
| 526 | 
            +
              git :init
         | 
| 527 | 
            +
              git :add => '.'
         | 
| 528 | 
            +
              git :commit => '-m "Initial commit"'
         | 
| 529 | 
            +
            end
         | 
| 530 | 
            +
             | 
| 531 | 
            +
            # >-----------------------------[ Run Bundler ]-------------------------------<
         | 
| 532 | 
            +
            @current_recipe = "bundler"
         | 
| 533 | 
            +
             | 
| 534 | 
            +
            say_wizard "Running Bundler install. This will take a while."
         | 
| 535 | 
            +
            run 'bundle install'
         | 
| 536 | 
            +
            say_wizard "Running after Bundler callbacks."
         | 
| 537 | 
            +
            @after_blocks.each{|b| config = @configs[b[0]] || {}; @current_recipe = b[0]; b[1].call}
         | 
| 538 | 
            +
             | 
| 539 | 
            +
            @current_recipe = nil
         | 
| 540 | 
            +
            say_wizard "Running after everything callbacks."
         | 
| 541 | 
            +
            @after_everything_blocks.each{|b| config = @configs[b[0]] || {}; @current_recipe = b[0]; b[1].call}
         | 
| 542 | 
            +
             | 
| 543 | 
            +
            @current_recipe = nil
         | 
| 544 | 
            +
            say_wizard "==================================FINISH PROCESS================================="
         | 
| @@ -0,0 +1,27 @@ | |
| 1 | 
            +
            # coding: utf-8
         | 
| 2 | 
            +
            lib = File.expand_path('../lib', __FILE__)
         | 
| 3 | 
            +
            $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
         | 
| 4 | 
            +
            require 'rails_baseline/version'
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            Gem::Specification.new do |spec|
         | 
| 7 | 
            +
              spec.name          = "rails_baseline"
         | 
| 8 | 
            +
              spec.version       = RailsBaseline::VERSION
         | 
| 9 | 
            +
              spec.authors       = ["Yoon Wai Yan"]
         | 
| 10 | 
            +
              spec.email         = ["waiyan@cloudcoder.com.my"]
         | 
| 11 | 
            +
              spec.summary       = %q{Rails 4.2 template}
         | 
| 12 | 
            +
              spec.description   = %q{Create baseline rails app with ease. Based on the normal practices by Cloud Coder team.}
         | 
| 13 | 
            +
              spec.homepage      = "https://github.com/cloudcodermy/baseline"
         | 
| 14 | 
            +
              spec.license       = "MIT"
         | 
| 15 | 
            +
             | 
| 16 | 
            +
              spec.files         = `git ls-files -z`.split("\x0")
         | 
| 17 | 
            +
              spec.executables   = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
         | 
| 18 | 
            +
              spec.test_files    = spec.files.grep(%r{^(test|spec|features)/})
         | 
| 19 | 
            +
              spec.require_paths = ["lib"]
         | 
| 20 | 
            +
             | 
| 21 | 
            +
              spec.add_development_dependency "bundler", "~> 1.7"
         | 
| 22 | 
            +
              spec.add_development_dependency "rake", "~> 10.0"
         | 
| 23 | 
            +
             | 
| 24 | 
            +
              spec.add_runtime_dependency 'thor', '~> 0.19', '>= 0.19.1'
         | 
| 25 | 
            +
              spec.add_runtime_dependency 'rails', '~> 4.2', '>= 4.2.0'
         | 
| 26 | 
            +
              spec.add_runtime_dependency 'rspec', '~> 3.2', '>= 3.2.0'
         | 
| 27 | 
            +
            end
         | 
    
        metadata
    ADDED
    
    | @@ -0,0 +1,146 @@ | |
| 1 | 
            +
            --- !ruby/object:Gem::Specification
         | 
| 2 | 
            +
            name: rails_baseline
         | 
| 3 | 
            +
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            +
              version: 0.1.3
         | 
| 5 | 
            +
            platform: ruby
         | 
| 6 | 
            +
            authors:
         | 
| 7 | 
            +
            - Yoon Wai Yan
         | 
| 8 | 
            +
            autorequire: 
         | 
| 9 | 
            +
            bindir: bin
         | 
| 10 | 
            +
            cert_chain: []
         | 
| 11 | 
            +
            date: 2015-04-02 00:00:00.000000000 Z
         | 
| 12 | 
            +
            dependencies:
         | 
| 13 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 14 | 
            +
              name: bundler
         | 
| 15 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 16 | 
            +
                requirements:
         | 
| 17 | 
            +
                - - "~>"
         | 
| 18 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 19 | 
            +
                    version: '1.7'
         | 
| 20 | 
            +
              type: :development
         | 
| 21 | 
            +
              prerelease: false
         | 
| 22 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 23 | 
            +
                requirements:
         | 
| 24 | 
            +
                - - "~>"
         | 
| 25 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 26 | 
            +
                    version: '1.7'
         | 
| 27 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 28 | 
            +
              name: rake
         | 
| 29 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 30 | 
            +
                requirements:
         | 
| 31 | 
            +
                - - "~>"
         | 
| 32 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 33 | 
            +
                    version: '10.0'
         | 
| 34 | 
            +
              type: :development
         | 
| 35 | 
            +
              prerelease: false
         | 
| 36 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 37 | 
            +
                requirements:
         | 
| 38 | 
            +
                - - "~>"
         | 
| 39 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 40 | 
            +
                    version: '10.0'
         | 
| 41 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 42 | 
            +
              name: thor
         | 
| 43 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 44 | 
            +
                requirements:
         | 
| 45 | 
            +
                - - "~>"
         | 
| 46 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 47 | 
            +
                    version: '0.19'
         | 
| 48 | 
            +
                - - ">="
         | 
| 49 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 50 | 
            +
                    version: 0.19.1
         | 
| 51 | 
            +
              type: :runtime
         | 
| 52 | 
            +
              prerelease: false
         | 
| 53 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 54 | 
            +
                requirements:
         | 
| 55 | 
            +
                - - "~>"
         | 
| 56 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 57 | 
            +
                    version: '0.19'
         | 
| 58 | 
            +
                - - ">="
         | 
| 59 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 60 | 
            +
                    version: 0.19.1
         | 
| 61 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 62 | 
            +
              name: rails
         | 
| 63 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 64 | 
            +
                requirements:
         | 
| 65 | 
            +
                - - "~>"
         | 
| 66 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 67 | 
            +
                    version: '4.2'
         | 
| 68 | 
            +
                - - ">="
         | 
| 69 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 70 | 
            +
                    version: 4.2.0
         | 
| 71 | 
            +
              type: :runtime
         | 
| 72 | 
            +
              prerelease: false
         | 
| 73 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 74 | 
            +
                requirements:
         | 
| 75 | 
            +
                - - "~>"
         | 
| 76 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 77 | 
            +
                    version: '4.2'
         | 
| 78 | 
            +
                - - ">="
         | 
| 79 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 80 | 
            +
                    version: 4.2.0
         | 
| 81 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 82 | 
            +
              name: rspec
         | 
| 83 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 84 | 
            +
                requirements:
         | 
| 85 | 
            +
                - - "~>"
         | 
| 86 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 87 | 
            +
                    version: '3.2'
         | 
| 88 | 
            +
                - - ">="
         | 
| 89 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 90 | 
            +
                    version: 3.2.0
         | 
| 91 | 
            +
              type: :runtime
         | 
| 92 | 
            +
              prerelease: false
         | 
| 93 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 94 | 
            +
                requirements:
         | 
| 95 | 
            +
                - - "~>"
         | 
| 96 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 97 | 
            +
                    version: '3.2'
         | 
| 98 | 
            +
                - - ">="
         | 
| 99 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 100 | 
            +
                    version: 3.2.0
         | 
| 101 | 
            +
            description: Create baseline rails app with ease. Based on the normal practices by
         | 
| 102 | 
            +
              Cloud Coder team.
         | 
| 103 | 
            +
            email:
         | 
| 104 | 
            +
            - waiyan@cloudcoder.com.my
         | 
| 105 | 
            +
            executables:
         | 
| 106 | 
            +
            - rails_baseline
         | 
| 107 | 
            +
            extensions: []
         | 
| 108 | 
            +
            extra_rdoc_files: []
         | 
| 109 | 
            +
            files:
         | 
| 110 | 
            +
            - ".gitignore"
         | 
| 111 | 
            +
            - Gemfile
         | 
| 112 | 
            +
            - LICENSE.txt
         | 
| 113 | 
            +
            - README.md
         | 
| 114 | 
            +
            - Rakefile
         | 
| 115 | 
            +
            - bin/rails_baseline
         | 
| 116 | 
            +
            - lib/rails_baseline.rb
         | 
| 117 | 
            +
            - lib/rails_baseline/command.rb
         | 
| 118 | 
            +
            - lib/rails_baseline/recipes.txt
         | 
| 119 | 
            +
            - lib/rails_baseline/template.rb
         | 
| 120 | 
            +
            - lib/rails_baseline/version.rb
         | 
| 121 | 
            +
            - rails_baseline.gemspec
         | 
| 122 | 
            +
            homepage: https://github.com/cloudcodermy/baseline
         | 
| 123 | 
            +
            licenses:
         | 
| 124 | 
            +
            - MIT
         | 
| 125 | 
            +
            metadata: {}
         | 
| 126 | 
            +
            post_install_message: 
         | 
| 127 | 
            +
            rdoc_options: []
         | 
| 128 | 
            +
            require_paths:
         | 
| 129 | 
            +
            - lib
         | 
| 130 | 
            +
            required_ruby_version: !ruby/object:Gem::Requirement
         | 
| 131 | 
            +
              requirements:
         | 
| 132 | 
            +
              - - ">="
         | 
| 133 | 
            +
                - !ruby/object:Gem::Version
         | 
| 134 | 
            +
                  version: '0'
         | 
| 135 | 
            +
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 136 | 
            +
              requirements:
         | 
| 137 | 
            +
              - - ">="
         | 
| 138 | 
            +
                - !ruby/object:Gem::Version
         | 
| 139 | 
            +
                  version: '0'
         | 
| 140 | 
            +
            requirements: []
         | 
| 141 | 
            +
            rubyforge_project: 
         | 
| 142 | 
            +
            rubygems_version: 2.2.2
         | 
| 143 | 
            +
            signing_key: 
         | 
| 144 | 
            +
            specification_version: 4
         | 
| 145 | 
            +
            summary: Rails 4.2 template
         | 
| 146 | 
            +
            test_files: []
         |