puppet-lint-use_ensure_packages-check 0.0.1 → 0.0.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 429d64b939da27bc66f50a566fd01afbc3a0822a
4
- data.tar.gz: 7f06639bcb642f4ad70590b2de8d486ce64970cf
3
+ metadata.gz: e86e5c8317c917d5b961274644c11b1d77d2ad1e
4
+ data.tar.gz: 02df872a3f35342b5403328eaf8ca8b3eafd932d
5
5
  SHA512:
6
- metadata.gz: 13062a56166ba14cea81eac802baf04104c1af6d8bce6cffb489ef85b89ba3fe06906b01c830df7ad5c880a1c78fa4b8b38b5c2800a4695b83869a05b8bba78b
7
- data.tar.gz: 06a37b1250c9c3d13570b9bd886698aa475111dc5a5131e2d8d0bb89d6fa19d76b5d53d5b76d1f0fd289781813e6b5c52d7d3ba3db61e5fc7e4e8b0331f993fe
6
+ metadata.gz: 5b9ac063a2e50fe41924edc4559605fe3a4fd28ca22324b59c9151af0506fb608084baac18b074ee5aa9370323b01f9238024d5873837000b7ad5ecdd3c91b7e
7
+ data.tar.gz: 2dff02cdc2cbb9b141f2c36890e4e2b6ec85fa1dfed6301ac40c6e545e4023381744c3dbe35d389536dc9b5c3f6e85437a74c867498a059438ac843a342e233a
data/README.md CHANGED
@@ -1,6 +1,7 @@
1
1
  # puppet-lint use ensure_packages check
2
2
 
3
3
  [![Build Status](https://travis-ci.org/ninech/puppet-lint-use_ensure_packages-check.svg?branch=master)](https://travis-ci.org/ninech/puppet-lint-use_ensure_packages-check)
4
+ [![Gem Version](https://badge.fury.io/rb/puppet-lint-use_ensure_packages-check.svg)](https://badge.fury.io/rb/puppet-lint-use_ensure_packages-check)
4
5
 
5
6
  ## Installation
6
7
 
@@ -35,6 +35,7 @@ PuppetLint.new_check(:use_ensure_packages) do
35
35
 
36
36
  def check
37
37
  if_indexes.each do |cond|
38
+ next if check_if_else(cond)
38
39
  next if check_if(cond)
39
40
 
40
41
  notify :warning,
@@ -44,6 +45,15 @@ PuppetLint.new_check(:use_ensure_packages) do
44
45
  end
45
46
  end
46
47
 
48
+ def check_if_else(cond)
49
+ tokens = filter_code_tokens(cond[:tokens])
50
+
51
+ return true if tokens.last.next_code_token &&
52
+ [:ELSE, :ELSIF].include?(tokens.last.next_code_token.type)
53
+
54
+ false
55
+ end
56
+
47
57
  def check_if(cond)
48
58
  tokens = filter_code_tokens(cond[:tokens])
49
59
 
@@ -59,6 +69,7 @@ PuppetLint.new_check(:use_ensure_packages) do
59
69
  return false if tokens.empty?
60
70
 
61
71
  return true unless OPTINAL_CONTENT.index do |c|
72
+ next unless tokens.length == c[:sequence].length
62
73
  match_tokens(tokens, c[:sequence], c[:values])
63
74
  end
64
75
 
@@ -62,6 +62,46 @@ describe 'use_ensure_packages' do
62
62
  end
63
63
  end
64
64
 
65
+ context 'if not defined package w/ notify' do
66
+ let(:code) do
67
+ "if ! defined (Package['foo']) {
68
+ package {'foo': ensure => present, notify => Service['apache2'];}
69
+ }"
70
+ end
71
+
72
+ it 'should not detect any problem' do
73
+ expect(problems).to have(0).problems
74
+ end
75
+ end
76
+
77
+ context 'if not defined package w/ else' do
78
+ let(:code) do
79
+ "if ! defined (Package['foo']) {
80
+ package {'foo': ensure => present; }
81
+ } else {
82
+ package {'bar': ensure => present; }
83
+ }"
84
+ end
85
+
86
+ it 'should not detect any problem' do
87
+ expect(problems).to have(0).problems
88
+ end
89
+ end
90
+
91
+ context 'if not defined package w/ elsis' do
92
+ let(:code) do
93
+ "if ! defined (Package['foo']) {
94
+ package {'foo': ensure => present; }
95
+ } elsif ! defined (Package['bar']) {
96
+ package {'bar': ensure => present; }
97
+ }"
98
+ end
99
+
100
+ it 'should not detect any problem' do
101
+ expect(problems).to have(0).problems
102
+ end
103
+ end
104
+
65
105
  context 'if not defined package twice' do
66
106
  let(:code) do
67
107
  "if ! defined (Package['foo']) {
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: puppet-lint-use_ensure_packages-check
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marius Rieder
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-01-10 00:00:00.000000000 Z
11
+ date: 2017-01-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: puppet-lint