jeni 0.2.5 → 0.2.6

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,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- OTk0NDE2OWViOTU5YzYzOWMwZTc1YmVkZjZlZGE4M2E0NjNhMTRiZA==
4
+ YmIzMTg5YTE3M2NjN2Q4NzQzNzJjMWI1OGI1M2RlNmNiZmEyMjBkMw==
5
5
  data.tar.gz: !binary |-
6
- ODEwOTA2YzcwNTg3ZGY3NDk1YjlhYmI3MTM4ZTlhZjQ5ZDdhZjYwZg==
7
- !binary "U0hBNTEy":
6
+ MmFhYjUwNjcwNjU4ODEwZWJlZDkyMjdkZTY1MzU1YzkwYzM0NjJhNA==
7
+ SHA512:
8
8
  metadata.gz: !binary |-
9
- MDM1ZjA1ZTUxMjg2OGJjYjY2ZGE5ZWQ3OWFkYTI4ZDA3MmQwYWUxOWVmNTJh
10
- MWU3MmM3NzE1NzAxZjhhYjAzZWE4MmNkZThjMjE5ZDI1ZGZhNjI4N2Y3NTM1
11
- ZDU4OTczYTdhY2Y0ZjNmOWY2YjNmZWZkODBjNTNjMGQ0ZWM0YmY=
9
+ OTgwNDMyNmE2ODNhYjU2NzQwZWJmMjAzYzg3MWQ0NTZlMzMxNDVkNTc0MDEw
10
+ YTdlZDMwYmM3ZTZhNWY4N2RhNGI2OTFkMGY2NmM2MTBjMTVlMzA3NTU2NzJm
11
+ NWIxNjU3ZTE2OTBjYWNhYjJhMTMxYzBlMGJhOGY0NjU2MGQ0Mjg=
12
12
  data.tar.gz: !binary |-
13
- OGU3YzQ1MThhZWJjNTY0NDg0Y2QyOWI1MGVlMDEyNjg3ODE4MTdiYzQ4OGZm
14
- YzhlYWM5NTYxZjgxYWE0YzNlZGI5Yjg2MjdjMDIyYmY1MmEwYWU1ZTQ5MDg5
15
- YjJlZWU2OTdjYTYyMGFkZWQ0NzhkODRjOTU4ZTU3MTllYjBjMTc=
13
+ YTdjYzE1YThiYzNjYjcyNmJhNzQ0MmQ3MjNhZTAwNzI2M2I4ZDU0MTk4ZDhj
14
+ MTdiZDQzMmUwMjkwYTQ3MDkxZDc2MWNmMWUyNzEyYjllNmUyOGZmNDk3ZjAw
15
+ NWY0Zjg0ZWI5N2NiOWE5Yjc1NTJlOWI5YzcwMjhjNDE4YzdhYjI=
data/Bugs.rdoc CHANGED
@@ -1,9 +1,17 @@
1
+ # @markup rdoc
2
+ # @title Bugs and Changes
3
+
1
4
  == Outstanding Bugs and Change Requests for Jeni
2
5
 
6
+ [10-Oct-2014]
7
+
8
+ Convert to an instance eval approach rather than passing self to block!
9
+
3
10
  [20-Aug-2013]
4
11
 
5
12
  * Add a facility to check if a package has been installed and warn if it has not
6
- or even exit on error
13
+ or even exit on error - alternatively just use File.exists? for an executable
14
+ and do it manually!
7
15
 
8
16
  [14-Sep-2012]
9
17
 
@@ -4,6 +4,10 @@
4
4
  == History
5
5
 
6
6
 
7
+ [jeni-0.2.6 13-Oct-2014]
8
+
9
+ General tidy up and sort out of the shebang method.
10
+
7
11
  [jeni-0.2.5 28-Aug-2013]
8
12
 
9
13
  make target_root accessible and ignore chown etc on pretend
@@ -32,4 +36,4 @@
32
36
 
