rdm 0.4.1 → 0.4.2
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 +4 -4
- data/.travis.yml +2 -1
- data/Gemfile.lock +2 -2
- data/bin/rdm +33 -4
- data/example/.runignore +4 -0
- data/example/configs/app/default.yml +2 -1
- data/example/configs/app/production.yml +2 -1
- data/example/tests/diff_run +32 -0
- data/example/tests/run +42 -0
- data/lib/rdm.rb +4 -0
- data/lib/rdm/cli/config.rb +31 -0
- data/lib/rdm/config_locals.rb +11 -0
- data/lib/rdm/gen/config.rb +61 -0
- data/lib/rdm/gen/package.rb +8 -5
- data/lib/rdm/handlers/template_handler.rb +2 -3
- data/lib/rdm/settings.rb +6 -2
- data/lib/rdm/source.rb +4 -1
- data/lib/rdm/source_composer.rb +38 -0
- data/lib/rdm/spec_runner.rb +14 -2
- data/lib/rdm/spec_runner/runner.rb +35 -20
- data/lib/rdm/spec_runner/view.rb +9 -1
- data/lib/rdm/templates/configs/<%=config_path%> +2 -0
- data/lib/rdm/templates/configs/<%=role_config_path%> +2 -0
- data/lib/rdm/templates/init/.runignore +4 -0
- data/lib/rdm/templates/init/env_files/development.env +3 -1
- data/lib/rdm/templates/init/env_files/production.env +3 -1
- data/lib/rdm/templates/init/env_files/test.env +3 -1
- data/lib/rdm/templates/init/tests/diff_run +6 -3
- data/lib/rdm/templates/init/tests/run +8 -3
- data/lib/rdm/version.rb +1 -1
- data/spec/rdm/gen/config_spec.rb +31 -0
- data/spec/rdm/gen/package_spec.rb +1 -1
- data/spec/rdm/rdm_spec.rb +2 -0
- data/spec/rdm/source_composer_spec.rb +76 -0
- data/spec/spec_helper.rb +13 -5
- metadata +14 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 396c2803b01c338a4c6297bc2f2a5df629d96a9b
         | 
| 4 | 
            +
              data.tar.gz: 45f399f0dd90357c6754fc9c35562b7fc3375b45
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: f65d094c45b7e596bf7bd7950e6a3fa8c167171db762e4e060080f5907c9ad47b4ed0c820951e7f11bac00266634b302b16673e4fc11d246065064c17957f9ab
         | 
| 7 | 
            +
              data.tar.gz: f584ad64900d94cc77e4596245ff006d5a1560f8d77cb2076de5199798bc20e59ea88c911a4f8c2234abdcb44968eded70a4d592e85e51c74b0378689e872b3c
         | 
    
        data/.travis.yml
    CHANGED
    
    
    
        data/Gemfile.lock
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            PATH
         | 
| 2 2 | 
             
              remote: .
         | 
| 3 3 | 
             
              specs:
         | 
| 4 | 
            -
                rdm (0.4. | 
| 4 | 
            +
                rdm (0.4.2)
         | 
| 5 5 | 
             
                  activesupport
         | 
| 6 6 | 
             
                  commander (~> 4.4)
         | 
| 7 7 |  | 
| @@ -25,7 +25,7 @@ GEM | |
| 25 25 | 
             
                diff-lcs (1.3)
         | 
| 26 26 | 
             
                docile (1.1.5)
         | 
| 27 27 | 
             
                highline (1.7.8)
         | 
| 28 | 
            -
                i18n (0.8. | 
| 28 | 
            +
                i18n (0.8.6)
         | 
| 29 29 | 
             
                json (2.0.3)
         | 
| 30 30 | 
             
                minitest (5.10.2)
         | 
| 31 31 | 
             
                parser (2.3.3.1)
         | 
    
        data/bin/rdm
    CHANGED
    
    | @@ -33,7 +33,10 @@ class RdmCliRunner | |
| 33 33 | 
             
                      console:      "irb",
         | 
| 34 34 | 
             
                      current_path: `pwd`.strip
         | 
| 35 35 | 
             
                    }
         | 
| 36 | 
            -
                     | 
| 36 | 
            +
                    options_hash = options.__hash__
         | 
| 37 | 
            +
                    options_hash.delete(:trace)
         | 
| 38 | 
            +
             | 
| 39 | 
            +
                    options_with_defaults = defaults.merge!(options_hash)
         | 
| 37 40 | 
             
                    Rdm::CLI::Init.run(options_with_defaults)
         | 
| 38 41 | 
             
                  end
         | 
| 39 42 | 
             
                end
         | 
| @@ -58,7 +61,10 @@ class RdmCliRunner | |
| 58 61 | 
             
                      package_name: package_name,
         | 
| 59 62 | 
             
                      path:         package_name.downcase.gsub(/\s+/, '_')
         | 
| 60 63 | 
             
                    }
         | 
| 61 | 
            -
                     | 
| 64 | 
            +
                    options_hash = options.__hash__
         | 
| 65 | 
            +
                    options_hash.delete(:trace)
         | 
| 66 | 
            +
             | 
| 67 | 
            +
                    options_with_defaults = defaults.merge!(options_hash)
         | 
| 62 68 | 
             
                    Rdm::CLI::GenPackage.run(options_with_defaults)
         | 
| 63 69 | 
             
                  end
         | 
| 64 70 | 
             
                end
         | 
| @@ -106,10 +112,13 @@ class RdmCliRunner | |
| 106 112 | 
             
                  c.option '--path [DESTINATION_PATH]', String, 'Location of generated folders'
         | 
| 107 113 | 
             
                  c.option '--OPTION_NAME [OPTION_VALUE]', String, 'Local variables for template handler'
         | 
| 108 114 | 
             
                  c.action do |args, options|
         | 
| 109 | 
            -
                    options_hash | 
| 115 | 
            +
                    options_hash  = options.__hash__
         | 
| 116 | 
            +
                    options_hash.delete(:trace)
         | 
| 117 | 
            +
                    
         | 
| 118 | 
            +
                    template_name = args.first || ""
         | 
