jeni 0.2.0 → 0.2.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.
- data/History.txt +5 -0
- data/README.md +10 -5
- data/lib/jeni.rb +20 -16
- data/lib/jeni/options.rb +5 -0
- data/lib/jeni/optparse.rb +4 -0
- data/lib/jeni/utils.rb +6 -1
- data/lib/jeni/version.rb +9 -8
- data/spec/jeni_utils_spec.rb +8 -5
- data/test/examples/source/{jenny-diff.rb → jeni-diff.rb} +0 -0
- data/test/examples/source/{jenny.rb → jeni.rb} +0 -0
- data/test/examples/{target2/jenny-diff.rb → target/jeni.rb} +0 -0
- data/test/examples/target/jeni_template.rb +10 -0
- data/test/examples/target/shebang.rb +3 -0
- data/test/examples/target/test.rb +30 -0
- data/test/examples/target2/jeni-diff.rb +64 -0
- data/test/examples/target2/{jenny.rb → jeni.rb} +0 -0
- data/test/examples/target2/{jenny_link.rb → jeni_link.rb} +0 -0
- data/test/examples/target2/{jenny_template.rb → jeni_template.rb} +1 -1
- data/test/examples/target2/{jenny_test.rb → jeni_test.rb} +0 -0
- data/test/examples/target2/std_template.rb +1 -1
- data/test/examples/target2/subfiles/subfile_1.rb +63 -0
- data/test/examples/test1.rb +2 -2
- data/test/examples/test2.rb +1 -1
- metadata +16 -11
data/History.txt
CHANGED
data/README.md
CHANGED
@@ -8,7 +8,7 @@ for straight directories instead of gems, if required.
|
|
8
8
|
|
9
9
|
**GitHub:** [https://github.com/osburn-sharp/jeni](https://github.com/osburn-sharp/jeni)
|
10
10
|
|
11
|
-
**RubyDoc:** [http://
|
11
|
+
**RubyDoc:** [http://rubydoc.info/github/osburn-sharp/jeni/frames](http://rubydoc.info/github/osburn-sharp/jeni/frames)
|
12
12
|
|
13
13
|
**RubyGems:** [https://rubygems.org/gems/jeni](https://rubygems.org/gems/jeni)
|
14
14
|
|
@@ -18,7 +18,7 @@ To install,
|
|
18
18
|
|
19
19
|
gem install jeni.
|
20
20
|
|
21
|
-
It is a plain library with no binaries or the like.
|
21
|
+
It is a plain library with no binaries or the like.
|
22
22
|
|
23
23
|
## Getting Started
|
24
24
|
|
@@ -36,8 +36,8 @@ This is a simple example:
|
|
36
36
|
jeni.pretend(opt[:pretend])
|
37
37
|
# copy a file
|
38
38
|
jeni.file('source.rb', '/etc/target.rb')
|
39
|
-
# create a wrapper
|
40
|
-
jeni.wrapper('sbin/jenerate.rb', '
|
39
|
+
# create a wrapper in /usr/local
|
40
|
+
jeni.wrapper('sbin/jenerate.rb', 'sbin/jenerate')
|
41
41
|
end.run!
|
42
42
|
# and run jeni
|
43
43
|
|
@@ -93,6 +93,10 @@ If the source is a relative path then it will be looked for relative to the Inst
|
|
93
93
|
So, for a gem {Jeni::Installer.new_from_gem} it will be relative to the gem's directory and for a directory
|
94
94
|
{Jeni::Installer.new} it will be relative to that. If the source is an absolute path (starts with '/')
|
95
95
|
then it will be used as given.
|
96
|
+
|
97
|
+
If the target is a relative path then it will be relative to /usr/local unless you
|
98
|
+
use the -u switch (with the optparse option) or the {Jeni::Options.usr} method to set
|
99
|
+
it to '/usr'.
|
96
100
|
|
97
101
|
Global options can also be set, as defined in #{Jeni::Options}. The same options can be set using {Jeni::Optparse#optparse}
|
98
102
|
to automatically process command line options. Call it with ARGV instead of manually setting Jeni's options.
|
@@ -134,7 +138,8 @@ Check the {file:Gemfile} for other dependencies.
|
|
134
138
|
|
135
139
|
### Documentation
|
136
140
|
|
137
|
-
Documentation is best viewed using Yard. Documentation is available from
|
141
|
+
Documentation is best viewed using Yard. Documentation is available from
|
142
|
+
[Rubydoc](http://rubydoc.info/github/osburn-sharp/jeni/frames)
|
138
143
|
|
139
144
|
## Testing/Modifying
|
140
145
|
|
data/lib/jeni.rb
CHANGED
@@ -65,6 +65,7 @@ module Jeni
|
|
65
65
|
#@gem_spec = Gem::Specification.find_by_name(@gem_name)
|
66
66
|
#@gem_dir = @gem_spec.gem_dir
|
67
67
|
@source_root = source_root
|
68
|
+
@target_root = '/usr/local/'
|
68
69
|
@commands = []
|
69
70
|
@errors = {}
|
70
71
|
@owner = nil
|
@@ -170,10 +171,13 @@ module Jeni
|
|
170
171
|
end
|
171
172
|
|
172
173
|
# copy a file from the source, relative to the gem home to the target
|
173
|
-
#
|
174
|
+
#
|
175
|
+
# If the target is relative it will joined to the target_root, which is
|
176
|
+
# by default /usr/local. This root can be changed to /usr with either
|
177
|
+
# {Jeni::Options.usr} or through {Jeni::Optparse}.
|
174
178
|
#
|
175
179
|
# @param [String] source is the gem-relative path to the file to copy
|
176
|
-
# @param [String] target is
|
180
|
+
# @param [String] target is a relative or absolute path to copy to
|
177
181
|
# @params [Hash] opts options for copying the file
|
178
182
|
# @option opts [String] :chown the name of the owner
|
179
183
|
# @option opts [String] :chgrp the name of the group
|
@@ -187,11 +191,11 @@ module Jeni
|
|
187
191
|
chmod = opts[:chmod]
|
188
192
|
|
189
193
|
gsource = check_file(source)
|
190
|
-
check_target(target, owner)
|
194
|
+
gtarget = check_target(target, owner)
|
191
195
|
check_chmod(chmod)
|
192
196
|
|
193
|
-
@commands << {:file => [gsource,
|
194
|
-
process_options(opts,
|
197
|
+
@commands << {:file => [gsource, gtarget]}
|
198
|
+
process_options(opts, gtarget)
|
195
199
|
end
|
196
200
|
|
197
201
|
# copy all of the files in the source directory to the target directory
|
@@ -298,11 +302,11 @@ module Jeni
|
|
298
302
|
opts[:chgrp] = locals.delete(:chgrp)
|
299
303
|
|
300
304
|
gsource = check_file(source)
|
301
|
-
check_target(target, opts[:owner])
|
305
|
+
gtarget = check_target(target, opts[:owner])
|
302
306
|
check_chmod(opts[:chmod])
|
303
307
|
|
304
|
-
@commands << {:generate => [gsource,
|
305
|
-
process_options(opts,
|
308
|
+
@commands << {:generate => [gsource, gtarget, locals]}
|
309
|
+
process_options(opts, gtarget)
|
306
310
|
end
|
307
311
|
|
308
312
|
# as for {Jeni::Installer#template} but searches for the source template from a list of predefined
|
@@ -318,11 +322,11 @@ module Jeni
|
|
318
322
|
opts[:chmod] = locals.delete(:chmod)
|
319
323
|
opts[:chgrp] = locals.delete(:chgrp)
|
320
324
|
|
321
|
-
check_target(target, opts[:owner])
|
325
|
+
gtarget = check_target(target, opts[:owner])
|
322
326
|
check_chmod(opts[:chmod])
|
323
327
|
|
324
|
-
@commands << {:generate => [gsource,
|
325
|
-
process_options(opts,
|
328
|
+
@commands << {:generate => [gsource, gtarget, locals]}
|
329
|
+
process_options(opts, gtarget)
|
326
330
|
end
|
327
331
|
|
328
332
|
# create a wrapper script at target to call source in a similar manner to Gem's wrapper
|
@@ -341,10 +345,10 @@ module Jeni
|
|
341
345
|
|
342
346
|
check_gem(:wrapper)
|
343
347
|
gsource = check_file(source)
|
344
|
-
check_target(target, owner)
|
348
|
+
gtarget = check_target(target, owner)
|
345
349
|
|
346
|
-
@commands << {:wrap => [source,
|
347
|
-
@commands << {:chmod => {:file =>
|
350
|
+
@commands << {:wrap => [source, gtarget, gsource]}
|
351
|
+
@commands << {:chmod => {:file => gtarget, :mode => 0755}} if opts.has_key?(:chmod)
|
348
352
|
end
|
349
353
|
|
350
354
|
# create a link at target to source
|
@@ -355,8 +359,8 @@ module Jeni
|
|
355
359
|
def link(source, target)
|
356
360
|
#gsource = File.expand_path(File.join(@source_root, source))
|
357
361
|
gsource = check_file(source)
|
358
|
-
check_target(target)
|
359
|
-
@commands << {:link => [gsource,
|
362
|
+
gtarget = check_target(target)
|
363
|
+
@commands << {:link => [gsource, gtarget]}
|
360
364
|
end
|
361
365
|
|
362
366
|
# output a message in the same format as other messages
|
data/lib/jeni/options.rb
CHANGED
data/lib/jeni/optparse.rb
CHANGED
data/lib/jeni/utils.rb
CHANGED
@@ -43,6 +43,9 @@ module Jeni
|
|
43
43
|
# this will create a target if it does not exist (and all intermediate paths) unless
|
44
44
|
# the nomkdir option is set
|
45
45
|
def check_target(target, owner=nil)
|
46
|
+
unless target[0,1] == '/'
|
47
|
+
target = File.expand_path(File.join(@target_root, target))
|
48
|
+
end
|
46
49
|
dir = File.dirname(target)
|
47
50
|
unless FileTest.directory?(dir)
|
48
51
|
unless @nomkdir
|
@@ -50,13 +53,15 @@ module Jeni
|
|
50
53
|
if owner then
|
51
54
|
@commands << {:chown => {:file => dir, :owner => owner}}
|
52
55
|
end
|
53
|
-
return
|
56
|
+
return target
|
54
57
|
end
|
55
58
|
@errors[:missing] = dir
|
56
59
|
end
|
57
60
|
@errors[:unwritable] = dir unless FileTest.writable?(dir)
|
61
|
+
return target
|
58
62
|
rescue
|
59
63
|
@errors[:unwritable] = dir unless FileTest.writable?(dir)
|
64
|
+
return target
|
60
65
|
end
|
61
66
|
|
62
67
|
# ensure this is called for a gem
|
data/lib/jeni/version.rb
CHANGED
@@ -1,13 +1,14 @@
|
|
1
1
|
# Created by Jevoom
|
2
2
|
#
|
3
|
-
#
|
4
|
-
#
|
3
|
+
# 26-Oct-2012
|
4
|
+
# Added relative paths to targets that can take /usr/ or /usr/local as their root.
|
5
|
+
# Got rspec tests to work
|
5
6
|
|
6
7
|
module Jeni
|
7
|
-
# version set to 0.2.
|
8
|
-
Version = '0.2.
|
9
|
-
# date set to
|
10
|
-
Version_Date = '
|
11
|
-
#ident string set to: jeni-0.2.
|
12
|
-
Ident = 'jeni-0.2.
|
8
|
+
# version set to 0.2.1
|
9
|
+
Version = '0.2.1'
|
10
|
+
# date set to 26-Oct-2012
|
11
|
+
Version_Date = '26-Oct-2012'
|
12
|
+
#ident string set to: jeni-0.2.1 26-Oct-2012
|
13
|
+
Ident = 'jeni-0.2.1 26-Oct-2012'
|
13
14
|
end
|
data/spec/jeni_utils_spec.rb
CHANGED
@@ -24,6 +24,7 @@ class JeniUtils
|
|
24
24
|
include Jeni::Utils
|
25
25
|
include Jeni::Options
|
26
26
|
include Jeni::IO
|
27
|
+
include Jeni::Actions
|
27
28
|
def initialize
|
28
29
|
@app_name = 'jeni'
|
29
30
|
@errors = {}
|
@@ -114,14 +115,16 @@ describe Jeni do
|
|
114
115
|
source_old = File.join(test_dir, 'source', 'jeni.rb')
|
115
116
|
source = File.join(test_dir, 'source', 'jeni-diff.rb')
|
116
117
|
target = File.join(test_dir, 'target', 'jeni.rb')
|
117
|
-
diff = Diffy::Diff.new(
|
118
|
+
diff = Diffy::Diff.new(target, source, :source=>'files').to_s(:color)
|
118
119
|
response = @jeni.say(:exists, target, :warning, true)
|
119
120
|
response2 = @jeni.say(:skipping, target, :warning, true)
|
120
|
-
@jeni.should_receive(:puts).with(response)
|
121
|
-
@jeni.should_receive(:
|
122
|
-
@jeni.should_receive(:
|
123
|
-
@jeni.should_receive(:gets).and_return('d', 'n')
|
121
|
+
@jeni.should_receive(:puts).once.with(response)
|
122
|
+
@jeni.should_receive(:print).once
|
123
|
+
@jeni.should_receive(:gets).and_return('d')
|
124
124
|
@jeni.should_receive(:puts).with(diff)
|
125
|
+
@jeni.should_receive(:print).once
|
126
|
+
@jeni.should_receive(:gets).and_return('n')
|
127
|
+
@jeni.should_receive(:puts).once.with(response2)
|
125
128
|
#@jeni.should_receive(:print)
|
126
129
|
@jeni.copy(source, target).should be_nil
|
127
130
|
FileTest.exists?(target).should be_true
|
File without changes
|
File without changes
|
File without changes
|
@@ -0,0 +1,30 @@
|
|
1
|
+
#!/usr/bin/env ruby18
|
2
|
+
#
|
3
|
+
# This file was generated by RubyGems.
|
4
|
+
#
|
5
|
+
# The application 'jeni' is installed as part of a gem, and
|
6
|
+
# this file is here to facilitate running it.
|
7
|
+
#
|
8
|
+
# Updated to wrap non-bin executables
|
9
|
+
#
|
10
|
+
|
11
|
+
require 'rubygems'
|
12
|
+
|
13
|
+
version = ">= 0"
|
14
|
+
|
15
|
+
# check if there is a version spec here, e.g.: gem_name _0.1.2_ args
|
16
|
+
if ARGV.first
|
17
|
+
str = ARGV.first
|
18
|
+
str = str.dup.force_encoding("BINARY") if str.respond_to? :force_encoding
|
19
|
+
if str =~ /\A_(.*)_\z/
|
20
|
+
# there is, so get it
|
21
|
+
version = $1
|
22
|
+
ARGV.shift
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
gem_spec = Gem::Specification.find_by_name('jeni', version)
|
27
|
+
gem_path = File.join(gem_spec.gem_dir, 'source/jeni.rb')
|
28
|
+
|
29
|
+
gem 'jeni', version
|
30
|
+
load gem_path
|
@@ -0,0 +1,64 @@
|
|
1
|
+
#
|
2
|
+
# Author:: R.J.Sharp
|
3
|
+
# Email:: robert(a)osburn-sharp.ath.cx
|
4
|
+
# Copyright:: Copyright (c) 2012
|
5
|
+
# License:: Open Software Licence v3.0
|
6
|
+
#
|
7
|
+
# This software is licensed for use under the Open Software Licence v. 3.0
|
8
|
+
# The terms of this licence can be found at http://www.opensource.org/licenses/osl-3.0.php
|
9
|
+
# and in the file LICENCE. Under the terms of this licence, all derivative works
|
10
|
+
# must themselves be licensed under the Open Software Licence v. 3.0
|
11
|
+
#
|
12
|
+
#
|
13
|
+
# [requires go here]
|
14
|
+
require 'rubygems'
|
15
|
+
require 'jerbil'
|
16
|
+
|
17
|
+
# = Jeni
|
18
|
+
#
|
19
|
+
# [Description of the main module]
|
20
|
+
module Jeni
|
21
|
+
class Installer
|
22
|
+
|
23
|
+
def initialize(gem_name)
|
24
|
+
@gem_name = gem_name
|
25
|
+
@gem_spec = Gem::Specification.find_by_name(@gem_name)
|
26
|
+
@commands = []
|
27
|
+
end
|
28
|
+
|
29
|
+
def self.construct(gem_name, options={}, &block)
|
30
|
+
@pretend = options[:pretend] || true # JUST FOR NOW!
|
31
|
+
installer = self.new(gem_name)
|
32
|
+
block.call(installer)
|
33
|
+
return self
|
34
|
+
end
|
35
|
+
|
36
|
+
def run!(pretent=false)
|
37
|
+
|
38
|
+
end
|
39
|
+
|
40
|
+
# copy a file from the source, relative to the gem home to the target
|
41
|
+
# which is absolute
|
42
|
+
def file(source, target, opts={})
|
43
|
+
@commands << {:file => {source => target}}
|
44
|
+
if opts.has_key?(:chown) then
|
45
|
+
@commands << {:chown => opts[:chown]}
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
# copy all of the files in a directory
|
50
|
+
def directory(source, target, opts={})
|
51
|
+
|
52
|
+
end
|
53
|
+
|
54
|
+
# create a wrapper at target to call source
|
55
|
+
def wrapper(source, target)
|
56
|
+
|
57
|
+
end
|
58
|
+
|
59
|
+
def link(source, target)
|
60
|
+
|
61
|
+
end
|
62
|
+
|
63
|
+
end
|
64
|
+
end
|
File without changes
|
File without changes
|
File without changes
|
@@ -0,0 +1,63 @@
|
|
1
|
+
#
|
2
|
+
# Author:: R.J.Sharp
|
3
|
+
# Email:: robert(a)osburn-sharp.ath.cx
|
4
|
+
# Copyright:: Copyright (c) 2012
|
5
|
+
# License:: Open Software Licence v3.0
|
6
|
+
#
|
7
|
+
# This software is licensed for use under the Open Software Licence v. 3.0
|
8
|
+
# The terms of this licence can be found at http://www.opensource.org/licenses/osl-3.0.php
|
9
|
+
# and in the file LICENCE. Under the terms of this licence, all derivative works
|
10
|
+
# must themselves be licensed under the Open Software Licence v. 3.0
|
11
|
+
#
|
12
|
+
#
|
13
|
+
# [requires go here]
|
14
|
+
require 'rubygems'
|
15
|
+
|
16
|
+
# = Jeni
|
17
|
+
#
|
18
|
+
# [Description of the main module]
|
19
|
+
module Jeni
|
20
|
+
class Installer
|
21
|
+
|
22
|
+
def initialize(gem_name)
|
23
|
+
@gem_name = gem_name
|
24
|
+
@gem_spec = Gem::Specification.find_by_name(@gem_name)
|
25
|
+
@commands = []
|
26
|
+
end
|
27
|
+
|
28
|
+
def self.construct(gem_name, options={}, &block)
|
29
|
+
@pretend = options[:pretend] || true # JUST FOR NOW!
|
30
|
+
installer = self.new(gem_name)
|
31
|
+
block.call(installer)
|
32
|
+
return self
|
33
|
+
end
|
34
|
+
|
35
|
+
def run!(pretent=false)
|
36
|
+
|
37
|
+
end
|
38
|
+
|
39
|
+
# copy a file from the source, relative to the gem home to the target
|
40
|
+
# which is absolute
|
41
|
+
def file(source, target, opts={})
|
42
|
+
@commands << {:file => {source => target}}
|
43
|
+
if opts.has_key?(:chown) then
|
44
|
+
@commands << {:chown => opts[:chown]}
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
# copy all of the files in a directory
|
49
|
+
def directory(source, target, opts={})
|
50
|
+
|
51
|
+
end
|
52
|
+
|
53
|
+
# create a wrapper at target to call source
|
54
|
+
def wrapper(source, target)
|
55
|
+
|
56
|
+
end
|
57
|
+
|
58
|
+
def link(source, target)
|
59
|
+
|
60
|
+
end
|
61
|
+
|
62
|
+
end
|
63
|
+
end
|
data/test/examples/test1.rb
CHANGED
@@ -7,7 +7,7 @@ require 'rspec/mocks/standalone'
|
|
7
7
|
|
8
8
|
gspec = double("Gem::Specification")
|
9
9
|
Gem::Specification.stub(:find_by_name).and_return(gspec)
|
10
|
-
test_dir = File.dirname(__FILE__)
|
10
|
+
test_dir = File.expand_path(File.dirname(__FILE__))
|
11
11
|
target_dir = File.join(test_dir, 'target2')
|
12
12
|
FileUtils.mkdir(target_dir) unless FileTest.directory?(target_dir)
|
13
13
|
FileUtils.rm_f Dir.glob("#{target_dir}/**")
|
@@ -26,5 +26,5 @@ Jeni::Installer.new_from_gem('jeni') do |jeni|
|
|
26
26
|
jeni.wrapper('source/executable', File.join(target_dir, 'executable'), :chmod=>true)
|
27
27
|
jeni.link('source/jeni.rb', File.join(target_dir, 'jeni_link.rb'))
|
28
28
|
jeni.link('source/shebang.rb', File.join(target_dir, 'jeni_link.rb'))
|
29
|
-
jeni.link('/etc/
|
29
|
+
jeni.link('/etc/init.d/unicorn', File.join(target_dir, 'unicorn.jeni'))
|
30
30
|
end.run!
|
data/test/examples/test2.rb
CHANGED
@@ -4,7 +4,7 @@ require 'rubygems'
|
|
4
4
|
$LOAD_PATH.unshift File.expand_path('../../lib', File.dirname(__FILE__))
|
5
5
|
require 'jeni'
|
6
6
|
|
7
|
-
test_dir = File.dirname(__FILE__)
|
7
|
+
test_dir = File.expand_path(File.dirname(__FILE__))
|
8
8
|
target_dir = File.join(test_dir, 'target2')
|
9
9
|
FileUtils.mkdir(target_dir) unless FileTest.directory?(target_dir)
|
10
10
|
FileUtils.rm_f Dir.glob("#{target_dir}/**")
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jeni
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 21
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 2
|
9
|
-
-
|
10
|
-
version: 0.2.
|
9
|
+
- 1
|
10
|
+
version: 0.2.1
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Dr Robert
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2012-10-
|
18
|
+
date: 2012-10-26 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
type: :runtime
|
@@ -94,13 +94,13 @@ files:
|
|
94
94
|
- spec/spec_helper.rb
|
95
95
|
- spec/jeni_spec.rb
|
96
96
|
- spec/jeni_utils_spec.rb
|
97
|
-
- test/examples/source/jenny-diff.rb
|
98
|
-
- test/examples/source/jenny.rb
|
99
97
|
- test/examples/source/shebang.rb
|
100
98
|
- test/examples/source/executable
|
101
99
|
- test/examples/source/template.haml.rb
|
102
100
|
- test/examples/source/coati.haml.conf
|
103
101
|
- test/examples/source/subfiles/subfile_1.rb
|
102
|
+
- test/examples/source/jeni.rb
|
103
|
+
- test/examples/source/jeni-diff.rb
|
104
104
|
- test/examples/test1.rb
|
105
105
|
- test/examples/test_args
|
106
106
|
- test/examples/test2.rb
|
@@ -114,17 +114,22 @@ files:
|
|
114
114
|
- test/examples/target/archive/coati.haml.conf
|
115
115
|
- test/examples/target/archive/subfiles/subfile_1.rb
|
116
116
|
- test/examples/target/jenny_link.rb
|
117
|
-
- test/examples/
|
118
|
-
- test/examples/
|
117
|
+
- test/examples/target/test.rb
|
118
|
+
- test/examples/target/jeni.rb
|
119
|
+
- test/examples/target/jeni_template.rb
|
120
|
+
- test/examples/target/shebang.rb
|
121
|
+
- test/examples/target2/subfiles/subfile_1.rb
|
122
|
+
- test/examples/target2/jeni_test.rb
|
123
|
+
- test/examples/target2/jeni.rb
|
119
124
|
- test/examples/target2/shebang.rb
|
120
|
-
- test/examples/target2/jenny-diff.rb
|
121
125
|
- test/examples/target2/executable
|
122
126
|
- test/examples/target2/template.haml.rb
|
123
127
|
- test/examples/target2/coati.haml.conf
|
124
|
-
- test/examples/target2/
|
128
|
+
- test/examples/target2/jeni-diff.rb
|
129
|
+
- test/examples/target2/jeni_template.rb
|
125
130
|
- test/examples/target2/coati.conf
|
126
131
|
- test/examples/target2/std_template.rb
|
127
|
-
- test/examples/target2/
|
132
|
+
- test/examples/target2/jeni_link.rb
|
128
133
|
homepage:
|
129
134
|
licenses:
|
130
135
|
- Open Software Licence v3.0
|