puppet-repl 0.2.2 → 0.2.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 +4 -4
- data/.gitlab-ci.yml +118 -0
- data/CHANGELOG.md +2 -0
- data/README.md +3 -2
- data/VERSION +1 -1
- data/lib/awesome_print/ext/awesome_puppet.rb +3 -0
- data/lib/puppet-repl/cli.rb +3 -2
- data/lib/puppet-repl/support/play.rb +6 -0
- data/lib/version.rb +1 -1
- data/puppet-repl.gemspec +4 -4
- data/spec/puppet-repl_spec.rb +25 -2
- data/spec/support_spec.rb +7 -2
- metadata +3 -3
- data/.travis.yml +0 -29
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6a03bd43b71008994c676b5199c458efd3e729e0
|
4
|
+
data.tar.gz: 738b84539dbc265027dbd07ef2893c037395b6d9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7fd864b5231b000b3cafc243f39af29a97c82491acc767ad0a342360dc5b96c2ab56e505ef022c0fb06a497f05b82723be8b8f450c36c01877373ab10342e2e6
|
7
|
+
data.tar.gz: 8e1c79ae398c14eb95dc620b740c101a6a28bd894f651a8e3273047db37661bd51932c1bf556a5ead9bc332e4dd22f9760b480635b0a70ef711d0ba1b7a5cb29
|
data/.gitlab-ci.yml
ADDED
@@ -0,0 +1,118 @@
|
|
1
|
+
stages:
|
2
|
+
- test
|
3
|
+
- deploy
|
4
|
+
- web_deploy
|
5
|
+
|
6
|
+
variables:
|
7
|
+
HEROKU_STAGING_APP: murmuring-plateau-62715
|
8
|
+
HEROKU_PROD_APP: still-tor-57873
|
9
|
+
|
10
|
+
.puppet_def: &puppet_job_def
|
11
|
+
stage: test
|
12
|
+
script:
|
13
|
+
- bundle install --without development
|
14
|
+
- bundle exec puppet module install puppetlabs-stdlib
|
15
|
+
- bundle exec rake spec
|
16
|
+
|
17
|
+
.ruby_193: &ruby193
|
18
|
+
image: ruby:1.9.3
|
19
|
+
|
20
|
+
.ruby_20: &ruby20
|
21
|
+
image: ruby:2.0
|
22
|
+
|
23
|
+
.ruby_21: &ruby21
|
24
|
+
image: ruby:2.1
|
25
|
+
|
26
|
+
.ruby_22: &ruby22
|
27
|
+
image: ruby:2.2
|
28
|
+
|
29
|
+
.ruby_23: &ruby23
|
30
|
+
image: ruby:2.3
|
31
|
+
|
32
|
+
gem_production:
|
33
|
+
image: ruby:2.1
|
34
|
+
before_script:
|
35
|
+
- gem install dpl
|
36
|
+
stage: deploy
|
37
|
+
script:
|
38
|
+
- dpl --provider=rubygems --api-key=$RUBYGEMS_API_KEY
|
39
|
+
only:
|
40
|
+
- tags
|
41
|
+
|
42
|
+
# web_staging:
|
43
|
+
# stage: web_deploy
|
44
|
+
# before_script:
|
45
|
+
# - gem install dpl
|
46
|
+
# script:
|
47
|
+
# - dpl --provider=heroku --strategy=git --app=$HEROKU_STAGING_APP --api-key=$HEROKU_API_KEY
|
48
|
+
# only:
|
49
|
+
# - master
|
50
|
+
#
|
51
|
+
# web_production:
|
52
|
+
# stage: web_deploy
|
53
|
+
# before_script:
|
54
|
+
# - gem install dpl
|
55
|
+
# script:
|
56
|
+
# - dpl --provider=heroku --strategy=git --app=$HEROKU_PROD_APP --api-key=$HEROKU_API_KEY
|
57
|
+
# only:
|
58
|
+
# - tags
|
59
|
+
|
60
|
+
puppet_38_ruby193:
|
61
|
+
variables:
|
62
|
+
PUPPET_GEM_VERSION: '3.8'
|
63
|
+
<<: *puppet_job_def
|
64
|
+
<<: *ruby193
|
65
|
+
|
66
|
+
puppet_38_ruby20:
|
67
|
+
variables:
|
68
|
+
PUPPET_GEM_VERSION: '3.8'
|
69
|
+
<<: *puppet_job_def
|
70
|
+
<<: *ruby20
|
71
|
+
|
72
|
+
puppet_38_ruby21:
|
73
|
+
variables:
|
74
|
+
PUPPET_GEM_VERSION: '3.8'
|
75
|
+
<<: *puppet_job_def
|
76
|
+
<<: *ruby21
|
77
|
+
|
78
|
+
puppet_43_ruby20:
|
79
|
+
variables:
|
80
|
+
PUPPET_GEM_VERSION: '4.4'
|
81
|
+
<<: *puppet_job_def
|
82
|
+
<<: *ruby20
|
83
|
+
|
84
|
+
puppet_43_ruby21:
|
85
|
+
variables:
|
86
|
+
PUPPET_GEM_VERSION: '4.4'
|
87
|
+
<<: *puppet_job_def
|
88
|
+
<<: *ruby21
|
89
|
+
|
90
|
+
puppet_43_ruby22:
|
91
|
+
variables:
|
92
|
+
PUPPET_GEM_VERSION: '4.4'
|
93
|
+
<<: *puppet_job_def
|
94
|
+
<<: *ruby22
|
95
|
+
|
96
|
+
puppet_44_ruby21:
|
97
|
+
variables:
|
98
|
+
PUPPET_GEM_VERSION: '4.4'
|
99
|
+
<<: *puppet_job_def
|
100
|
+
<<: *ruby21
|
101
|
+
|
102
|
+
puppet_44_ruby22:
|
103
|
+
variables:
|
104
|
+
PUPPET_GEM_VERSION: '4.4'
|
105
|
+
<<: *puppet_job_def
|
106
|
+
<<: *ruby22
|
107
|
+
|
108
|
+
puppet_45_ruby21:
|
109
|
+
variables:
|
110
|
+
PUPPET_GEM_VERSION: '4.5'
|
111
|
+
<<: *puppet_job_def
|
112
|
+
<<: *ruby21
|
113
|
+
|
114
|
+
puppet_45_ruby22:
|
115
|
+
variables:
|
116
|
+
PUPPET_GEM_VERSION: '4.5'
|
117
|
+
<<: *puppet_job_def
|
118
|
+
<<: *ruby22
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -27,7 +27,8 @@
|
|
27
27
|
- [Copyright](#copyright)
|
28
28
|
|
29
29
|
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
|
30
|
-
|
30
|
+

|
31
|
+
[](https://badge.fury.io/rb/puppet-repl)
|
31
32
|
# puppet-repl
|
32
33
|
|
33
34
|
A interactive command line tool for evaluating the puppet language.
|
@@ -236,7 +237,7 @@ If using the [web based repl](https://www.puppet-repl.com) you can playback a sh
|
|
236
237
|
which would start a repl session and then load the content from the url or parameter.
|
237
238
|
|
238
239
|
Example:
|
239
|
-
https://www.puppet-repl.com/play?url=https://gist.githubusercontent.com/logicminds/f9b1ac65a3a440d562b0
|
240
|
+
https://www.puppet-repl.com/play?url=https://gist.githubusercontent.com/logicminds/f9b1ac65a3a440d562b0.txt
|
240
241
|
|
241
242
|
or for single commands
|
242
243
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.2.
|
1
|
+
0.2.3
|
@@ -16,6 +16,8 @@ module AwesomePrint
|
|
16
16
|
cast = :puppet_type
|
17
17
|
elsif (defined?(::Puppet::Parser::Resource)) && (object.class < ::Puppet::Parser::Resource)
|
18
18
|
cast = :puppet_resource
|
19
|
+
elsif /Puppet::Pops::Types/.match(object.class.to_s)
|
20
|
+
cast = :puppet_type
|
19
21
|
end
|
20
22
|
cast
|
21
23
|
end
|
@@ -27,6 +29,7 @@ module AwesomePrint
|
|
27
29
|
|
28
30
|
def awesome_puppet_type(object)
|
29
31
|
return '' if object.nil?
|
32
|
+
return object.to_s unless object.respond_to?(:name) && object.respond_to?(:title)
|
30
33
|
h = object.to_hash.merge(:name => object.name, :title => object.title)
|
31
34
|
res_str = awesome_hash(h)
|
32
35
|
"#{object.class} #{res_str.gsub(':', '')}"
|
data/lib/puppet-repl/cli.rb
CHANGED
@@ -51,12 +51,13 @@ module PuppetRepl
|
|
51
51
|
if type.respond_to?(:type_name) and type.respond_to?(:title)
|
52
52
|
title = type.title
|
53
53
|
type_name = type.type_name
|
54
|
-
|
54
|
+
elsif type_result = /(\w+)\['?(\w+)'?\]/.match(type.to_s)
|
55
55
|
# not all types have a type_name and title so we
|
56
56
|
# output to a string and parse the results
|
57
|
-
type_result = /(\w+)\['?(\w+)'?\]/.match(type.to_s)
|
58
57
|
title = type_result[2]
|
59
58
|
type_name = type_result[1]
|
59
|
+
else
|
60
|
+
return type
|
60
61
|
end
|
61
62
|
res = scope.catalog.resource(type_name, title)
|
62
63
|
if res
|
@@ -18,6 +18,11 @@ module PuppetRepl
|
|
18
18
|
require 'uri'
|
19
19
|
url_data = URI(url)
|
20
20
|
case url_data.host
|
21
|
+
when /^gist\.github*/
|
22
|
+
unless url_data.path =~ /raw/
|
23
|
+
url = url += '.txt'
|
24
|
+
end
|
25
|
+
url
|
21
26
|
when /^github.com/
|
22
27
|
if url_data.path =~ /blob/
|
23
28
|
url.gsub('blob', 'raw')
|
@@ -26,6 +31,7 @@ module PuppetRepl
|
|
26
31
|
unless url_data.path =~ /raw/
|
27
32
|
url = url += '.txt'
|
28
33
|
end
|
34
|
+
url
|
29
35
|
when /^gitlab.com/
|
30
36
|
if url_data.path =~ /snippets/
|
31
37
|
url += '/raw' unless url_data.path =~ /raw/
|
data/lib/version.rb
CHANGED
data/puppet-repl.gemspec
CHANGED
@@ -2,16 +2,16 @@
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
3
|
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
|
-
# stub: puppet-repl 0.2.
|
5
|
+
# stub: puppet-repl 0.2.3 ruby lib
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
8
|
s.name = "puppet-repl"
|
9
|
-
s.version = "0.2.
|
9
|
+
s.version = "0.2.3"
|
10
10
|
|
11
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
12
12
|
s.require_paths = ["lib"]
|
13
13
|
s.authors = ["Corey Osman"]
|
14
|
-
s.date = "2016-
|
14
|
+
s.date = "2016-06-01"
|
15
15
|
s.description = "A interactive command line tool for evaluating the puppet language"
|
16
16
|
s.email = "corey@nwops.io"
|
17
17
|
s.executables = ["prepl"]
|
@@ -22,8 +22,8 @@ Gem::Specification.new do |s|
|
|
22
22
|
]
|
23
23
|
s.files = [
|
24
24
|
".document",
|
25
|
+
".gitlab-ci.yml",
|
25
26
|
".rspec",
|
26
|
-
".travis.yml",
|
27
27
|
"CHANGELOG.md",
|
28
28
|
"Gemfile",
|
29
29
|
"Gemfile.lock",
|
data/spec/puppet-repl_spec.rb
CHANGED
@@ -26,6 +26,29 @@ describe "PuppetRepl" do
|
|
26
26
|
repl.parser.evaluate_string(repl.scope, input)
|
27
27
|
end
|
28
28
|
|
29
|
+
describe 'types' do
|
30
|
+
|
31
|
+
describe 'string' do
|
32
|
+
let(:input) do
|
33
|
+
"String"
|
34
|
+
end
|
35
|
+
it 'shows type' do
|
36
|
+
repl.handle_input(input)
|
37
|
+
expect(output.string).to eq("\n => String\n")
|
38
|
+
end
|
39
|
+
end
|
40
|
+
describe 'Array' do
|
41
|
+
let(:input) do
|
42
|
+
"type_of([1,2,3,4])"
|
43
|
+
end
|
44
|
+
it 'shows type' do
|
45
|
+
repl.handle_input(input)
|
46
|
+
expect(output.string).to eq("\n => Tuple[Integer[1, 1], Integer[2, 2], Integer[3, 3], Integer[4, 4]]\n")
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
end
|
51
|
+
|
29
52
|
describe 'multiple lines of input' do
|
30
53
|
describe '3 lines' do
|
31
54
|
let(:input) do
|
@@ -118,11 +141,11 @@ describe "PuppetRepl" do
|
|
118
141
|
end
|
119
142
|
|
120
143
|
before(:each) do
|
121
|
-
allow(repl).to receive(:fetch_url_data).with(file_url).and_return(File.read(fixtures_file))
|
144
|
+
allow(repl).to receive(:fetch_url_data).with(file_url + '.txt').and_return(File.read(fixtures_file))
|
122
145
|
end
|
123
146
|
|
124
147
|
let(:file_url) do
|
125
|
-
'https://gist.githubusercontent.com/logicminds/f9b1ac65a3a440d562b0
|
148
|
+
'https://gist.githubusercontent.com/logicminds/f9b1ac65a3a440d562b0'
|
126
149
|
end
|
127
150
|
it 'file' do
|
128
151
|
repl.handle_input("play #{fixtures_file}")
|
data/spec/support_spec.rb
CHANGED
@@ -139,7 +139,6 @@ describe 'support' do
|
|
139
139
|
end
|
140
140
|
end
|
141
141
|
end
|
142
|
-
|
143
142
|
describe 'github' do
|
144
143
|
describe 'raw' do
|
145
144
|
let(:url) { 'https://gist.githubusercontent.com/logicminds/f9b1ac65a3a440d562b0/raw'}
|
@@ -148,7 +147,13 @@ describe 'support' do
|
|
148
147
|
expect(repl.convert_to_text(url)).to eq(converted)
|
149
148
|
end
|
150
149
|
end
|
151
|
-
|
150
|
+
describe 'raw' do
|
151
|
+
let(:url) { 'https://gist.githubusercontent.com/logicminds/f9b1ac65a3a440d562b0'}
|
152
|
+
let(:converted) { 'https://gist.githubusercontent.com/logicminds/f9b1ac65a3a440d562b0.txt' }
|
153
|
+
it do
|
154
|
+
expect(repl.convert_to_text(url)).to eq(converted)
|
155
|
+
end
|
156
|
+
end
|
152
157
|
describe 'raw gist' do
|
153
158
|
let(:url) {'https://gist.githubusercontent.com/logicminds/f9b1ac65a3a440d562b0/raw/c8f6be52da5b2b0eeaabb9aa75832b75793d35d1/controls.pp'}
|
154
159
|
let(:converted) {'https://gist.githubusercontent.com/logicminds/f9b1ac65a3a440d562b0/raw/c8f6be52da5b2b0eeaabb9aa75832b75793d35d1/controls.pp'}
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: puppet-repl
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Corey Osman
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-06-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: puppet
|
@@ -77,8 +77,8 @@ extra_rdoc_files:
|
|
77
77
|
- README.md
|
78
78
|
files:
|
79
79
|
- ".document"
|
80
|
+
- ".gitlab-ci.yml"
|
80
81
|
- ".rspec"
|
81
|
-
- ".travis.yml"
|
82
82
|
- CHANGELOG.md
|
83
83
|
- Gemfile
|
84
84
|
- Gemfile.lock
|
data/.travis.yml
DELETED
@@ -1,29 +0,0 @@
|
|
1
|
-
language: ruby
|
2
|
-
cache: bundler
|
3
|
-
install: "bundle install --without development"
|
4
|
-
before_script: "bundle exec puppet module install puppetlabs-stdlib"
|
5
|
-
script: "bundle exec rspec"
|
6
|
-
rvm:
|
7
|
-
- 1.9.3
|
8
|
-
- 2.0.0
|
9
|
-
- 2.2.1
|
10
|
-
- 2.1.3
|
11
|
-
env:
|
12
|
-
matrix:
|
13
|
-
- PUPPET_GEM_VERSION="~> 3.8"
|
14
|
-
- PUPPET_GEM_VERSION="~> 4.2"
|
15
|
-
- PUPPET_GEM_VERSION="~> 4.3"
|
16
|
-
- PUPPET_GEM_VERSION="~> 4.4"
|
17
|
-
notifications:
|
18
|
-
email: corey@logicminds.biz
|
19
|
-
|
20
|
-
matrix:
|
21
|
-
exclude:
|
22
|
-
- rvm: 2.2.1
|
23
|
-
env: PUPPET_GEM_VERSION="~> 3.8"
|
24
|
-
- rvm: 1.9.3
|
25
|
-
env: PUPPET_GEM_VERSION="~> 4.4"
|
26
|
-
- rvm: 1.9.3
|
27
|
-
env: PUPPET_GEM_VERSION="~> 4.3"
|
28
|
-
- rvm: 1.9.3
|
29
|
-
env: PUPPET_GEM_VERSION="~> 4.2"
|