vanagon 0.12.0 → 0.12.1
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/lib/vanagon/component/dsl.rb +20 -2
- data/spec/lib/vanagon/component/dsl_spec.rb +11 -5
- metadata +3 -3
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 8b0e96f27593b42424b55cc7ba76070664a735c8
         | 
| 4 | 
            +
              data.tar.gz: 47a0c3146160d374f6879e1b8a9c71f0aaf72215
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: c17032026ae9f33b3c82126210e8db967068156a4ba3c348c6590fb88b44905b30e23a75f55d17da31ae4e5bd7e87c16718d9c7d9a6e2987f1d50130c0fe9860
         | 
| 7 | 
            +
              data.tar.gz: 434b37c3e194ade303bdb2402fcc201f23cdf1a5316f723b2fa573506aa624178bfbb7a8c05ee3595c312436fc607ad3f213c67f7dc49176cd34a80045faffe8
         | 
| @@ -226,9 +226,18 @@ class Vanagon | |
| 226 226 | 
             
                  # @param target [String] path to the desired target of the file
         | 
| 227 227 | 
             
                  # @param owner  [String] owner of the file
         | 
| 228 228 | 
             
                  # @param group  [String] group owner of the file
         | 
| 229 | 
            -
                  def install_file(source, target, mode:  | 
| 229 | 
            +
                  def install_file(source, target, mode: nil, owner: nil, group: nil) # rubocop:disable Metrics/AbcSize
         | 
| 230 230 | 
             
                    @component.install << "#{@component.platform.install} -d '#{File.dirname(target)}'"
         | 
| 231 231 | 
             
                    @component.install << "#{@component.platform.copy} -p '#{source}' '#{target}'"
         | 
| 232 | 
            +
             | 
| 233 | 
            +
                    if @component.platform.is_windows?
         | 
| 234 | 
            +
                      unless mode.nil? && owner.nil? && group.nil?
         | 
| 235 | 
            +
                        warn "You're trying to set the mode, owner, or group for windows. I don't know how to do that, ignoring!"
         | 
| 236 | 
            +
                      end
         | 
| 237 | 
            +
                    else
         | 
| 238 | 
            +
                      mode ||= '0644'
         | 
| 239 | 
            +
                      @component.install << "chmod #{mode} '#{target}'"
         | 
| 240 | 
            +
                    end
         | 
| 232 241 | 
             
                    @component.add_file Vanagon::Common::Pathname.file(target, mode: mode, owner: owner, group: group)
         | 
| 233 242 | 
             
                  end
         | 
| 234 243 |  | 
| @@ -369,7 +378,16 @@ class Vanagon | |
| 369 378 | 
             
                  # @param mode [String] octal mode to apply to the directory
         | 
| 370 379 | 
             
                  # @param owner [String] owner of the directory
         | 
| 371 380 | 
             
                  # @param group [String] group of the directory
         | 
| 372 | 
            -
                  def directory(dir, mode: nil, owner: nil, group: nil)
         | 
| 381 | 
            +
                  def directory(dir, mode: nil, owner: nil, group: nil) # rubocop:disable Metrics/AbcSize
         | 
| 382 | 
            +
                    install_flags = ['-d']
         | 
| 383 | 
            +
                    if @component.platform.is_windows?
         | 
| 384 | 
            +
                      unless mode.nil? && owner.nil? && group.nil?
         | 
| 385 | 
            +
                        warn "You're trying to set the mode, owner, or group for windows. I don't know how to do that, ignoring!"
         | 
| 386 | 
            +
                      end
         | 
| 387 | 
            +
                    else
         | 
| 388 | 
            +
                      install_flags << "-m '#{mode}'" unless mode.nil?
         | 
| 389 | 
            +
                    end
         | 
| 390 | 
            +
                    @component.install << "#{@component.platform.install} #{install_flags.join(' ')} '#{dir}'"
         | 
| 373 391 | 
             
                    @component.directories << Vanagon::Common::Pathname.new(dir, mode: mode, owner: owner, group: group)
         | 
| 374 392 | 
             
                  end
         | 
| 375 393 |  | 
| @@ -69,6 +69,7 @@ end" } | |
| 69 69 | 
             
              before do
         | 
| 70 70 | 
             
                allow(platform).to receive(:install).and_return('install')
         | 
| 71 71 | 
             
                allow(platform).to receive(:copy).and_return('cp')
         | 
| 72 | 
            +
                allow(platform).to receive(:is_windows?).and_return(false)
         | 
| 72 73 | 
             
              end
         | 
| 73 74 |  | 
| 74 75 | 
             
              describe "#md5sum" do
         | 
| @@ -576,6 +577,7 @@ end" } | |
| 576 577 | 
             
                  comp.install_file('thing1', 'place/to/put/thing1', owner: 'bob', group: 'timmy', mode: '0022')
         | 
| 577 578 | 
             
                  expect(comp._component.install).to include("install -d 'place/to/put'")
         | 
| 578 579 | 
             
                  expect(comp._component.install).to include("cp -p 'thing1' 'place/to/put/thing1'")
         | 
| 580 | 
            +
                  expect(comp._component.install).to include("chmod 0022 'place/to/put/thing1'")
         | 
| 579 581 | 
             
                  expect(comp._component.files).to include(Vanagon::Common::Pathname.file('place/to/put/thing1', mode: '0022', owner: 'bob', group: 'timmy'))
         | 
| 580 582 | 
             
                end
         | 
| 581 583 | 
             
              end
         | 
| @@ -716,32 +718,36 @@ end" } | |
| 716 718 |  | 
| 717 719 | 
             
              describe '#directory' do
         | 
| 718 720 | 
             
                it 'adds a directory with the desired path to the directory collection for the component' do
         | 
| 719 | 
            -
                  comp = Vanagon::Component::DSL.new('directory-test', {},  | 
| 721 | 
            +
                  comp = Vanagon::Component::DSL.new('directory-test', {}, platform)
         | 
| 720 722 | 
             
                  comp.directory('/a/b/c')
         | 
| 721 723 | 
             
                  expect(comp._component.directories).to include(Vanagon::Common::Pathname.new('/a/b/c'))
         | 
| 722 724 | 
             
                end
         | 
| 723 725 |  | 
| 724 726 | 
             
                it 'adds a directory with the desired mode to the directory collection for the component' do
         | 
| 725 | 
            -
                  comp = Vanagon::Component::DSL.new('directory-test', {},  | 
| 727 | 
            +
                  comp = Vanagon::Component::DSL.new('directory-test', {}, platform)
         | 
| 726 728 | 
             
                  comp.directory('/a/b/c', mode: '0755')
         | 
| 729 | 
            +
                  expect(comp._component.install).to include("install -d -m '0755' '/a/b/c'")
         | 
| 727 730 | 
             
                  expect(comp._component.directories.first).to eq(Vanagon::Common::Pathname.new('/a/b/c', mode: '0755'))
         | 
| 728 731 | 
             
                end
         | 
| 729 732 |  | 
| 730 733 | 
             
                it 'adds a directory with the desired owner to the directory collection for the component' do
         | 
| 731 | 
            -
                  comp = Vanagon::Component::DSL.new('directory-test', {},  | 
| 734 | 
            +
                  comp = Vanagon::Component::DSL.new('directory-test', {}, platform)
         | 
| 732 735 | 
             
                  comp.directory('/a/b/c', owner: 'olivia')
         | 
| 736 | 
            +
                  expect(comp._component.install).to include("install -d '/a/b/c'")
         | 
| 733 737 | 
             
                  expect(comp._component.directories.first).to eq(Vanagon::Common::Pathname.new('/a/b/c', owner: 'olivia'))
         | 
| 734 738 | 
             
                end
         | 
| 735 739 |  | 
| 736 740 | 
             
                it 'adds a directory with the desired group to the directory collection for the component' do
         | 
| 737 | 
            -
                  comp = Vanagon::Component::DSL.new('directory-test', {},  | 
| 741 | 
            +
                  comp = Vanagon::Component::DSL.new('directory-test', {}, platform)
         | 
| 738 742 | 
             
                  comp.directory('/a/b/c', group: 'release-engineering')
         | 
| 743 | 
            +
                  expect(comp._component.install).to include("install -d '/a/b/c'")
         | 
| 739 744 | 
             
                  expect(comp._component.directories.first).to eq(Vanagon::Common::Pathname.new('/a/b/c', group: 'release-engineering'))
         | 
| 740 745 | 
             
                end
         | 
| 741 746 |  | 
| 742 747 | 
             
                it 'adds a directory with the desired attributes to the directory collection for the component' do
         | 
| 743 | 
            -
                  comp = Vanagon::Component::DSL.new('directory-test', {},  | 
| 748 | 
            +
                  comp = Vanagon::Component::DSL.new('directory-test', {}, platform)
         | 
| 744 749 | 
             
                  comp.directory('/a/b/c', mode: '0400', owner: 'olivia', group: 'release-engineering')
         | 
| 750 | 
            +
                  expect(comp._component.install).to include("install -d -m '0400' '/a/b/c'")
         | 
| 745 751 | 
             
                  expect(comp._component.directories.first).to eq(Vanagon::Common::Pathname.new('/a/b/c', mode: '0400', owner: 'olivia', group: 'release-engineering'))
         | 
| 746 752 | 
             
                end
         | 
| 747 753 | 
             
              end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: vanagon
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.12. | 
| 4 | 
            +
              version: 0.12.1
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Puppet Labs
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2017- | 
| 11 | 
            +
            date: 2017-06-12 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: git
         | 
| @@ -239,7 +239,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 239 239 | 
             
                  version: '0'
         | 
| 240 240 | 
             
            requirements: []
         | 
| 241 241 | 
             
            rubyforge_project: 
         | 
| 242 | 
            -
            rubygems_version: 2. | 
| 242 | 
            +
            rubygems_version: 2.6.11
         | 
| 243 243 | 
             
            signing_key: 
         | 
| 244 244 | 
             
            specification_version: 3
         | 
| 245 245 | 
             
            summary: All of your packages will fit into this van with this one simple trick.
         |