MuranoCLI 3.1.0.beta.8 → 3.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a496a97244bc5b3c72007dbeca1b1aba1727c5b04d30e0918ee89ea8bdfe7299
4
- data.tar.gz: 9c2b8a4552c037a649c09eafe16eeed9ef758c85d2ac091bd13054ad5c5f7056
3
+ metadata.gz: e90d2b8f700e2d6622118f28d8e1a1759706205cb35affe3e0aee7d742961644
4
+ data.tar.gz: 6a8ea0aa65cb39d5312ae0451337173d3a38b735867860868cf54bcfe7a144ca
5
5
  SHA512:
6
- metadata.gz: 9fd6b6278866a777328db9aa3921e1e27f239ffdd4d880b97502c50e824d910e3ecaa5e6063cb5b6c8cad1813d6d7d16081cc9f38f53e281a367135a61c21fd4
7
- data.tar.gz: e66db775e437b051dcee81a55f84861bb0fca0d022a144ee617cacb5ac3b86809731fdfffcd385e8622e04fa6d85129c08a533869313f25b3fb1989179a3d9e7
6
+ metadata.gz: b41ce85c7df8e2ffb269d4322be5e0e97b1b944325eab6a852ffda53368a2c51b6a1a4ac8e2485ddbbe45e47c80ed6520d89a85b488f91a0293015a2b93957fd
7
+ data.tar.gz: 1d44b6f3dcb5f3c84685f1fcf1bf1de47bf1d2a5b6496212487bbd843a13f8779515ea0a8d2eda65d1ef5fe4c783510d0491d2670eb62ff89be08a47259f17d7
@@ -2,11 +2,21 @@ FROM ruby:2.2.9-jessie
2
2
 
3
3
  USER root
4
4
 
5
- ENV LANGUAGE en_US.UTF-8
6
- ENV LANG en_US.UTF-8
5
+ ENV LANGUAGE C.UTF-8
6
+ ENV LANG C.UTF-8
7
+ ENV LC_ALL C.UTF-8
7
8
 
8
9
  RUN useradd -m -s /bin/bash --uid 1001 -G root jenkins
9
10
 
11
+ RUN \
12
+ echo "deb http://ftp.us.debian.org/debian/ jessie main contrib non-free" \
13
+ >> /etc/apt/sources.list \
14
+ && echo "deb-src http://ftp.us.debian.org/debian/ jessie main contrib non-free" \
15
+ >> /etc/apt/sources.list \
16
+ && apt-get -qq update \
17
+ && apt-get install -y sudo
18
+ RUN echo "jenkins ALL= NOPASSWD: /bin/chmod" >> /etc/sudoers
19
+
10
20
  WORKDIR /app
11
21
  COPY . /app
12
22
 
@@ -2,11 +2,21 @@ FROM ruby:2.3.6-jessie
2
2
 
3
3
  USER root
4
4
 
5
- ENV LANGUAGE en_US.UTF-8
6
- ENV LANG en_US.UTF-8
5
+ ENV LANGUAGE C.UTF-8
6
+ ENV LANG C.UTF-8
7
+ ENV LC_ALL C.UTF-8
7
8
 
8
9
  RUN useradd -m -s /bin/bash --uid 1001 -G root jenkins
9
10
 
11
+ RUN \
12
+ echo "deb http://ftp.us.debian.org/debian/ jessie main contrib non-free" \
13
+ >> /etc/apt/sources.list \
14
+ && echo "deb-src http://ftp.us.debian.org/debian/ jessie main contrib non-free" \
15
+ >> /etc/apt/sources.list \
16
+ && apt-get -qq update \
17
+ && apt-get install -y sudo
18
+ RUN echo "jenkins ALL= NOPASSWD: /bin/chmod" >> /etc/sudoers
19
+
10
20
  WORKDIR /app
11
21
  COPY . /app
12
22
 
@@ -2,11 +2,21 @@ FROM ruby:2.4.3-jessie
2
2
 
3
3
  USER root
4
4
 
5
- ENV LANGUAGE en_US.UTF-8
6
- ENV LANG en_US.UTF-8
5
+ ENV LANGUAGE C.UTF-8
6
+ ENV LANG C.UTF-8
7
+ ENV LC_ALL C.UTF-8
7
8
 
8
9
  RUN useradd -m -s /bin/bash --uid 1001 -G root jenkins
9
10
 