| 110 119 |  | 
| 111 120 | 
             
                    Rdm::CLI::TemplateGenerator.run(
         | 
| 112 | 
            -
                      template_name:  | 
| 121 | 
            +
                      template_name: template_name,
         | 
| 113 122 | 
             
                      current_path:  `pwd`.chomp,
         | 
| 114 123 | 
             
                      local_path:    options_hash.delete(:path),
         | 
| 115 124 | 
             
                      locals:        options_hash
         | 
| @@ -133,6 +142,26 @@ class RdmCliRunner | |
| 133 142 | 
             
                  end
         | 
| 134 143 | 
             
                end
         | 
| 135 144 |  | 
| 145 | 
            +
                command :"gen.config" do |c|
         | 
| 146 | 
            +
                  c.syntax = 'rdm gen.config CONFIG_NAME --CONFIG_KEY=CONFIG_VALUE'
         | 
| 147 | 
            +
                  c.description = 'generate config file with passed arguments'
         | 
| 148 | 
            +
                  c.summary = '> ' + c.description
         | 
| 149 | 
            +
                  c.example 'generate config `mailing_system` with `host: localhost`', 
         | 
| 150 | 
            +
                            'rdm gen.config mailing_system --host=localhost'
         | 
| 151 | 
            +
                  
         | 
| 152 | 
            +
                  c.action do |args, options|
         | 
| 153 | 
            +
                    config_name  = args.first || ""
         | 
| 154 | 
            +
                    options_hash = options.__hash__
         | 
| 155 | 
            +
                    options_hash.delete(:trace)
         | 
| 156 | 
            +
             | 
| 157 | 
            +
                    Rdm::CLI::Config.run(
         | 
| 158 | 
            +
                      config_name:  config_name,
         | 
| 159 | 
            +
                      current_path: `pwd`.chomp,
         | 
| 160 | 
            +
                      config_data:  options_hash
         | 
| 161 | 
            +
                    )
         | 
| 162 | 
            +
                  end
         | 
| 163 | 
            +
                end
         | 
| 164 | 
            +
             | 
| 136 165 | 
             
                run!
         | 
| 137 166 | 
             
              end
         | 
| 138 167 | 
             
            end
         | 
    
        data/example/.runignore
    ADDED
    
    
| @@ -1 +1,2 @@ | |
| 1 | 
            -
             | 
| 1 | 
            +
            app:
         | 
| 2 | 
            +
              name: "Sample app"
         | 
| @@ -1 +1,2 @@ | |
| 1 | 
            -
             | 
| 1 | 
            +
            app:
         | 
| 2 | 
            +
              name: "Sample app (Production)"
         | 
    
        data/example/tests/diff_run
    CHANGED
    
    | @@ -0,0 +1,32 @@ | |
| 1 | 
            +
            #!/usr/bin/env ruby
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            ENV['RUBY_ENV'] = 'test'
         | 
| 4 | 
            +
            require 'rdm'
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            REVISION = ARGV.clone.first
         | 
| 7 | 
            +
            PATH     = File.expand_path(__FILE__)
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            begin
         | 
| 10 | 
            +
              changed_packages = Rdm::Handlers::DiffPackageHandler.handle(
         | 
| 11 | 
            +
                path:     PATH, 
         | 
| 12 | 
            +
                revision: REVISION
         | 
| 13 | 
            +
              )
         | 
| 14 | 
            +
             | 
| 15 | 
            +
              puts "Tests for the following packages will run:"
         | 
| 16 | 
            +
              puts changed_packages
         | 
| 17 | 
            +
             | 
| 18 | 
            +
              changed_packages.each do |package| 
         | 
| 19 | 
            +
                Rdm::SpecRunner.run(
         | 
| 20 | 
            +
                  package:               package,
         | 
| 21 | 
            +
                  path:                  PATH,
         | 
| 22 | 
            +
                  show_missing_packages: false
         | 
| 23 | 
            +
                )
         | 
| 24 | 
            +
              end
         | 
| 25 | 
            +
              
         | 
| 26 | 
            +
             | 
| 27 | 
            +
            rescue Rdm::Errors::GitRepositoryNotInitialized
         | 
| 28 | 
            +
              puts "Git repository is not initialized. Use `git init .`"
         | 
| 29 | 
            +
              exit(1)
         | 
| 30 | 
            +
            end
         | 
| 31 | 
            +
             | 
| 32 | 
            +
             | 
    
        data/example/tests/run
    CHANGED
    
    | @@ -0,0 +1,42 @@ | |
| 1 | 
            +
            #!/usr/bin/env ruby
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            ## # run own tests:
         | 
| 4 | 
            +
            ## $ TEST_RUN=1 tests/run
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            ## # run application tests:
         | 
| 7 | 
            +
            ## $ tests/run
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            ## # run package tests:
         | 
| 10 | 
            +
            ## $ tests/run commands
         | 
| 11 | 
            +
             | 
| 12 | 
            +
            ## # run spec in a package:
         | 
| 13 | 
            +
            ## $ tests/run commands some_spec.rb
         | 
| 14 | 
            +
             | 
| 15 | 
            +
            ENV['RUBY_ENV'] = 'test'
         | 
| 16 | 
            +
            require 'rdm'
         | 
| 17 | 
            +
             | 
| 18 | 
            +
            runignore_path = File.expand_path(File.join(File.dirname(Rdm.root(__FILE__)), '.runignore'))
         | 
| 19 | 
            +
            skipped_packages = File.open(runignore_path).each_line.inject([]) { |all, line| all.push(line.chomp!) }
         | 
| 20 | 
            +
             | 
| 21 | 
            +
            if ENV['TEST_RUN']
         | 
| 22 | 
            +
              require 'minitest/autorun'
         | 
| 23 | 
            +
              describe Rdm::SpecRunner::Runner do
         | 
| 24 | 
            +
                before do
         | 
| 25 | 
            +
                  @runner = Rdm::SpecRunner::Runner.new({})
         | 
| 26 | 
            +
                end
         | 
| 27 | 
            +
             | 
| 28 | 
            +
                describe 'works ' do
         | 
| 29 | 
            +
                  it 'assert true' do
         | 
| 30 | 
            +
                    assert 2 == 2
         | 
| 31 | 
            +
                  end
         | 
| 32 | 
            +
                end
         | 
| 33 | 
            +
              end
         | 
| 34 | 
            +
            else
         | 
| 35 | 
            +
              Rdm::SpecRunner.run(
         | 
| 36 | 
            +
                package:          ARGV.clone.first,
         | 
| 37 | 
            +
                spec_matcher:     ARGV.clone.last,
         | 
| 38 | 
            +
                path:             File.expand_path(__FILE__),
         | 
| 39 | 
            +
                skipped_packages: skipped_packages,
         | 
| 40 | 
            +
                show_missing_packages: true
         | 
| 41 | 
            +
              )
         | 
| 42 | 
            +
            end
         | 
    
        data/lib/rdm.rb
    CHANGED
    
    | @@ -15,6 +15,7 @@ module Rdm | |
| 15 15 | 
             
              require 'rdm/cli/diff_package'
         | 
| 16 16 | 
             
              require 'rdm/cli/template_generator'
         | 
| 17 17 | 
             
              require 'rdm/cli/dependencies_controller'
         | 
| 18 | 
            +
              require 'rdm/cli/config'
         | 
| 18 19 |  | 
| 19 20 | 
             
              # Runtime part
         | 
| 20 21 | 
             
              require 'rdm/config'
         | 
| @@ -27,10 +28,12 @@ module Rdm | |
| 27 28 | 
             
              require 'rdm/settings'
         | 
| 28 29 | 
             
              require 'rdm/source'
         | 
| 29 30 | 
             
              require 'rdm/source_parser'
         | 
| 31 | 
            +
              require 'rdm/source_composer'
         | 
| 30 32 | 
             
              require 'rdm/source_locator'
         | 
| 31 33 | 
             
              require 'rdm/git/diff_manager'
         | 
| 32 34 | 
             
              require 'rdm/git/diff_command'
         | 
| 33 35 | 
             
              require 'rdm/git/repository_locator'
         | 
| 36 | 
            +
              require 'rdm/config_locals'
         | 
| 34 37 |  | 
| 35 38 | 
             
              # Package part
         | 
| 36 39 | 
             
              require 'rdm/packages/compiler_service'
         | 
| @@ -39,6 +42,7 @@ module Rdm | |
| 39 42 | 
             
              # Handlers part
         | 
| 40 43 | 
             
              require 'rdm/gen/package'
         | 
| 41 44 | 
             
              require 'rdm/gen/init'
         | 
| 45 | 
            +
              require 'rdm/gen/config'
         | 
| 42 46 | 
             
              require 'rdm/handlers/diff_package_handler'
         | 
| 43 47 | 
             
              require 'rdm/handlers/template_handler'
         | 
| 44 48 | 
             
              require 'rdm/handlers/dependencies_handler'
         | 
| @@ -0,0 +1,31 @@ | |
| 1 | 
            +
            class Rdm::CLI::Config
         | 
| 2 | 
            +
              def self.run(current_path:, config_name:, config_data: {}, stdout: $stdout)
         | 
| 3 | 
            +
                Rdm::CLI::Config.new(current_path, config_name, config_data, stdout).run
         | 
| 4 | 
            +
              end
         | 
| 5 | 
            +
             | 
| 6 | 
            +
              def initialize(current_path, config_name, config_data, stdout)
         | 
| 7 | 
            +
                @current_path = current_path
         | 
| 8 | 
            +
                @config_name  = config_name
         | 
| 9 | 
            +
                @config_data  = config_data
         | 
| 10 | 
            +
                @stdout       = stdout
         | 
| 11 | 
            +
              end
         | 
| 12 | 
            +
             | 
| 13 | 
            +
              def run
         | 
| 14 | 
            +
                generated_files = Rdm::Gen::Config.generate(
         | 
| 15 | 
            +
                  current_path: @current_path,
         | 
| 16 | 
            +
                  config_name:  @config_name,
         | 
| 17 | 
            +
                  config_data:  @config_data
         | 
| 18 | 
            +
                )
         | 
| 19 | 
            +
             | 
| 20 | 
            +
                puts "Following files were generated:"
         | 
| 21 | 
            +
                puts generated_files
         | 
| 22 | 
            +
              rescue Errno::ENOENT => e
         | 
| 23 | 
            +
                @stdout.puts "Error occurred. Possible reasons:\n #{Rdm::SOURCE_FILENAME} not found. Please run on directory containing #{Rdm::SOURCE_FILENAME} \n#{e.inspect}"
         | 
| 24 | 
            +
              rescue NoMethodError => e
         | 
| 25 | 
            +
                @stdout.puts e.message
         | 
| 26 | 
            +
              rescue Rdm::Errors::SourceFileDoesNotExist => e
         | 
| 27 | 
            +
                @stdout.puts "Rdm.packages was not found. Run 'rdm init' to create it"
         | 
| 28 | 
            +
              rescue Rdm::Errors::ConfigExists => e
         | 
| 29 | 
            +
                @stdout.puts "Config :#{e.message} already exists! Use other name"
         | 
| 30 | 
            +
              end
         | 
| 31 | 
            +
            end
         | 
| @@ -0,0 +1,61 @@ | |
| 1 | 
            +
            class Rdm::Gen::Config
         | 
| 2 | 
            +
              TEMPLATE_NAME = 'configs'
         | 
| 3 | 
            +
             | 
| 4 | 
            +
              def self.generate(config_name:, current_path:, config_data: {})
         | 
| 5 | 
            +
                Rdm::Gen::Config.new(config_name, current_path, config_data = {}).generate
         | 
| 6 | 
            +
              end
         | 
| 7 | 
            +
             | 
| 8 | 
            +
              def initialize(config_name, current_path, config_data)
         | 
| 9 | 
            +
                @current_path = current_path
         | 
| 10 | 
            +
                @config_name  = config_name
         | 
| 11 | 
            +
                @source       = get_source
         | 
| 12 | 
            +
             | 
| 13 | 
            +
                @config_locals  = Rdm::ConfigLocals.new(config_data)
         | 
| 14 | 
            +
              end
         | 
| 15 | 
            +
             | 
| 16 | 
            +
              def generate
         | 
| 17 | 
            +
                @source.config(@config_name)
         | 
| 18 | 
            +
             | 
| 19 | 
            +
                @locals = {
         | 
| 20 | 
            +
                  config_name:      @config_name,
         | 
| 21 | 
            +
                  config_locals:    @config_locals,
         | 
| 22 | 
            +
                  config_path:      config_path(@config_name),
         | 
| 23 | 
            +
                  role_config_path: role_config_path(@config_name)
         | 
| 24 | 
            +
                }
         | 
| 25 | 
            +
             | 
| 26 | 
            +
                generated_files = Rdm::Handlers::TemplateHandler.generate(
         | 
| 27 | 
            +
                  current_path:       @current_path,
         | 
| 28 | 
            +
                  locals:             @locals,
         | 
| 29 | 
            +
                  template_name:      TEMPLATE_NAME,
         | 
| 30 | 
            +
                  local_path:         './'
         | 
| 31 | 
            +
                )
         | 
| 32 | 
            +
             | 
| 33 | 
            +
                Rdm::SourceComposer.run(@source)
         | 
| 34 | 
            +
                
         | 
| 35 | 
            +
                generated_files
         | 
| 36 | 
            +
              end
         | 
| 37 | 
            +
             | 
| 38 | 
            +
              private 
         | 
| 39 | 
            +
             | 
| 40 | 
            +
              def get_source
         | 
| 41 | 
            +
                @source ||= Rdm::SourceParser.read_and_init_source(Rdm::SourceLocator.locate(@current_path))
         | 
| 42 | 
            +
              end
         | 
| 43 | 
            +
             | 
| 44 | 
            +
              def config_path(config_name)
         | 
| 45 | 
            +
                Rdm.settings.read_setting(
         | 
| 46 | 
            +
                  :config_path, 
         | 
| 47 | 
            +
                  vars: { 
         | 
| 48 | 
            +
                    config_name: config_name
         | 
| 49 | 
            +
                  }
         | 
| 50 | 
            +
                )
         | 
| 51 | 
            +
              end
         | 
| 52 | 
            +
             | 
| 53 | 
            +
              def role_config_path(config_name)
         | 
| 54 | 
            +
                Rdm.settings.read_setting(
         | 
| 55 | 
            +
                  :role_config_path, 
         | 
| 56 | 
            +
                  vars: { 
         | 
| 57 | 
            +
                    config_name: config_name
         | 
| 58 | 
            +
                  }
         | 
| 59 | 
            +
                )
         | 
| 60 | 
            +
              end
         | 
| 61 | 
            +
            end
         | 
    
        data/lib/rdm/gen/package.rb
    CHANGED
    
    | @@ -17,14 +17,17 @@ module Rdm | |
| 17 17 | 
             
                    @package_name = package_name
         | 
| 18 18 | 
             
                    @local_path   = local_path
         | 
| 19 19 | 
             
                    @locals       = locals
         | 
| 20 | 
            +
                    @source       = get_source
         | 
| 20 21 | 
             
                  end
         | 
| 21 22 |  | 
| 22 23 | 
             
                  def create
         | 
| 23 | 
            -
                     | 
| 24 | 
            -
                    raise Rdm::Errors::PackageNameNotSpecified           if @package_name.nil? || @package_name.empty?
         | 
| 25 | 
            -
                    raise Rdm::Errors::PackageExists                     if source.packages.keys.include?(@package_name)
         | 
| 24 | 
            +
                    @source.package(@local_path)
         | 
| 26 25 |  | 
| 27 | 
            -
                     | 
| 26 | 
            +
                    raise Rdm::Errors::PackageDirExists.new(@local_path) if Dir.exist?(File.join(@source.root_path, @local_path))
         | 
| 27 | 
            +
                    raise Rdm::Errors::PackageNameNotSpecified           if @package_name.nil? || @package_name.empty?
         | 
| 28 | 
            +
                    raise Rdm::Errors::PackageExists                     if @source.packages.keys.include?(@package_name)
         | 
| 29 | 
            +
                    
         | 
| 30 | 
            +
                    Rdm::SourceComposer.run(@source)
         | 
| 28 31 |  | 
| 29 32 | 
             
                    Rdm::Handlers::TemplateHandler.generate(
         | 
| 30 33 | 
             
                      template_name: TEMPLATE_NAME,
         | 
| @@ -34,7 +37,7 @@ module Rdm | |
| 34 37 | 
             
                    )
         | 
| 35 38 | 
             
                  end
         | 
| 36 39 |  | 
| 37 | 
            -
                  def  | 
| 40 | 
            +
                  def get_source
         | 
| 38 41 | 
             
                    @source ||= Rdm::SourceParser.read_and_init_source(Rdm::SourceLocator.locate(@current_path))
         | 
| 39 42 | 
             
                  end
         | 
| 40 43 | 
             
                end
         | 
| @@ -79,7 +79,7 @@ module Rdm | |
| 79 79 | 
             
                    template_files_list.map! do |path|
         | 
| 80 80 | 
             
                      rendered_abs_path = Rdm::Templates::TemplateRenderer.handle(get_destination_path(path), @locals)
         | 
| 81 81 | 
             
                      rendered_rel_path = Pathname.new(rendered_abs_path).relative_path_from Pathname.new(project_path)
         | 
| 82 | 
            -
             | 
| 82 | 
            +
             | 
| 83 83 | 
             
                      if File.file?(rendered_abs_path) && File.exists?(rendered_abs_path)
         | 
| 84 84 | 
             
                        @stdout.puts "Warning! #{rendered_rel_path} already exists. Skipping file creation..."
         | 
| 85 85 | 
             
                        next
         | 
| @@ -89,12 +89,11 @@ module Rdm | |
| 89 89 | 
             
                        FileUtils.mkdir_p rendered_abs_path
         | 
| 90 90 | 
             
                        next
         | 
| 91 91 | 
             
                      end
         | 
| 92 | 
            -
             | 
| 92 | 
            +
             | 
| 93 93 | 
             
                      rendered_file_content = handle_file_content?(path) ?
         | 
| 94 94 | 
             
                        Rdm::Templates::TemplateRenderer.handle(File.read(path), @locals) :
         | 
| 95 95 | 
             
                        File.read(path)
         | 
| 96 96 |  | 
| 97 | 
            -
                        
         | 
| 98 97 | 
             
                      FileUtils.mkdir_p(File.dirname(rendered_abs_path))
         | 
| 99 98 | 
             
                      File.open(rendered_abs_path, 'w') { |f| f.write rendered_file_content }
         | 
| 100 99 |  | 
    
        data/lib/rdm/settings.rb
    CHANGED
    
    | @@ -1,4 +1,6 @@ | |
| 1 1 | 
             
            class Rdm::Settings
         | 
| 2 | 
            +
              attr_reader :settings
         | 
| 3 | 
            +
             | 
| 2 4 | 
             
              SETTING_KEYS = [
         | 
| 3 5 | 
             
                :role, :package_subdir_name, :configs_dir, :config_path, :role_config_path,
         | 
| 4 6 | 
             
                :silence_missing_package_file, :silence_missing_package, :compile_path,
         | 
| @@ -24,13 +26,14 @@ class Rdm::Settings | |
| 24 26 | 
             
                ])
         | 