33
37
  [jeni-0.2.0 04-Oct-2012]
34
38
 
35
- Application forked from local 'jeni' due to Gam-space name clash.
39
+ Application forked from local 'jeni' due to Gem-space name clash.
data/README.md CHANGED
@@ -1,7 +1,5 @@
1
1
  # JENI
2
2
 
3
- _(a.k.a Jumpin Ermin's Nifty Installer)_
4
-
5
3
  A simple alternative to rubigen and thor that can be used to create a post-install script
6
4
  for a gem needing more than the standard file ops covered by rubygems. It can also be used
7
5
  for straight directories instead of gems, if required.
@@ -18,7 +16,8 @@ To install,
18
16
 
19
17
  gem install jeni.
20
18
 
21
- It is a plain library with no binaries or the like.
19
+ It is a plain library with no binaries or the like. To use it, you need to write a ruby
20
+ script.
22
21
 
23
22
  ## Getting Started
24
23
 
@@ -98,7 +97,7 @@ If the target is a relative path then it will be relative to /usr/local unless y
98
97
  use the -u switch (with the optparse option) or the {Jeni::Options.usr} method to set
99
98
  it to '/usr'.
100
99
 
101
- Global options can also be set, as defined in #{Jeni::Options}. The same options can be set using {Jeni::Optparse#optparse}
100
+ Global options can also be set, as defined in {Jeni::Options}. The same options can be set using {Jeni::Optparse#optparse}
102
101
  to automatically process command line options. Call it with ARGV instead of manually setting Jeni's options.
103
102
 
104
103
  Jeni::Installer.new_from_gem('jeni') do |jeni|
@@ -110,6 +109,48 @@ to automatically process command line options. Call it with ARGV instead of manu
110
109
  jeni.link('source/jeni.rb', File.join(target_dir, 'jeni_link.rb'))
111
110
  end.run!
112
111
 
112
+ ### Templates
113
+
114
+ Jeni can do more than copy and link files. It can also generate files from a simple
115
+ template. The templating engine is [HAML](http://haml.info/) but Jeni processes the
116
+ template so that it is treated as plain text (otherwise HAML would try to convert)
117
+ the file into HTML).
118
+
119
+ The main reason for having a template is to substitute local values into common files.
120
+ For example, it can be used to create a config file for a gem that can point to files
121
+ within the gem itself - useful for Sinatra with the app directory distributed in the gem.
122
+
123
+ To set a local variable, simply add it as a hash pair to the template call:
124
+
125
+ jeni.template('source/template.haml.rb',
126
+ File.join(target_dir, 'app.conf'),
127
+ app_dir:File.join(jeni.gem_dir, 'app'))
128
+
129
+ Note that Jeni provides the gem directory through its own method {Jeni}Within the template, the hash key becomes a variable: 'app_dir' that can be interpolated
130
+ in the usual manner:
131
+
132
+ # my config file
133
+ APP_ROOT=#{app_dir}
134
+
135
+ Finally, in case it might be useful, you can also have templates stored in standard
136
+ places (~/.jeni/templates and /usr/local/share/templates) and Jeni will search for them when
137
+ you use {Jeni::Installer#standard_template} (you only need to pass the basename).
138
+
139
+ ### Wrappers, gems and rubies
140
+
141
+ Jeni might not be necessary with Gems could install more files. With this in mind, Jeni tries to do
142
+ the same sort of things that Gem does - e.g. create a wrapper script that calls the
143
+ executable script in the gem. It even uses the same shebang approach because the sheband method
144
+ has been lifted and adapted from rubygems. See the method description to understand
145
+ all of the options: {Jeni::Actions#shebang}.
146
+
147
+ However, if you are working on a platform that supports multiple rubies then I would
148
+ recommend you leave selection of which ruby to the system. The only way this appears to
149
+ be possible is with a custom shebang (add "custom_shebang: $env ruby" to your gemrc). This
150
+ does not take any notice of options in the original shebang, but if they are universal you
151
+ could always add them to you custom shebang? This is because the rubygems does pick up
152
+ the original script's shebang but always tampers with the "ruby" bit. e.g. if it
153
+ was /usr/bin/env ruby it changes the ruby to ruby19 (even /usr/bin/ruby19?).
113
154
 
114
155
  ## Code Walkthrough
115
156
 
@@ -130,9 +171,12 @@ Jeni has a variety of options that can be set and are separately defined in {Jen
130
171
 
131
172
  The code is available from [GitHub](https://github.com/osburn-sharp/jeni)
132
173
 
174
+ Jeni stands for "Jumpin Ermin's Nifty Installer". Don't ask.
175
+
176
+
133
177
  ## Dependencies
134
178
 
135
- A ruby compiler - works with 1.8.7.
179
+ A ruby compiler >= 1.8.7. Currently works on 1.9.3 and 2.0.0.
136
180
 
137
181
  Check the {file:Gemfile} for other dependencies.
138
182
 
@@ -169,7 +213,8 @@ To test users and groups there is the following, which will fail if not run as r
169
213
 
170
214
  ## Bugs
171
215
 
172
- Details of any unresolved bugs and change requests are in {file:Bugs.rdoc Bugs}. Issues can be logged and tracked through
216
+ Details of any unresolved bugs and change requests are in {file:Bugs.rdoc Bugs}.
217
+ Issues can be logged and tracked through
173
218
  [GitHub](https://github.com/osburn-sharp/jeni/issues).
174
219
 
175
220
  ## Changelog
@@ -102,9 +102,9 @@ module Jeni
102
102
  # be taken
103
103
  #
104
104
  def self.new_from_gem(gem_name)
105
- gem_spec = Gem::Specification.find_by_name(gem_name)
106
- installer = self.new(gem_spec.gem_dir, gem_name)
107
- installer.set_gem(gem_spec.gem_dir)
105
+ @gem_spec = Gem::Specification.find_by_name(gem_name)
106
+ installer = self.new(@gem_spec.gem_dir, gem_name)
107
+ installer.set_gem(@gem_spec.gem_dir)
108
108
  if block_given? then
109
109
  yield(installer)
110
110
  end
@@ -184,7 +184,7 @@ module Jeni
184
184
  #
185
185
  # @param [String] source is the gem-relative path to the file to copy
186
186
  # @param [String] target is a relative or absolute path to copy to
187
- # @params [Hash] opts options for copying the file
187
+ # @param [Hash] opts options for copying the file
188
188
  # @option opts [String] :chown the name of the owner
189
189
  # @option opts [String] :chgrp the name of the group
190
190
  # @option opts [Octal] :chmod octal bit settings for chmod
@@ -243,7 +243,7 @@ module Jeni
243
243
  # check that a file exists
244
244
  #
245
245
  # @param [String] file to test, relative to the source (e.g. gem)
246
- # @param [Hash] options
246
+ # @param [Hash] opts fpr file checking
247
247
  # @option opts [Symbol] :executable to check if it is also executable
248
248
  #
249
249
  def file_exists?(file, opts={})
@@ -255,7 +255,7 @@ module Jeni
255
255
  # create a new user
256
256
  #
257
257
  # @param [String] name of the new user to create
258
- # @param [Hash] options for creating the user
258
+ # @param [Hash] opts for creating the user
259
259
  # @option opts [Integer] :uid user id instead of next available
260
260
  # @option opts [Integer] :gid group id instead of next available
261
261
  # @option opts [String] :home path to home directory for user, defaults to /home/$user
@@ -274,7 +274,7 @@ module Jeni
274
274
  # create a new group
275
275
  #
276
276
  # @param [String] name of the new group to create
277
- # @param [Hash] options for creating the user
277
+ # @param [Hash] opts for creating the user
278
278
  # @option opts [Integer] :gid group id instead of next available
279
279
  # @option opts [Boolean] :skip set true to skip if user exists else fail
280
280
  #
@@ -317,7 +317,7 @@ module Jeni
317
317
  end
318
318
 
319
319
  # as for {Jeni::Installer#template} but searches for the source template from a list of predefined
320
- # directories. These are ~/.jermine/templates and /usr/local/share/templates
320
+ # directories. These are ~/.jeni/templates and /usr/local/share/templates
321
321
  #
322
322
  # @param (see #template)
323
323
  #
@@ -343,7 +343,7 @@ module Jeni
343
343
  #
344
344
  # @param [String] source is the relative path to the file to wrap
345
345
  # @param [String] target is an absolute path for the wrapper
346
- # @params [Hash] opts options for wrapping the file
346
+ # @param [Hash] opts options for wrapping the file
347
347
  # @option opts [String] :chown the name of the owner
348
348
  #
349
349
  def wrapper(source, target, opts={})
@@ -18,7 +18,9 @@
18
18
 
19
19
  module Jeni
20
20
 
21
- # Implementation mixin containing methods for each action that Jeni carries out
21
+ # Implementation mixin containing methods for each action that Jeni carries out. These
22
+ # are internal methods - full details of the methods to use when writing
23
+ # a Jeni script are contained in the {file:README.md README} file and in {Jeni::Installer}.
22
24
  module Actions
23
25
 
24
26
  # Create a copy of the source file as the target file
@@ -163,7 +165,7 @@ module Jeni
163
165
  # return the path to the standard template, which can be found in
164
166
  # the places search below.
165
167
  def get_template(source)
166
- gsource = File.expand_path(File.join('.jermine', 'templates', source), '~')
168
+ gsource = File.expand_path(File.join('.jeni', 'templates', source), '~')
167
169
  unless File.exists?(gsource)
168
170
  gsource = File.join('usr', 'local', 'share', 'templates', source)
169
171
  unless File.exists(gsource)
@@ -279,60 +281,76 @@ TEXT
279
281
  # Generates a #! line for +bin_file_name+'s wrapper copying arguments if
280
282
  # necessary.
281
283
  #
284
+ # Adapted from rubygems.
285
+ #
282
286
  # If the :custom_shebang config is set, then it is used as a template
283
- # for how to create the shebang used for to run a gem's executables.
287
+ # for how to create the shebang used for to run a gem's executables. Note
288
+ # you can set a custom_shebang in .gemrc e.g. "custom_shebang: $env ruby".
289
+ # It is set as a string and not a symbol.
284
290
  #
285
- # The template supports 4 expansions:
291
+ # A custom shebang overides any other output.
286
292
  #
287
- # $env the path to the unix env utility
288
- # $ruby the path to the currently running ruby interpreter
289
- # $exec the path to the gem's executable
290
- # $name the name of the gem the executable is for
293
+ # if @env_shebang (see {Jeni::Options#env_shebang}) is set then the result will be the local env with the
294
+ # current ruby install name, e.g.: "/usr/bin/env ruby20". If there are
295
+ # options on the original script's shebang then the resultis slightly different.
296
+ # The shebang becomes a /bin/sh, which then exec's the ruby install name with
297
+ # the -x switch and itself as the file, finally inserting the original shebang
298
+ # (although the ruby has been replace with Gem.ruby). Love to know what all
299
+ # this is about!
291
300
  #
292
- def shebang(source)
293
-
294
- env_paths = %w[/usr/bin/env /bin/env]
301
+ # Otherwise the value of Gem.ruby will be used with any of options
302
+ # added to the shebang on the original script.
303
+ #
304
+ # The template used for custom shebangs supports 4 expansions:
305
+ #
306
+ # * $env the path to the unix env utility
307
+ # * $ruby the path to the currently running ruby interpreter
308
+ # * $exec the path to the gem's executable
309
+ # * $name the name of the gem the executable is for
310
+ #
311
+ def shebang(path)
312
+ ruby_name = RbConfig::CONFIG['ruby_install_name'] if @env_shebang
295
313
 
296
- ruby_name = Gem::ConfigMap[:ruby_install_name] #if @env_shebang
314
+ #path = File.join gem_dir, spec.bindir, bin_file_name
315
+ bin_file_name = File.basename(path)
316
+ first_line = File.open(path, "rb") {|file| file.gets}
297
317
 
298
- first_line = File.open(source, "rb") {|file| file.gets}
299
- env_path = nil
300
-
301
318
  if /\A#!/ =~ first_line then
302
319
  # Preserve extra words on shebang line, like "-w". Thanks RPA.
303
320
  shebang = first_line.sub(/\A\#!.*?ruby\S*((\s+\S+)+)/, "#!#{Gem.ruby}")
304
321
  opts = $1
305
322
  shebang.strip! # Avoid nasty ^M issues.
306
323
  end
307
-
324
+
308
325
  if which = Gem.configuration[:custom_shebang]
326
+ # replace bin_file_name with "ruby" to avoid endless loops
327
+ which = which.gsub(/ #{bin_file_name}$/," #{RbConfig::CONFIG['ruby_install_name']}")
328
+
309
329
  which = which.gsub(/\$(\w+)/) do
310
330
  case $1
311
331
  when "env"
312
- env_path ||= env_paths.find do |e_path|
313
- File.executable? e_path
314
- end
332
+ @env_path ||= Gem::Installer::ENV_PATHS.find {|env_path| File.executable? env_path }
315
333
  when "ruby"
316
334
  "#{Gem.ruby}#{opts}"
317
335
  when "exec"
318
336
  bin_file_name
319
337
  when "name"
320
- spec.name
338
+ @app_name
321
339
  end
322
340
  end
323
-
341
+
324
342
  return "#!#{which}"
325
- end
326
-
327
- if not ruby_name then
328
- "#!#{Gem.ruby}#{opts}"
343
+
344
+ elsif not ruby_name then
345
+ return "#!#{Gem.ruby}#{opts}"
329
346
  elsif opts then
330
- "#!/bin/sh\n'exec' #{ruby_name.dump} '-x' \"$0\" \"$@\"\n#{shebang}"
347
+ return "#!/bin/sh\n'exec' #{ruby_name.dump} '-x' \"$0\" \"$@\"\n#{shebang}"
331
348
  else
332
349
  # Create a plain shebang line.
333
- env_path ||= env_paths.find {|e_path| File.executable? e_path }
334
- "#!#{env_path} #{ruby_name}"
335
- end
350
+ @env_path ||= Gem::Installer::ENV_PATHS.find {|env_path| File.executable? env_path }
351
+ return "#!#{@env_path} #{ruby_name}"
352
+ end
353
+
336
354
  end
337
355
 
338
356
  # create a new user
@@ -73,6 +73,11 @@ module Jeni
73
73
  @target_root = path
74
74
  end
75
75
 
76
+ # set the shebang in wrappers to use env (e.g. /usr/bin/env)
77
+ def env_shebang(bool=true)
78
+ @env_shebang = bool
79
+ end
80
+
76
81
  end
77
82
 
78
83
  end
@@ -77,6 +77,10 @@ module Jeni
77
77
  @target_root = t
78
78
  end
79
79
 
80
+ opts.on('-E', '--env-shebang', 'use the default env script in wrapper shebangs!') do
81
+ @env_shebang = true
82
+ end
83
+
80
84
 
81
85
  if block_given? then
82
86
  yield(opts)
@@ -1,13 +1,13 @@
1
1
  # Created by Jevoom
2
2
  #
3
- # 28-Aug-2013
4
- # make target_root accessible and ignore chown etc on pretend
3
+ # 13-Oct-2014
4
+ # General tidy up and sort out of the shebang method.
5
5
 
6
6
  module Jeni
7
- # version set to 0.2.5
8
- Version = '0.2.5'
9
- # date set to 28-Aug-2013
10
- Version_Date = '28-Aug-2013'
11
- #ident string set to: jeni-0.2.5 28-Aug-2013
12
- Ident = 'jeni-0.2.5 28-Aug-2013'
7
+ # version set to 0.2.6
8
+ Version = '0.2.6'
9
+ # date set to 13-Oct-2014
10
+ Version_Date = '13-Oct-2014'
11
+ #ident string set to: jeni-0.2.6 13-Oct-2014
12
+ Ident = 'jeni-0.2.6 13-Oct-2014'
13
13
  end
@@ -0,0 +1,52 @@
1
+ #
2
+ # Author:: Robert Sharp
3
+ # Copyright:: Copyright (c) 2014 Robert Sharp
4
+ # License:: Open Software Licence v3.0
5
+ #
6
+ # This software is licensed for use under the Open Software Licence v. 3.0
7
+ # The terms of this licence can be found at http://www.opensource.org/licenses/osl-3.0.php
8
+ # and in the file copyright.txt. Under the terms of this licence, all derivative works
9
+ # must themselves be licensed under the Open Software Licence v. 3.0
10
+ #
11
+ #
12
+
13
+
14
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
15
+ require 'jeni/errors'
16
+ require 'jeni/actions'
17
+
18
+ proot = File.dirname(File.dirname(__FILE__))
19
+ conf_file = File.expand_path(File.dirname(__FILE__) + '/../test/shebang.rb')
20
+
21
+ # mimic the class without actually having to set one up!
22
+ # have to create the odd instance variable along the way.
23
+ include Jeni::Actions
24
+
25
+ describe Jeni do
26
+
27
+
28
+ it "should output a plain specific ruby with and without env" do
29
+ #@gem_spec = Gem::Specification.find_by_name('jerbil')
30
+ Gem.configuration[:custom_shebang] = nil
31
+ expect(shebang(conf_file)).to match(/\A#!\/usr\/bin\/ruby[0-9]{2,2}\z/)
32
+ @env_shebang = true
33
+ expect(shebang(File.join(proot, 'test', 'noshebang.rb'))).to match(/\A#!\/usr\/bin\/env ruby[0-9]{2,2}\z/)
34
+ end
35
+
36
+ it "should output a custom shebang" do
37
+ Gem.configuration[:custom_shebang] = "$env ruby"
38
+ expect(shebang(conf_file)).to match(/\A#!\/usr\/bin\/env ruby\z/)
39
+ end
40
+
41
+ it "should output a custom shebang with all variables defined" do
42
+ @app_name = 'jerbil'
43
+ Gem.configuration[:custom_shebang] = "$env $ruby $exec $name"
44
+ expect(shebang(conf_file)).to match(/\A#!\/usr\/bin\/env \/usr\/bin\/ruby[0-9]{2,2} shebang.rb jerbil\z/)
45
+ end
46
+
47
+ it "should output a shebang with options" do
48
+ @env_shebang = false
49
+ expect(shebang(File.join(proot, 'test', 'optshebang.rb'))).to match(/\A#!\/usr\/bin\/env ruby[0-9]{2,2} \-x\z/)
50
+ end
51
+
52
+ end
@@ -17,10 +17,10 @@ $LOAD_PATH.unshift(File.dirname(__FILE__))
17
17
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
18
18
  require 'jeni'
19
19
  require 'rspec'
20
- require 'rspec/autorun'
20
+
21
21
 
22
22
  RSpec.configure do |config|
23
- config.color_enabled = true
23
+ config.color = true
24
24
  config.formatter = :doc
25
25
  end
26
26
 
@@ -0,0 +1 @@
1
+ puts "This is ruby"
@@ -0,0 +1 @@
1
+ #!/usr/bin/env ruby -x
@@ -0,0 +1 @@
1
+ #!/usr/bin/env ruby
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jeni
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.5
4
+ version: 0.2.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dr Robert
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-08-28 00:00:00.000000000 Z
11
+ date: 2014-10-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: !binary |-
@@ -70,48 +70,52 @@ extra_rdoc_files:
70
70
  - Gemfile
71
71
  - README.md
72
72
  files:
73
- - History.txt
74
73
  - Bugs.rdoc
74
+ - Gemfile
75
+ - History.txt
75
76
  - Intro.txt
76
77
  - LICENCE.rdoc
77
- - Gemfile
78
78
  - README.md
79
+ - lib/jeni.rb
80
+ - lib/jeni/actions.rb
79
81
  - lib/jeni/errors.rb
80
- - lib/jeni/version.rb
81
- - lib/jeni/utils.rb
82
+ - lib/jeni/io.rb
82
83
  - lib/jeni/options.rb
83
84
  - lib/jeni/optparse.rb
84
- - lib/jeni/io.rb
85
- - lib/jeni/actions.rb
86
- - lib/jeni.rb
87
- - spec/spec_helper.rb
85
+ - lib/jeni/utils.rb
86
+ - lib/jeni/version.rb
87
+ - spec/jeni_shebang_spec.rb
88
88
  - spec/jeni_spec.rb
89
89
  - spec/jeni_utils_spec.rb
90
- - test/examples/source/shebang.rb
91
- - test/examples/source/executable
92
- - test/examples/source/template.haml.rb
90
+ - spec/spec_helper.rb
93
91
  - test/examples/source/coati.haml.conf
94
- - test/examples/source/subfiles/subfile_1.rb
95
- - test/examples/source/jeni.rb
92
+ - test/examples/source/executable
96
93
  - test/examples/source/jeni-diff.rb
97
- - test/examples/test1.rb
98
- - test/examples/test_args
99
- - test/examples/test2.rb
100
- - test/examples/test_users
101
- - test/examples/target/jenny.rb
94
+ - test/examples/source/jeni.rb
95
+ - test/examples/source/shebang.rb
96
+ - test/examples/source/subfiles/subfile_1.rb
97
+ - test/examples/source/template.haml.rb
98
+ - test/examples/target/archive/coati.haml.conf
99
+ - test/examples/target/archive/executable
102
100
  - test/examples/target/archive/jenny-diff.rb
103
101
  - test/examples/target/archive/jenny.rb
104
102
  - test/examples/target/archive/shebang.rb
105
- - test/examples/target/archive/executable
106
- - test/examples/target/archive/template.haml.rb
107
- - test/examples/target/archive/coati.haml.conf
108
103
  - test/examples/target/archive/subfiles/subfile_1.rb
109
- - test/examples/target/jenny_link.rb
110
- - test/examples/target/test.rb
104
+ - test/examples/target/archive/template.haml.rb
111
105
  - test/examples/target/jeni.rb
112
106
  - test/examples/target/jeni_template.rb
107
+ - test/examples/target/jenny.rb
108
+ - test/examples/target/jenny_link.rb
113
109
  - test/examples/target/shebang.rb
110
+ - test/examples/target/test.rb
114
111
  - test/examples/target2/subfiles/subfile_1.rb
112
+ - test/examples/test1.rb
113
+ - test/examples/test2.rb
114
+ - test/examples/test_args
115
+ - test/examples/test_users
116
+ - test/noshebang.rb
117
+ - test/optshebang.rb
118
+ - test/shebang.rb
115
119
  homepage: ''
116
120
  licenses:
117
121
  - Open Software Licence v3.0
@@ -133,7 +137,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
133
137
  version: '0'
134
138
  requirements: []
135
139
  rubyforge_project:
136
- rubygems_version: 2.0.7
140
+ rubygems_version: 2.4.2
137
141
  signing_key:
138
142
  specification_version: 4
139
143
  summary: A little post-install helper for Gems to install things Gems can't reach,