11
+ RUN \
12
+ echo "deb http://ftp.us.debian.org/debian/ jessie main contrib non-free" \
13
+ >> /etc/apt/sources.list \
14
+ && echo "deb-src http://ftp.us.debian.org/debian/ jessie main contrib non-free" \
15
+ >> /etc/apt/sources.list \
16
+ && apt-get -qq update \
17
+ && apt-get install -y sudo
18
+ RUN echo "jenkins ALL= NOPASSWD: /bin/chmod" >> /etc/sudoers
19
+
10
20
  WORKDIR /app
11
21
  COPY . /app
12
22
 
@@ -2,11 +2,21 @@ FROM ruby:2.5.0-jessie
2
2
 
3
3
  USER root
4
4
 
5
- ENV LANGUAGE en_US.UTF-8
6
- ENV LANG en_US.UTF-8
5
+ ENV LANGUAGE C.UTF-8
6
+ ENV LANG C.UTF-8
7
+ ENV LC_ALL C.UTF-8
7
8
 
8
9
  RUN useradd -m -s /bin/bash --uid 1001 -G root jenkins
9
10
 
11
+ RUN \
12
+ echo "deb http://ftp.us.debian.org/debian/ jessie main contrib non-free" \
13
+ >> /etc/apt/sources.list \
14
+ && echo "deb-src http://ftp.us.debian.org/debian/ jessie main contrib non-free" \
15
+ >> /etc/apt/sources.list \
16
+ && apt-get -qq update \
17
+ && apt-get install -y sudo
18
+ RUN echo "jenkins ALL= NOPASSWD: /bin/chmod" >> /etc/sudoers
19
+
10
20
  WORKDIR /app
11
21
  COPY . /app
12
22
 
@@ -8,7 +8,7 @@ USER root
8
8
 
9
9
  dnl # Jenkins defaults to the ASCII encoding, but we want UTF-8.
10
10
  dnl #
11
- dnl # FIXME/MEH: (lb): Murano CLI still has encoding issues, e.g.,
11
+ dnl # FIXME/MEH: (lb): Murano CLI may still have encoding issues, e.g.,
12
12
  dnl # the highline.say() command crashes on some strings, complaining:
13
13
  dnl #
14
14
  dnl # invalid byte sequence in US-ASCII
@@ -17,25 +17,22 @@ dnl # which we currently work around by running Murand CLI in ASCII, e.g.,
17
17
  dnl #
18
18
  dnl # murano --no-progress --no-color --ascii ...
19
19
  dnl #
20
- dnl # which means our Jenkins/Docker test is not quite testing how
21
- dnl # people usually run the app. Oh well.
20
+ dnl # (lb): I tried to install en_US.UTF-8, e.g., using `locale-gen` and
21
+ dnl # `update-locale`, but I couldn't make it work. The Docker container
22
+ dnl # at least has C.UTF-8 encoding, which I think just has a different
23
+ dnl # sort order than en_us.UTF-8.
22
24
  dnl #
23
- dnl # ((lb): I had hoped that setting ENV herein would help, and while it
24
- dnl # does change the encoding for the `docker exec` command that Jenkins
25
- dnl # runs later, it doesn't fix the "invalid byte sequence" error.)
25
+ dnl # NOTE: If you try to change to en_US.UTF-8, which is not installed,
26
+ dnl # you'll see: `setlocale: LC_ALL: cannot change locale (en_US.UTF-8)`.
26
27
  dnl #
27
- dnl # NOTE: You cannot change the encoding from the Execute Shell build
28
- dnl # command. If you tried, you'd see, e.g.,:
28
+ dnl # Set the locale, which changes the encoding for the `docker exec`
29
+ dnl # command that Jenkins runs later.
29
30
  dnl #
30
- dnl # $ export LC_ALL=en_US.UTF-8
31
- dnl # setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
32
- dnl #
33
- dnl # ALSO: Skip LC_ALL, otherwise when Jenkins runs `docker exec ...` you'll see:
34
- dnl #
35
- dnl # /bin/bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
36
- dnl #
37
- ENV LANGUAGE en_US.UTF-8
38
- ENV LANG en_US.UTF-8
31
+ dnl # FIXME: (lb): Remove the --ascii switch (forced because if !tty?) and
32
+ dnl # see if using C.UTF-8 makes the "invalid byte sequence" error go away.
33
+ ENV LANGUAGE C.UTF-8
34
+ ENV LANG C.UTF-8
35
+ ENV LC_ALL C.UTF-8
39
36
 