| 25 27 | 
             
                compile_add_files([
         | 
| 26 28 | 
             
                  'Gemfile',
         | 
| 27 | 
            -
                  'Gemfile.lock' | 
| 29 | 
            +
                  'Gemfile.lock'
         | 
| 28 30 | 
             
                ])
         | 
| 29 31 | 
             
                compile_path('/tmp/rdm/:package_name')
         | 
| 30 32 | 
             
              end
         | 
| 31 33 |  | 
| 32 34 | 
             
              SETTING_KEYS.each do |key|
         | 
| 33 35 | 
             
                define_method(key) do |value = nil, &block|
         | 
| 36 | 
            +
                  # debugger if key == :compile_ignore_files
         | 
| 34 37 | 
             
                  fetch_setting key, value, &block
         | 
| 35 38 | 
             
                end
         | 
| 36 39 | 
             
              end
         | 
| @@ -39,7 +42,8 @@ class Rdm::Settings | |
| 39 42 | 
             
                if value.nil? && !block_given?
         | 
| 40 43 | 
             
                  read_setting(key)
         | 
| 41 44 | 
             
                else
         | 
| 42 | 
            -
                   | 
| 45 | 
            +
                  write_value = value.nil? ? block : value
         | 
| 46 | 
            +
                  write_setting(key, write_value)
         | 