40
37
  dnl # Jenkins runs the Execute Shell script on Docker as the 'jenkins' user,
41
38
  dnl # but Docker is confused unless we create that user now and assign it the
@@ -54,17 +51,21 @@ dnl # (lb): So. Weird. Sometimes the Jenkins Docker Volumes mount with 2755
54
51
  dnl # permissions. Othertimes with 2777. In case this happens again, I'll
55
52
  dnl # leaving this code here. Give jenkins user power to fix permissions on the
56
53
  dnl # mounted Volumes: /app/report and /app/coverage mount as 2755 root:root.
54
+ dnl # 2018-01-18: This happened on the new Jenkins jobs. Maybe you only need
55
+ dnl # to do this once per project, and then Jenkins remembers, even when
56
+ dnl # the Docker container cache is invalid and the image is rebuilt?
57
57
  dnl # NOTE: Skipping `RUN apt-get upgrade -y` to run faster.
58
- dnl # RUN \
59
- dnl # echo "deb http://ftp.us.debian.org/debian/ jessie main contrib non-free" \
60
- dnl # >> /etc/apt/sources.list \
61
- dnl # && echo "deb-src http://ftp.us.debian.org/debian/ jessie main contrib non-free" \
62
- dnl # >> /etc/apt/sources.list \
63
- dnl # && apt-get -qq update \
64
- dnl # && apt-get install -y sudo
65
- dnl # #RUN echo "jenkins ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
66
- dnl # RUN echo "jenkins ALL= NOPASSWD: chmod" >> /etc/sudoers
67
- dnl #
58
+ RUN \
59
+ echo "deb http://ftp.us.debian.org/debian/ jessie main contrib non-free" \
60
+ >> /etc/apt/sources.list \
61
+ && echo "deb-src http://ftp.us.debian.org/debian/ jessie main contrib non-free" \
62
+ >> /etc/apt/sources.list \
63
+ && apt-get -qq update \
64
+ && apt-get install -y sudo
65
+ RUN echo "jenkins ALL= NOPASSWD: /bin/chmod" >> /etc/sudoers
66
+ dnl # If you have complainst about sudoers, try:
67
+ dnl # RUN visudo -c
68
+
68
69
  dnl # Create the /app directory and give ownership to the new user, otherwise
69
70
  dnl # if we switch to the new user first, they cannot create the workdir.
70
71
  dnl #
data/dockers/README.rst CHANGED
@@ -29,6 +29,26 @@ Generate Dockerfiles from the M4 template:
29
29
  > dockers/Dockerfile.${ruby_vers}
30
30
  done
31
31
 
32
+ ==============================
33
+ Injected Environment Variables
34
+ ==============================
35
+
36
+ You'll see some environs injected into the config.
37
+
38
+ Some of the environs are user-specific.
39
+
40
+ 2018-01-19: Currently, the tests use Murano accounts created by Landon
41
+ on https://www.exosite-staging.com/::
42
+
43
+ MURANO_USERNAME => Email. Use different accounts for each Jenkins test job.
44
+ E.g., landonbouma+staging-jenkins-ruby-2.2@exosite.com
45
+ landonbouma+staging-jenkins-ruby-2.3@exosite.com
46
+ etc.
47
+
48
+ MURANO_PASSWORD => Obvious.
49
+
50
+ MURANO_BUSINESS => For each new Murano account, create a business. This is its ID.
51
+
32
52
  ===============================================
33
53
  Jenkins project configuration: Murano CLI Tests
34
54
  ===============================================
@@ -111,19 +131,25 @@ Jenkins project configuration: Murano CLI Tests
111
131
 
112
132
  - Network bridge: ``bridge``
113
133
 
134
+ - Inject environment variables to the build process ``✓``
135
+
136
+ - Properties Content::
137
+
138
+ MURANO_BUSINESS=<Business ID from www.exosite-staging.com>
139
+
114
140
  - Inject passwords to the build as environment variables ``✓``
115
141
 
116
142
  - Job passwords
117
143
 
118
144
  - Add
119
145
 
120
- - Name: ``LANDON_PASSWORD``
146
+ - Name: ``MURANO_PASSWORD``
121
147
 
122
148
  - Password: ``****************``
123
149
 
124
150
  - Add
125
151
 
126
- - Name: ``LANDON_USERNAME``
152
+ - Name: ``MURANO_USERNAME``
127
153
 
128
154
  - Password: ``****************``
129
155
 
@@ -160,7 +186,7 @@ Jenkins project configuration: Murano CLI Tests
160
186
 
161
187
  - E-mail Notification
162
188
 
163
- - Recipients: ``landonbouma@exosite.com``
189
+ - Recipients: ``landonbouma@exosite.com miketilstra@exosite.com``
164
190
 
165
191
  =====================================================
166
192
  Jenkins project configuration: Murano CLI Gem Release
@@ -0,0 +1,132 @@
1
+ ###################################
2
+ MURANO CLI GEM RELEASE INSTRUCTIONS
3
+ ###################################
4
+
5
+ (lb): It'd be nice to script this. But for now, copy-paste!
6
+
7
+ ###########################
8
+ One-time Setup Instructions
9
+ ###########################
10
+
11
+ Sign Up for RubyGems Account
12
+ ----------------------------
13
+
14
+ - Sign up for account and request access to Murano CLI gem.
15
+
16
+ https://rubygems.org/
17
+
18
+ - Murano CLI RubyGems.org Repo
19
+
20
+ https://rubygems.org/gems/MuranoCLI
21
+
22
+ Checkout Murano CLI locally
23
+ ---------------------------
24
+
25
+ E.g., this is how (lb) does it::
26
+
27
+ MURCLI_BASE=/exo/clients/exosite/MuranoCLIs
28
+ mkdir -p ${MURCLI_BASE}
29
+ cd ${MURCLI_BASE}
30
+ git clone git@github.com:exosite/MuranoCLI.git exosite+MuranoCLI
31
+
32
+ ###################################
33
+ Copy-paste Gem Release Instructions
34
+ ###################################
35
+
36
+ Set that latest version
37
+ -----------------------
38
+
39
+ Set the release version, e.g.,::
40
+
41
+ MURCLI_VER="3.1.0.beta.8"
42
+ MURCLI_REL="v${MURCLI_VER}"
43
+
44
+ Choose a release: pre or official
45
+ ---------------------------------
46
+
47
+ Official Gem Release::
48
+
49
+ MURCLI_REF="master"
50
+
51
+ Beta/Pre-release Gem Release::
52
+
53
+ MURCLI_REF="develop"
54
+
55
+ Trigger the Gem release build
56
+ -----------------------------
57
+
58
+ Set the variables above, and then tag the appropriate branch::
59
+
60
+ cd ${MURCLI_BASE}/exosite+MuranoCLI
61
+ git checkout ${MURCLI_REL}
62
+ git pull
63
+
64
+ git tag -a "${MURCLI_REL}" -m "Release tag: ${MURCLI_REL}" ${MURCLI_REF}
65
+ git push origin "${MURCLI_REL}"
66
+
67
+ Wait for the build to start
68
+ ---------------------------
69
+
70
+ The Jenkins build server is on a five minute poll. You can either
71
+ start the build yourself, or you can wait for it to start.
72
+
73
+ - Jenkins server URL
74
+
75
+ https://jenkins.exosite.com/job/MuranoCLI/job/Murano%20CLI%20Gem%20Release/
76
+
77
+ Download the built Gem and publish it
78
+ -------------------------------------
79
+
80
+ Create a GitHub token and store in an environ::
81
+
82
+ GITHUB_TOKEN="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
83
+
84
+ Download the built Gem from GitHub::
85
+
86
+ mkdir -p /tmp/gem_push
87
+ pushd /tmp/gem_push
88
+
89
+ OWNER="exosite"
90
+ REPO="MuranoCLI"
91
+ #
92
+ curl --header "Authorization: token ${GITHUB_TOKEN}" \
93
+ --header "Accept: application/json" \
94
+ --remote-name \
95
+ --location https://api.github.com/repos/${OWNER}/${REPO}/releases
96
+ cat releases
97
+ #
98
+ curl --header "Authorization: token ${GITHUB_TOKEN}" \
99
+ --header "Accept: application/json" \
100
+ --remote-name \
101
+ --location \
102
+ https://api.github.com/repos/${OWNER}/${REPO}/releases/tags/v${MURCLI_VER}
103
+ cat v${MURCLI_VER}
104
+ ASSET_ID=$(cat v${MURCLI_VER} | jq '.assets[0].id')
105
+ echo ${ASSET_ID}
106
+ #
107
+ wget \
108
+ -q \
109
+ --auth-no-challenge \
110
+ --header='Accept:application/octet-stream' \
111
+ https://${GITHUB_TOKEN}:@api.github.com/repos/${OWNER}/${REPO}/releases/assets/${ASSET_ID} \
112
+ -O MuranoCLI-${MURCLI_VER}.gem
113
+
114
+ Publish the gem::
115
+
116
+ gem push MuranoCLI-${MURCLI_VER}.gem
117
+ popd
118
+ rm /tmp/gem_push/MuranoCLI-${MURCLI_VER}.gem
119
+ rm /tmp/gem_push/${ASSET_ID}
120
+ rmdir /tmp/gem_push
121
+
122
+ Test!::
123
+
124
+ gem uninstall MuranoCLI
125
+ murano -v
126
+
127
+ gem install MuranoCLI
128
+ murano -v
129
+
130
+ gem install MuranoCLI --pre
131
+ murano -v
132
+
@@ -45,21 +45,19 @@
45
45
 