| 43 47 | 
             
                end
         | 
| 44 48 | 
             
              end
         | 
| 45 49 |  | 
    
        data/lib/rdm/source.rb
    CHANGED
    
    | @@ -16,7 +16,10 @@ class Rdm::Source | |
| 16 16 | 
             
              # Add config to list of known configs
         | 
| 17 17 | 
             
              # @param config_name [String] Config name
         | 
| 18 18 | 
             
              def config(config_name)
         | 
| 19 | 
            -
                 | 
| 19 | 
            +
                config_name = config_name.to_s
         | 
| 20 | 
            +
                raise Rdm::Errors::ConfigExists, config_name if @config_names.include?(config_name)
         | 
| 21 | 
            +
             | 
| 22 | 
            +
                @config_names << config_name
         | 
| 20 23 | 
             
              end
         | 
| 21 24 |  | 
| 22 25 | 
             
              # Add package to list of known packages
         | 
| @@ -0,0 +1,38 @@ | |
| 1 | 
            +
            class Rdm::SourceComposer
         | 
| 2 | 
            +
              def self.run(source)
         | 
| 3 | 
            +
                Rdm::SourceComposer.new(source).run
         | 
| 4 | 
            +
              end
         | 
| 5 | 
            +
             | 
| 6 | 
            +
              def initialize(source)
         | 
| 7 | 
            +
                @source  = source
         | 
| 8 | 
            +
                @content = []
         | 
| 9 | 
            +
              end
         | 
| 10 | 
            +
             | 
| 11 | 
            +
              def run
         | 
| 12 | 
            +
                @content.push "setup do"
         | 
| 13 | 
            +
                Rdm.settings.settings.each do |setting, value|
         | 
| 14 | 
            +
                  @content.push "  #{setting} #{format_value(value)}"
         | 
| 15 | 
            +
                end
         | 