46
46
  [[ -z ${WORKSPACE} ]] && echo "ERROR: Expected WORKSPACE to be set" && exit 1
47
47
 
48
- export MURANO_USERNAME="${LANDON_USERNAME}"
49
- export MURANO_PASSWORD="${LANDON_PASSWORD}"
50
-
51
48
  [[ -z ${MURANO_USERNAME} ]] && echo "ERROR: Please set MURANO_USERNAME" && exit 1
52
49
  [[ -z ${MURANO_PASSWORD} ]] && echo "ERROR: Please set MURANO_PASSWORD" && exit 1
50
+ [[ -z ${MURANO_BUSINESS} ]] && echo "ERROR: Please set MURANO_BUSINESS" && exit 1
53
51
 
54
52
  # Create a basic Murano CLI config indicating the Murano account credentials.
55
53
 
56
54
  cat > "${WORKSPACE}/test.run.muranocfg" <<-EOCFB
57
55
  [user]
58
- name = landonbouma+jenkins-nix@exosite.com
56
+ name = ${MURANO_USERNAME}
59
57
  [business]
60
- id = hd7opcgbyjfqd7vi
58
+ id = ${MURANO_BUSINESS}
61
59
  [net]
62
- host = bizapi.hosted.exosite.io
60
+ host = bizapi-staging.hosted.exosite.io
63
61
  EOCFB
64
62
  export MURANO_CONFIGFILE="${WORKSPACE}/test.run.muranocfg"
65
63
 
@@ -81,8 +79,8 @@ PATH=${PATH}:/usr/local/bundle/bin
81
79
  # (lb): Sometimes the host drive directories mount as root:root with 2755
82
80
  # permissions. But sometimes not. If it starts happening again, you'll see
83
81
  # Errno::EACCES: Permission denied. Uncomment the sudoers code in Dockerfile.
84
- # chmod 2777 /app/report
85
- # chmod 2777 /app/coverage
82
+ sudo chmod 2777 /app/report
83
+ sudo chmod 2777 /app/coverage
86
84
 
87
85
  echo "############################################################################################"
88
86
  echo "Testing \"$(murano -v)\" on \"$(ruby -v)\""
@@ -228,6 +228,7 @@ Used to group logs together for one endpoint request.
228
228
  cmd_add_format_options_pretty(cmd)
229
229
  cmd_add_format_options_raw(cmd)
230
230
  cmd_add_format_options_message_only(cmd)
231
+ cmd_add_format_options_omit_headers(cmd)
231
232
  cmd_add_format_options_one_line(cmd)
232
233
  cmd_add_format_options_align_columns(cmd)
233
234
  cmd_add_format_options_indent_body(cmd)
@@ -249,7 +250,11 @@ Used to group logs together for one endpoint request.
249
250
  end
250
251
 
251
252
  def cmd_add_format_options_message_only(cmd)
252
- cmd.option '-o', '--message-only', %(Show only headers and the 'print' message)
253
+ cmd.option '-o', '--message-only', %(Show only the 'print' message, and maybe headers)
254
+ end
255
+
256
+ def cmd_add_format_options_omit_headers(cmd)
257
+ cmd.option '-O', '--omit-headers', %(Omit headers)
253
258
  end
254
259
 
255
260
  def cmd_add_format_options_one_line(cmd)
@@ -265,7 +270,7 @@ Used to group logs together for one endpoint request.
265
270
  end
266
271
 
267
272
  def cmd_add_format_options_separators(cmd)