| 16 | 
            +
                @content.push "end"
         | 
| 17 | 
            +
                
         | 
| 18 | 
            +
                @content.push "\n"
         | 
| 19 | 
            +
             | 
| 20 | 
            +
                @source.config_names.each do |config, _|
         | 
| 21 | 
            +
                  @content.push "config :#{config}"
         | 
| 22 | 
            +
                end
         | 
| 23 | 
            +
             | 
| 24 | 
            +
                @content.push "\n"
         | 
| 25 | 
            +
             | 
| 26 | 
            +
                @source.package_paths.each do |package, _|
         | 
| 27 | 
            +
                  @content.push "package \"#{package}\""
         | 
| 28 | 
            +
                end
         | 
| 29 | 
            +
             | 
| 30 | 
            +
                File.open(Rdm.root(@source.root_path), 'w') {|f| f.puts @content}
         | 
| 31 | 
            +
              end
         | 
| 32 | 
            +
             | 
| 33 | 
            +
              def format_value(value)
         | 
| 34 | 
            +
                return "\"#{value}\""  if value.is_a?(String)
         | 
| 35 | 
            +
                
         | 
| 36 | 
            +
                value.to_s
         | 
| 37 | 
            +
              end
         | 
| 38 | 
            +
            end
         | 
    
        data/lib/rdm/spec_runner.rb
    CHANGED
    
    | @@ -1,5 +1,17 @@ | |
| 1 1 | 
             
            module Rdm::SpecRunner
         | 