268
- cmd.option '--[no-]separators', %(Indent body content in formatted output)
273
+ cmd.option '--[no-]separators', %(Show separators between log entries)
269
274
  end
270
275
 
271
276
  def cmd_add_format_options_include_tracking(cmd)
@@ -370,6 +375,7 @@ Use a "#{INCLUDE_INDICATOR}" or "#{EXCLUDE_INDICATOR}" prefix to include or excl
370
375
  pretty: true,
371
376
  raw: false,
372
377
  message_only: false,
378
+ omit_headers: false,
373
379
  one_line: false,
374
380
  tracking: false,
375
381
  sprintf: '%Y-%m-%d %H:%M:%S',
@@ -111,13 +111,18 @@ module MrMurano
111
111
  def self.log_pretty_assemble_header(line, options)
112
112
  out = ''
113
113
  raw = ''
114
+ out, raw = log_pretty_assemble_header_meta(line, out, raw, options)
115
+ out, _raw = log_pretty_header_add_message(line, out, raw, options)
116
+ out.empty? && out || out + "\n"
117
+ end
118
+
119
+ def self.log_pretty_assemble_header_meta(line, out, raw, options)
120
+ return [out, raw] if options.omit_headers
114
121
  out, raw = log_pretty_header_add_event_timestamp(line, out, raw, options)
115
122
  out, raw = log_pretty_header_add_murano_tracking(line, out, raw, options)
116
123
  out, raw = log_pretty_header_add_log_record_type(line, out, raw, options)
117
124
  out, raw = log_pretty_header_add_abbreviated_sev(line, out, raw, options)
118
- out, raw = log_pretty_header_add_a_service_event(line, out, raw, options)
119
- out, _raw = log_pretty_header_add_message(line, out, raw, options)
120
- out + "\n"
125
+ log_pretty_header_add_a_service_event(line, out, raw, options)
121
126
  end
122
127
 
123
128
  def self.log_pretty_header_add_abbreviated_sev(line, out, raw, options)
@@ -26,7 +26,7 @@ module MrMurano
26
26
  # '3.0.0-beta.2' is changed to '3.0.0.pre.beta.2'
27
27
  # which breaks our build (which expects the version to match herein).
28
28
  # So stick to using the '.pre.X' syntax, which ruby/gems knows.
29
- VERSION = '3.1.0.beta.8'
29
+ VERSION = '3.1.0'
30
30
  EXE_NAME = File.basename($PROGRAM_NAME)
31
31
  SIGN_UP_URL = 'https://exosite.com/signup/'
32
32
  end
data/spec/cmd_common.rb CHANGED
@@ -250,9 +250,10 @@ RSpec.shared_context 'CI_CMD' do
250
250
  # +Linked ΓÇÿsyncdowntestprd1e8b4034ΓÇÖ to ΓÇÿsyncdowntestapp23d5135bΓÇÖ
251
251
  #
252
252
  # which we can solve with an encode call. (Or but using norm quotes.)
253
- str.nil? && "" || str.encode!(
254
- 'UTF-8', 'UTF-8').tr(%(‘), %(')).tr(%(’), %(')
255
- )
253
+ str.nil? && '' ||
254
+ str.encode!(
255
+ 'UTF-8', 'UTF-8'
256
+ ).tr(%(‘), %(')).tr(%(’), %('))
256
257
  end
257
258
 
258
259
  # *** rb-commander goodies
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: MuranoCLI
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.0.beta.8
4
+ version: 3.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Conrad Tadpol Tilstra
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-01-19 00:00:00.000000000 Z
11
+ date: 2018-01-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: certified
@@ -469,6 +469,7 @@ files:
469
469
  - dockers/Dockerfile.GemRelease
470
470
  - dockers/Dockerfile.m4
471
471
  - dockers/README.rst
472
+ - dockers/RELEASE.rst
472
473
  - dockers/docker-test.sh
473
474
  - dockers/gem-release.sh
474
475
  - docs/basic_example.rst
@@ -660,9 +661,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
660
661
  version: '2.0'
661
662
  required_rubygems_version: !ruby/object:Gem::Requirement
662
663
  requirements:
663
- - - ">"
664
+ - - ">="
664
665
  - !ruby/object:Gem::Version
665
- version: 1.3.1
666
+ version: '0'
666
667
  requirements: []
667
668
  rubyforge_project:
668
669
  rubygems_version: 2.7.4