| 2 | 
            -
              def self.run( | 
| 3 | 
            -
                 | 
| 2 | 
            +
              def self.run(
         | 
| 3 | 
            +
                path:                  nil, 
         | 
| 4 | 
            +
                package:               nil, 
         | 
| 5 | 
            +
                spec_matcher:          nil, 
         | 
| 6 | 
            +
                show_missing_packages: nil, 
         | 
| 7 | 
            +
                skipped_packages:      []
         | 
| 8 | 
            +
              )
         | 
| 9 | 
            +
                Rdm::SpecRunner::Runner.new(
         | 
| 10 | 
            +
                  path:                  path, 
         | 
| 11 | 
            +
                  package:               package, 
         | 
| 12 | 
            +
                  spec_matcher:          spec_matcher, 
         | 
| 13 | 
            +
                  show_missing_packages: show_missing_packages,
         | 
| 14 | 
            +
                  skipped_packages:      skipped_packages
         | 
| 15 | 
            +
                ).run
         | 
| 4 16 | 
             
              end
         | 
| 5 17 | 
             
            end
         | 
| @@ -1,20 +1,28 @@ | |
| 1 1 | 
             
            class Rdm::SpecRunner::Runner
         | 
| 2 | 
            -
              attr_accessor : | 
| 2 | 
            +
              attr_accessor :no_specs_packages
         | 
| 3 3 | 
             
              attr_accessor :prepared_command_params
         | 
| 4 4 | 
             
              attr_accessor :command
         | 
| 5 5 |  | 
| 6 | 
            -
              def initialize( | 
| 7 | 
            -
                 | 
| 8 | 
            -
                 | 
| 9 | 
            -
                 | 
| 10 | 
            -
                 | 
| 11 | 
            -
                 | 
| 6 | 
            +
              def initialize(
         | 
| 7 | 
            +
                package:               nil, 
         | 
| 8 | 
            +
                spec_matcher:          nil, 
         | 
| 9 | 
            +
                path:                  nil, 
         | 
| 10 | 
            +
                show_missing_packages: nil,
         | 
| 11 | 
            +
                skipped_packages:      []
         | 
| 12 | 
            +
              )
         | 
| 13 | 
            +
                @package               = package,
         | 
| 14 | 
            +
                @spec_matcher          = spec_matcher.to_s
         | 
| 15 | 
            +
                @no_specs_packages     = []
         | 
| 16 | 
            +
                @skipped_packages      = skipped_packages
         | 
| 17 | 
            +
                @path                  = path
         | 
| 18 | 
            +
                @run_all               = @package.nil?
         | 
| 19 | 
            +
                @show_missing_packages = show_missing_packages
         | 
| 12 20 | 
             
              end
         | 
| 13 21 |  | 
| 14 22 | 
             
              def run
         | 
| 15 23 | 
             
                prepare!
         | 
| 16 24 | 
             
                check_input_params!
         | 
| 17 | 
            -
                display_missing_specs
         | 
| 25 | 
            +
                display_missing_specs if @show_missing_packages
         | 
| 18 26 | 
             
                execute_command
         | 
| 19 27 | 
             
              end
         | 
| 20 28 |  | 
| @@ -44,7 +52,7 @@ class Rdm::SpecRunner::Runner | |
| 44 52 | 
             
                    )
         | 
| 45 53 | 
             
                  end
         | 
| 46 54 |  | 
| 47 | 
            -
                  if  | 
| 55 | 
            +
                  if no_specs_packages.include?(@package_name)
         | 
| 48 56 | 
             
                    exit_with_message(
         | 
| 49 57 | 
             
                      view.no_specs_for_package(@package_name)
         | 
| 50 58 | 
             
                    )
         | 
| @@ -60,10 +68,10 @@ class Rdm::SpecRunner::Runner | |
| 60 68 |  | 
| 61 69 | 
             
              def prepare!
         | 
| 62 70 | 
             
                prepared_command_params = []
         | 
| 63 | 
            -
                 | 
| 71 | 
            +
                no_specs_packages       = []
         | 
| 64 72 | 
             
                command                 = nil
         | 
| 65 73 | 
             
                prepare_command_params
         | 
| 66 | 
            -
                 | 
| 74 | 
            +
                prepare_no_specs_packages
         | 
| 67 75 | 
             
                prepare_command
         | 
| 68 76 | 
             
              end
         | 
| 69 77 |  | 
| @@ -77,10 +85,10 @@ class Rdm::SpecRunner::Runner | |
| 77 85 | 
             
                end
         | 
| 78 86 | 
             
              end
         | 
| 79 87 |  | 
| 80 | 
            -
              def  | 
| 88 | 
            +
              def prepare_no_specs_packages
         | 
| 81 89 | 
             
                prepared_command_params
         | 
| 82 90 | 
             
                  .select { |cp| cp.spec_count == 0 }
         | 
| 83 | 
            -
                  .map { |cp|  | 
| 91 | 
            +
                  .map { |cp| no_specs_packages << cp.package_name }
         | 
| 84 92 | 
             
              end
         | 
| 85 93 |  | 
| 86 94 | 
             
              def prepare_command
         | 
| @@ -101,17 +109,24 @@ class Rdm::SpecRunner::Runner | |
| 101 109 | 
             
              end
         | 
| 102 110 |  | 
| 103 111 | 
             
              def prepare_command_for_packages(packages_command_params)
         | 
| 104 | 
            -
                packages_command_params | 
| 105 | 
            -
                  cmd_params.spec_count > 0
         | 
| 106 | 
            -
             | 
| 107 | 
            -
                  - cmd_params.spec_count
         | 
| 108 | 
            -
             | 
| 112 | 
            +
                packages_command_params
         | 
| 113 | 
            +
                  .select  { |cmd_params| cmd_params.spec_count > 0 }
         | 
| 114 | 
            +
                  .reject  { |cmd_params| @skipped_packages.include?(cmd_params.package_name) }
         | 
| 115 | 
            +
                  .sort_by { |cmd_params| - cmd_params.spec_count }
         | 
| 116 | 
            +
                  .map(&:command)
         | 
| 117 | 
            +
                  .join(' && ')
         | 
| 109 118 | 
             
              end
         | 
| 110 119 |  | 
| 111 120 | 
             
              def display_missing_specs
         | 
| 112 | 
            -
                unless  | 
| 113 | 
            -
                  print_message view.missing_specs_message( | 
| 121 | 
            +
                unless no_specs_packages.empty?
         | 
| 122 | 
            +
                  print_message view.missing_specs_message(no_specs_packages)
         | 
| 114 123 | 
             
                end
         | 
| 124 | 
            +
             | 
| 125 | 
            +
                unless @skipped_packages.empty?
         | 
| 126 | 
            +
                  print_message view.skipping_specs_message(@skipped_packages)
         | 
| 127 | 
            +
                end
         | 
| 128 | 
            +
             | 
| 129 | 
            +
                print_message view.specs_header_message
         | 
| 115 130 | 
             
              end
         | 
| 116 131 |  | 
| 117 132 | 
             
              def execute_command
         | 
    
        data/lib/rdm/spec_runner/view.rb
    CHANGED
    
    | @@ -11,7 +11,15 @@ class Rdm::SpecRunner::View | |
| 11 11 | 
             
              end
         | 
| 12 12 |  | 
| 13 13 | 
             
              def missing_specs_message(skipped_packages)
         | 
| 14 | 
            -
                "NO SPECS FOUND FOR PACKAGES: \n#{skipped_packages.map { |x| " - #{x}" }.join("\n")}\n\n | 
| 14 | 
            +
                "NO SPECS FOUND FOR PACKAGES: \n#{skipped_packages.map { |x| " - #{x}" }.join("\n")}\n\n"
         | 
| 15 | 
            +
              end
         | 
| 16 | 
            +
             | 
| 17 | 
            +
              def skipping_specs_message(skipped_packages)
         | 
| 18 | 
            +
                "FOLLOWING PACKAGES WERE SKIPPED BY .runignore FILE: \n#{skipped_packages.map { |x| " - #{x}" }.join("\n")}\n\n"
         | 
| 19 | 
            +
              end
         | 
| 20 | 
            +
             | 
| 21 | 
            +
              def specs_header_message
         | 
| 22 | 
            +
                "**** SPECS *****"
         | 
| 15 23 | 
             
              end
         | 
| 16 24 |  | 
| 17 25 | 
             
              def no_specs_for_package(package_name)
         | 
| @@ -12,14 +12,17 @@ begin | |
| 12 12 | 
             
                revision: REVISION
         | 
| 13 13 | 
             
              )
         | 
| 14 14 |  | 
| 15 | 
            -
              puts " | 
| 15 | 
            +
              puts "Tests for the following packages will run:"
         | 
| 16 | 
            +
              puts changed_packages
         | 
| 16 17 |  | 
| 17 18 | 
             
              changed_packages.each do |package| 
         | 
| 18 19 | 
             
                Rdm::SpecRunner.run(
         | 
| 19 | 
            -
                  package: | 
| 20 | 
            -
                  path: | 
| 20 | 
            +
                  package:               package,
         | 
| 21 | 
            +
                  path:                  PATH,
         | 
| 22 | 
            +
                  show_missing_packages: false
         | 
| 21 23 | 
             
                )
         | 
| 22 24 | 
             
              end
         | 
| 25 | 
            +
              
         | 
| 23 26 |  | 
| 24 27 | 
             
            rescue Rdm::Errors::GitRepositoryNotInitialized
         | 
| 25 28 | 
             
              puts "Git repository is not initialized. Use `git init .`"
         | 
| @@ -15,6 +15,9 @@ | |
| 15 15 | 
             
            ENV['RUBY_ENV'] = 'test'
         | 
| 16 16 | 
             
            require 'rdm'
         | 
| 17 17 |  | 
| 18 | 
            +
            runignore_path = File.expand_path(File.join(File.dirname(Rdm.root(__FILE__)), '.runignore'))
         | 
| 19 | 
            +
            skipped_packages = File.open(runignore_path).each_line.inject([]) { |all, line| all.push(line.chomp!) }
         | 
| 20 | 
            +
             | 
| 18 21 | 
             
            if ENV['TEST_RUN']
         | 
| 19 22 | 
             
              require 'minitest/autorun'
         | 
| 20 23 | 
             
              describe Rdm::SpecRunner::Runner do
         | 
| @@ -30,8 +33,10 @@ if ENV['TEST_RUN'] | |
| 30 33 | 
             
              end
         | 
| 31 34 | 
             
            else
         | 
| 32 35 | 
             
              Rdm::SpecRunner.run(
         | 
| 33 | 
            -
                package: | 
| 34 | 
            -
                spec_matcher: | 
| 35 | 
            -
                path: | 
| 36 | 
            +
                package:          ARGV.clone.first,
         | 
| 37 | 
            +
                spec_matcher:     ARGV.clone.last,
         | 
| 38 | 
            +
                path:             File.expand_path(__FILE__),
         | 
| 39 | 
            +
                skipped_packages: skipped_packages,
         | 
| 40 | 
            +
                show_missing_packages: true
         | 
| 36 41 | 
             
              )
         | 
| 37 42 | 
             
            end
         | 
    
        data/lib/rdm/version.rb
    CHANGED
    
    
| @@ -0,0 +1,31 @@ | |
| 1 | 
            +
            require 'spec_helper'
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            describe Rdm::Gen::Config do
         | 
| 4 | 
            +
              include ExampleProjectHelper
         | 
| 5 | 
            +
             | 
| 6 | 
            +
              subject { described_class }
         | 
| 7 | 
            +
             | 
| 8 | 
            +
              describe "::generate" do
         | 
| 9 | 
            +
                before { initialize_example_project }
         | 
| 10 | 
            +
                after  { reset_example_project }
         | 
| 11 | 
            +
             | 
| 12 | 
            +
                context "sample config" do
         | 
| 13 | 
            +
                  before do
         | 
| 14 | 
            +
                    subject.generate(
         | 
| 15 | 
            +
                      config_name:  'mailing_system',
         | 
| 16 | 
            +
                      current_path: example_project_path
         | 
| 17 | 
            +
                    )
         | 
| 18 | 
            +
                  end
         | 
| 19 | 
            +
             | 
| 20 | 
            +
                  it "generates sample config" do
         | 
| 21 | 
            +
                    FileUtils.cd(example_project_path) do
         | 
| 22 | 
            +
                      ensure_exists("configs/mailing_system/default.yml")
         | 
| 23 | 
            +
                    end
         | 
| 24 | 
            +
                  end
         | 
| 25 | 
            +
             | 
| 26 | 
            +
                  it "add config line to Rdm.packages" do
         | 
| 27 | 
            +
                    ensure_content(rdm_source_file, 'config :mailing_system')
         | 
| 28 | 
            +
                  end
         | 
| 29 | 
            +
                end
         | 
| 30 | 
            +
              end
         | 
| 31 | 
            +
            end
         | 
    
        data/spec/rdm/rdm_spec.rb
    CHANGED
    
    
| @@ -0,0 +1,76 @@ | |
| 1 | 
            +
            require 'spec_helper'
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            describe Rdm::SourceComposer do
         | 
| 4 | 
            +
              include ExampleProjectHelper
         | 
| 5 | 
            +
             | 
| 6 | 
            +
              subject { described_class }
         | 
| 7 | 
            +
             | 
| 8 | 
            +
              before { initialize_example_project }
         | 
| 9 | 
            +
              after  { reset_example_project }
         | 
| 10 | 
            +
             | 
| 11 | 
            +
              describe '::run' do
         | 
| 12 | 
            +
                context 'setup block' do
         | 
| 13 | 
            +
                  before do
         | 
| 14 | 
            +
                    @rdm_source = Rdm::SourceParser.read_and_init_source(rdm_source_file)
         | 
| 15 | 
            +
                    described_class.run(@rdm_source)
         | 
| 16 | 
            +
                  end
         | 
| 17 | 
            +
             | 
| 18 | 
            +
                  it "composes with explicit options" do
         | 
| 19 | 
            +
                    ensure_content(rdm_source_file, 'role "production"')
         | 
| 20 | 
            +
                    ensure_content(rdm_source_file, 'env_file_name "production"')
         | 
| 21 | 
            +
                    ensure_content(rdm_source_file, 'env_files_dir "env_files"')
         | 
| 22 | 
            +
                    ensure_content(rdm_source_file, 'config_path ":configs_dir/:config_name/default.yml"')
         | 
| 23 | 
            +
                    ensure_content(rdm_source_file, 'role_config_path ":configs_dir/:config_name/:role.yml"')
         | 
| 24 | 
            +
                    ensure_content(rdm_source_file, 'package_subdir_name "package"')
         | 
| 25 | 
            +
                    ensure_content(rdm_source_file, 'compile_path "/tmp/rdm/:package_name"')
         | 
| 26 | 
            +
                  end
         | 
| 27 | 
            +
             | 
| 28 | 
            +
                  it "composes with default options" do
         | 
| 29 | 
            +
                    ensure_content(rdm_source_file, 'silence_missing_package false')
         | 
| 30 | 
            +
                    ensure_content(rdm_source_file, 'silence_missing_package_file true') # From 'spec_helper' settings, should be false
         | 
| 31 | 
            +
                    expect(
         | 
| 32 | 
            +
                      File.read(rdm_source_file)
         | 
| 33 | 
            +
                    ).to include('compile_ignore_files [".gitignore", ".byebug_history", ".irbrc", ".rspec", "*_spec.rb", "*.log"]')
         | 
| 34 | 
            +
                    expect(
         | 
| 35 | 
            +
                      File.read(rdm_source_file)
         | 
| 36 | 
            +
                    ).to include('compile_add_files ["Gemfile", "Gemfile.lock"]')
         | 
| 37 | 
            +
                  end
         | 
| 38 | 
            +
                end
         | 
| 39 | 
            +
             | 
| 40 | 
            +
                context 'configs' do
         | 
| 41 | 
            +
                  before do
         | 
| 42 | 
            +
                    @rdm_source = Rdm::SourceParser.read_and_init_source(rdm_source_file)
         | 
| 43 | 
            +
                    @rdm_source.config(:mailing_system)
         | 
| 44 | 
            +
                    described_class.run(@rdm_source)
         | 
| 45 | 
            +
                  end
         | 
| 46 | 
            +
             | 
| 47 | 
            +
                  it "composes with old configs" do
         | 
| 48 | 
            +
                    ensure_content(rdm_source_file, 'config :database')
         | 
| 49 | 
            +
                    ensure_content(rdm_source_file, 'config :app')
         | 
| 50 | 
            +
                  end
         | 
| 51 | 
            +
             | 
| 52 | 
            +
                  it "composes with new configs" do
         | 
| 53 | 
            +
                    ensure_content(rdm_source_file, 'config :mailing_system')
         | 
| 54 | 
            +
                  end
         | 
| 55 | 
            +
                end
         | 
| 56 | 
            +
             | 
| 57 | 
            +
                context 'packages' do
         | 
| 58 | 
            +
                  before do
         | 
| 59 | 
            +
                    @rdm_source = Rdm::SourceParser.read_and_init_source(rdm_source_file)
         | 
| 60 | 
            +
                    @rdm_source.package('mailing_system')
         | 
| 61 | 
            +
                    described_class.run(@rdm_source)
         | 
| 62 | 
            +
                  end
         | 
| 63 | 
            +
                  
         | 
| 64 | 
            +
                  it "composes with old configs" do
         | 
| 65 | 
            +
                    ensure_content(rdm_source_file, 'package "server"')
         | 
| 66 | 
            +
                    ensure_content(rdm_source_file, 'package "domain/core"')
         | 
| 67 | 
            +
                    ensure_content(rdm_source_file, 'package "infrastructure/repository"')
         | 
| 68 | 
            +
                    ensure_content(rdm_source_file, 'package "application/web"')
         | 
| 69 | 
            +
                  end
         | 
| 70 | 
            +
             | 
| 71 | 
            +
                  it "composes with new configs" do
         | 
| 72 | 
            +
                    ensure_content(rdm_source_file, 'package "mailing_system"')
         | 
| 73 | 
            +
                  end
         | 
| 74 | 
            +
                end
         | 
| 75 | 
            +
              end
         | 
| 76 | 
            +
            end
         | 
    
        data/spec/spec_helper.rb
    CHANGED
    
    | @@ -1,4 +1,10 @@ | |
| 1 1 | 
             
            require 'simplecov'
         | 
| 2 | 
            +
            SimpleCov.start do
         | 
| 3 | 
            +
              add_filter "/spec/"
         | 
| 4 | 
            +
              add_filter "/.direnv/"
         | 
| 5 | 
            +
              add_filter "/rdm/templates"
         | 
| 6 | 
            +
            end
         | 
| 7 | 
            +
             | 
| 2 8 | 
             
            require 'rdm'
         | 
| 3 9 | 
             
            require 'byebug'
         | 
| 4 10 | 
             
            require 'fileutils'
         | 
| @@ -6,16 +12,18 @@ require 'fileutils' | |
| 6 12 | 
             
            require_relative 'helpers/example_project_helper'
         | 
| 7 13 | 
             
            require_relative 'helpers/git_commands_helper'
         | 
| 8 14 |  | 
| 9 | 
            -
            SimpleCov.start do
         | 
| 10 | 
            -
              add_filter "/spec/"
         | 
| 11 | 
            -
              add_filter "/.direnv/"
         | 
| 12 | 
            -
              add_filter "/rdm/templates"
         | 
| 13 | 
            -
            end
         | 
| 14 15 | 
             
            if ENV['CI']=='true'
         | 
| 15 16 | 
             
              require 'codecov'
         | 
| 16 17 | 
             
              SimpleCov.formatter = SimpleCov::Formatter::Codecov
         | 
| 17 18 | 
             
            end
         | 
| 18 19 |  | 
| 20 | 
            +
            # setup GIT so specs for GIT run properly on Travis
         | 
| 21 | 
            +
            if ENV['CI'] == 'true'
         | 
| 22 | 
            +
              %x{ git config --global user.email "travisci@example.com" }
         | 
| 23 | 
            +
              %x{ git config --global user.name "TravisCI Developer" }
         | 
| 24 | 
            +
            end
         | 
| 25 | 
            +
             | 
| 26 | 
            +
             | 
| 19 27 | 
             
            Rdm.setup do
         | 
| 20 28 | 
             
              silence_missing_package_file true
         | 
| 21 29 | 
             
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: rdm
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.4. | 
| 4 | 
            +
              version: 0.4.2
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Droid Labs
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2017- | 
| 11 | 
            +
            date: 2017-08-09 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: bundler
         | 
| @@ -141,6 +141,7 @@ files: | |
| 141 141 | 
             
            - example/.rdm/templates/repository/mapper/<%=name%>_mapper.rb
         | 
| 142 142 | 
             
            - example/.rdm/templates/repository/repository/<%=name%>_repository.rb
         | 
| 143 143 | 
             
            - example/.rdm/templates/repository/views/users.html.erb
         | 
| 144 | 
            +
            - example/.runignore
         | 
| 144 145 | 
             
            - example/Gemfile
         | 
| 145 146 | 
             
            - example/Gemfile.lock
         | 
| 146 147 | 
             
            - example/Makefile
         | 
| @@ -170,15 +171,18 @@ files: | |
| 170 171 | 
             
            - example/tests/run
         | 
| 171 172 | 
             
            - lib/rdm.rb
         | 
| 172 173 | 
             
            - lib/rdm/cli/compile_package.rb
         | 
| 174 | 
            +
            - lib/rdm/cli/config.rb
         | 
| 173 175 | 
             
            - lib/rdm/cli/dependencies_controller.rb
         | 
| 174 176 | 
             
            - lib/rdm/cli/diff_package.rb
         | 
| 175 177 | 
             
            - lib/rdm/cli/gen_package.rb
         | 
| 176 178 | 
             
            - lib/rdm/cli/init.rb
         | 
| 177 179 | 
             
            - lib/rdm/cli/template_generator.rb
         | 
| 178 180 | 
             
            - lib/rdm/config.rb
         | 
| 181 | 
            +
            - lib/rdm/config_locals.rb
         | 
| 179 182 | 
             
            - lib/rdm/config_manager.rb
         | 
| 180 183 | 
             
            - lib/rdm/config_scope.rb
         | 
| 181 184 | 
             
            - lib/rdm/errors.rb
         | 
| 185 | 
            +
            - lib/rdm/gen/config.rb
         | 
| 182 186 | 
             
            - lib/rdm/gen/init.rb
         | 
| 183 187 | 
             
            - lib/rdm/gen/package.rb
         | 
| 184 188 | 
             
            - lib/rdm/git/diff_command.rb
         | 
| @@ -195,6 +199,7 @@ files: | |
| 195 199 | 
             
            - lib/rdm/packages/locator.rb
         | 
| 196 200 | 
             
            - lib/rdm/settings.rb
         | 
| 197 201 | 
             
            - lib/rdm/source.rb
         | 
| 202 | 
            +
            - lib/rdm/source_composer.rb
         | 
| 198 203 | 
             
            - lib/rdm/source_locator.rb
         | 
| 199 204 | 
             
            - lib/rdm/source_parser.rb
         | 
| 200 205 | 
             
            - lib/rdm/spec_runner.rb
         | 
| @@ -203,7 +208,10 @@ files: | |
| 203 208 | 
             
            - lib/rdm/spec_runner/package_fetcher.rb
         | 
| 204 209 | 
             
            - lib/rdm/spec_runner/runner.rb
         | 
| 205 210 | 
             
            - lib/rdm/spec_runner/view.rb
         | 
| 211 | 
            +
            - lib/rdm/templates/configs/<%=config_path%>
         | 
| 212 | 
            +
            - lib/rdm/templates/configs/<%=role_config_path%>
         | 
| 206 213 | 
             
            - lib/rdm/templates/init/.rdm/helpers/render_helper.rb
         | 
| 214 | 
            +
            - lib/rdm/templates/init/.runignore
         | 
| 207 215 | 
             
            - lib/rdm/templates/init/Gemfile
         | 
| 208 216 | 
             
            - lib/rdm/templates/init/Rdm.packages
         | 
| 209 217 | 
             
            - lib/rdm/templates/init/Readme.md
         | 
| @@ -239,6 +247,7 @@ files: | |
| 239 247 | 
             
            - spec/rdm/cli/gen_package_spec.rb
         | 
| 240 248 | 
             
            - spec/rdm/cli/init_spec.rb
         | 
| 241 249 | 
             
            - spec/rdm/config_manager_spec.rb
         | 
| 250 | 
            +
            - spec/rdm/gen/config_spec.rb
         | 
| 242 251 | 
             
            - spec/rdm/gen/init_spec.rb
         | 
| 243 252 | 
             
            - spec/rdm/gen/package_spec.rb
         | 
| 244 253 | 
             
            - spec/rdm/git/diff_manager_spec.rb
         | 
| @@ -253,6 +262,7 @@ files: | |
| 253 262 | 
             
            - spec/rdm/package_parser_spec.rb
         | 
| 254 263 | 
             
            - spec/rdm/rdm_spec.rb
         | 
| 255 264 | 
             
            - spec/rdm/settings_spec.rb
         | 
| 265 | 
            +
            - spec/rdm/source_composer_spec.rb
         | 
| 256 266 | 
             
            - spec/rdm/source_locator_spec.rb
         | 
| 257 267 | 
             
            - spec/rdm/source_parser_spec.rb
         | 
| 258 268 | 
             
            - spec/rdm/spec_runner/runner_spec.rb
         | 
| @@ -295,6 +305,7 @@ test_files: | |
| 295 305 | 
             
            - spec/rdm/cli/gen_package_spec.rb
         | 
| 296 306 | 
             
            - spec/rdm/cli/init_spec.rb
         | 
| 297 307 | 
             
            - spec/rdm/config_manager_spec.rb
         | 
| 308 | 
            +
            - spec/rdm/gen/config_spec.rb
         | 
| 298 309 | 
             
            - spec/rdm/gen/init_spec.rb
         | 
| 299 310 | 
             
            - spec/rdm/gen/package_spec.rb
         | 
| 300 311 | 
             
            - spec/rdm/git/diff_manager_spec.rb
         | 
| @@ -309,6 +320,7 @@ test_files: | |
| 309 320 | 
             
            - spec/rdm/package_parser_spec.rb
         | 
| 310 321 | 
             
            - spec/rdm/rdm_spec.rb
         | 
| 311 322 | 
             
            - spec/rdm/settings_spec.rb
         | 
| 323 | 
            +
            - spec/rdm/source_composer_spec.rb
         | 
| 312 324 | 
             
            - spec/rdm/source_locator_spec.rb
         | 
| 313 325 | 
             
            - spec/rdm/source_parser_spec.rb
         | 
| 314 326 | 
             
            - spec/rdm/spec_runner/runner_spec.rb
         |