falkorlib 0.4.0 → 0.4.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 844b9104ffcc2838a8b9176658a6ee5b3db82e77
4
- data.tar.gz: 918eab8d5e9945fcbc71beeb80d18c3eb2c3a6ae
3
+ metadata.gz: be6b7e9b76a06c18709b775c77d17e487e318cbd
4
+ data.tar.gz: 7ba5fa7986575faea59f5c26d085c5f953f444d1
5
5
  SHA512:
6
- metadata.gz: 204b9fd452435462ee29119978f0747a65138ee6474b546c7a56b76bcc6c8b00c2c60560b8bc7d6ff817ac56829d314551220c54f18a6fde49852189a217ef45
7
- data.tar.gz: 264f60f7e3cc56122815f4e0017cb2b55bf741978710f7c70b61d7f3ec25e541e0e2307e3f7594d085bca9ae639d8c3dc2698890fb04c5814f7ea53ec0651824
6
+ metadata.gz: 91aeab1807f5b5bbdc057bebe6430d686bbd0471985afa9ef89de425ea8e03530912d0b450fc84092d84ec6e2529c7bebc4a404476ec2a5e36b79fa703e7ac28
7
+ data.tar.gz: 079ed9bf07a7a96afc217af7e4b66b75e3ada0d595197ed4cede9c043750fbe4b7233016942125d3db1ce5f003ea6f2ec23b066516dced0dfa711bc2d0f90f42
data/.gitignore CHANGED
@@ -10,3 +10,5 @@ doc/api
10
10
  tmp/
11
11
  *.noespec
12
12
  /.falkorlib.yaml
13
+ /lib/falkorlib/thor.old/
14
+ /.falkor/
data/Gemfile.lock CHANGED
@@ -1,9 +1,10 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- falkorlib (0.4.0)
4
+ falkorlib (0.4.1)
5
5
  awesome_print (~> 1.2)
6
6
  configatron (~> 3.2)
7
+ deep_merge (~> 1.0.1)
7
8
  diffy (>= 3.0)
8
9
  git_remote_branch (~> 0)
9
10
  json (~> 1.8)
@@ -24,6 +25,7 @@ GEM
24
25
  simplecov (>= 0.7.1, < 1.0.0)
25
26
  coderay (1.1.0)
26
27
  configatron (3.2.0)
28
+ deep_merge (1.0.1)
27
29
  diff-lcs (1.1.3)
28
30
  diffy (3.0.7)
29
31
  docile (1.1.5)
data/falkorlib.gemspec CHANGED
@@ -132,6 +132,7 @@ Gem::Specification.new do |s|
132
132
  s.add_runtime_dependency("awesome_print", "~> 1.2")
133
133
  s.add_runtime_dependency("json", "~> 1.8")
134
134
  s.add_runtime_dependency("license-generator", '~> 0')
135
+ s.add_runtime_dependency("deep_merge", '~> 1.0.1')
135
136
  s.add_runtime_dependency("diffy", '>= 3.0')
136
137
  s.add_runtime_dependency("logger", '>= 1.2.8')
137
138
  s.add_runtime_dependency("thor", '>= 0.19')
@@ -1,6 +1,6 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  ################################################################################
3
- # Time-stamp: <Ven 2015-01-23 00:12 svarrette>
3
+ # Time-stamp: <Dim 2015-02-01 14:43 svarrette>
4
4
  ################################################################################
5
5
  # Interface for the main Bootstrapping operations
6
6
  #
@@ -17,14 +17,27 @@ module FalkorLib #:nodoc:
17
17
  module Bootstrap
18
18
  DEFAULTS =
19
19
  {
20
+ :metadata => {
21
+ :name => '',
22
+ :version => '0.0.1',
23
+ :author => "#{ENV['GIT_AUTHOR_NAME']}",
24
+ :mail => "#{ENV['GIT_AUTHOR_EMAIL']}",
25
+ :summary => "rtfm",
26
+ :description => '',
27
+ :source => '',
28
+ :project_page => '',
29
+ :issues_url => '',
30
+ :tags => []
31
+ },
20
32
  :trashdir => '.Trash',
21
33
  :types => [ 'article', 'slides', 'gem', 'octopress', 'puppet_module', 'rvm' ],
22
- :rvm => {
23
- :version => '1.9.3',
24
- :versionfile => '.ruby-version',
25
- :gemsetfile => '.ruby-gemset'
26
- },
27
34
  :puppet => {},
35
+ :forge => {
36
+ :gforge => { :url => 'http://gforge.uni.lu', :name => 'GForge @ Uni.lu' },
37
+ :github => { :url => 'http://github.com', :name => 'Github', :login => 'ULHPC' },
38
+ :gitlab => { :url => 'http://gitlab.uni.lu', :name => 'Gitlab @ Uni.lu' },
39
+ :none => { :url => '', :name => "None"}
40
+ },
28
41
  }
29
42
 
30
43
 
@@ -210,7 +223,8 @@ module FalkorLib
210
223
  ###### versionfile ######
211
224
  # Bootstrap a VERSION file at the root of a project
212
225
  # Supported options:
213
- # * :file [string] filename
226
+ # * :file [string] filename
227
+ # * :version [string] version to mention in the file
214
228
  ##
215
229
  def versionfile(dir = Dir.pwd, options = {})
216
230
  file = options[:file] ? options[:file] : 'VERSION'
@@ -225,17 +239,74 @@ module FalkorLib
225
239
  end
226
240
  versionfile = File.join(path, file)
227
241
  unless File.exists?( versionfile )
228
- run %{ echo "#{version}" > #{versionfile} }
229
- if FalkorLib::Git.init?(path)
230
- FalkorLib::Git.add(versionfile, "Initialize #{file} file")
231
- Dir.chdir( path ) do
232
- run %{ git tag #{options[:tag]} } if options[:tag]
233
- end
242
+ FalkorLib::Versioning.set_version(version, path, {
243
+ :type => 'file',
244
+ :source => { :filename => file }
245
+ })
246
+ Dir.chdir( path ) do
247
+ run %{ git tag #{options[:tag]} } if options[:tag]
234
248
  end
235
249
  else
236
250
  puts " ... not overwriting the #{file} file which already exists"
237
251
  end
252
+
253
+ # unless File.exists?( versionfile )
254
+ # run %{ echo "#{version}" > #{versionfile} }
255
+ # if FalkorLib::Git.init?(path)
256
+ # FalkorLib::Git.add(versionfile, "Initialize #{file} file")
257
+ # Dir.chdir( path ) do
258
+ # run %{ git tag #{options[:tag]} } if options[:tag]
259
+ # end
260
+ # end
261
+ # else
262
+ # puts " ... not overwriting the #{file} file which already exists"
263
+ # end
238
264
  end # versionfile
239
265
 
266
+
267
+ ###### readme ######
268
+ # Bootstrap a README file for various context
269
+ # Supported options:
270
+ # * :force [boolean] force overwritting
271
+ # * :latex [boolean] describe a LaTeX project
272
+ # * :octopress [boolean] octopress site
273
+ ##
274
+ def readme(dir = Dir.pwd, type = 'latex', options = {})
275
+ info "Bootstrap a README file"
276
+ #if File.exists?(File.join(dir, ))
277
+ config = FalkorLib::Config::Bootstrap::DEFAULTS[:metadata].clone
278
+ config[:filename] = options[:filename] ? options[:filename] : 'README.md'
279
+ config[:name] = options[:name] ? options[:name] : File.basename(dir)
280
+ default_forge = options[:forge] ? options[:forge] : :github
281
+ forges = FalkorLib::Config::Bootstrap::DEFAULTS[:forge]
282
+ case select_forge(default_forge)
283
+ when :gforge
284
+ config[:project_page] = forges[:url] + "/projects/"
285
+ end
286
+
287
+
288
+ # config[:project_page] = case forge
289
+ # when :gforge
290
+
291
+ # end
292
+ end # readme
293
+
294
+ ###
295
+ # Select the forge (gforge, github, etc.) hosting the project sources
296
+ ##
297
+ def select_forge(default = :gforge, options = {})
298
+ forge = FalkorLib::Config::Bootstrap::DEFAULTS[:forge]
299
+ ap forge
300
+ default_idx = forge.keys.index(default)
301
+ default_idx = 0 if default_idx.nil?
302
+ v = select_from(forge.map{ |k,v| v[:name] },
303
+ "Select the Forge hosting the project sources",
304
+ default_idx+1,
305
+ forge.keys)
306
+ ap v
307
+ end # select_forge
308
+
309
+
310
+
240
311
  end # module Bootstrap
241
312
  end # module FalkorLib
@@ -1,6 +1,6 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  ################################################################################
3
- # Time-stamp: <Ven 2015-01-23 00:00 svarrette>
3
+ # Time-stamp: <Ven 2015-01-30 15:20 svarrette>
4
4
  ################################################################################
5
5
 
6
6
  require 'thor'
@@ -88,7 +88,13 @@ These files will be committed in Git to ensure a consistent environment for the
88
88
  FalkorLib::Bootstrap.versionfile(path, options)
89
89
  end # versionfile
90
90
 
91
-
91
+
92
+ ###### readme ######
93
+ #......................................
94
+ desc "readme PATH [options]", "Initiate a README file in the PATH directory"
95
+ def readme(path = '.')
96
+ FalkorLib::Bootstrap.readme(path, options)
97
+ end # readme
92
98
  end # class Init
93
99
  end # module CLI
94
100
  end # module FalkorLib
@@ -1,6 +1,6 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  ################################################################################
3
- # Time-stamp: <Mer 2015-01-21 22:36 svarrette>
3
+ # Time-stamp: <Sam 2015-01-31 23:54 svarrette>
4
4
  ################################################################################
5
5
 
6
6
  require "falkorlib"
@@ -244,8 +244,15 @@ module FalkorLib #:nodoc:
244
244
  ###############################
245
245
 
246
246
  # Return the yaml content as a Hash object
247
- def load_config(filepath)
248
- YAML::load_file(filepath)
247
+ def load_config(file)
248
+ unless File.exists?(file)
249
+ raise FalkorLib::Error, "Unable to find the YAML file '#{file}'"
250
+ end
251
+ loaded = YAML::load_file(file)
252
+ unless loaded.is_a?(Hash)
253
+ raise FalkorLib::Error, "Corrupted or invalid YAML file '#{file}'"
254
+ end
255
+ loaded
249
256
  end
250
257
 
251
258
  # Store the Hash object as a Yaml file
@@ -273,11 +280,11 @@ module FalkorLib #:nodoc:
273
280
  # :erb_exclude [array of strings]: pattern(s) to exclude from erb file
274
281
  # interpretation and thus to copy 'as is'
275
282
  # :no_interaction [boolean]: do not interact
276
- def init_from_template(templatedir, rootdir, config = {},
283
+ def init_from_template(templatedir, rootdir, config = {},
277
284
  options = {
278
- :erb_exclude => [],
279
- :no_interaction => false
280
- })
285
+ :erb_exclude => [],
286
+ :no_interaction => false
287
+ })
281
288
  error "Unable to find the template directory" unless File.directory?(templatedir)
282
289
  warning "about to initialize/update the directory #{rootdir}"
283
290
  really_continue?
@@ -307,61 +314,61 @@ module FalkorLib #:nodoc:
307
314
  end
308
315
  end
309
316
 
310
- ###
317
+ ###
311
318
  # ERB generation of the file `outfile` using the source template file `erbfile`
312
319
  # Supported options:
313
320
  # :no_interaction [boolean]: do not interact
314
- def write_from_erb_template(erbfile, outfile, config = {},
321
+ def write_from_erb_template(erbfile, outfile, config = {},
315
322
  options = {
316
- :no_interaction => false
317
- })
323
+ :no_interaction => false
324
+ })
318
325
  error "Unable to find the template file #{erbfile}" unless File.exists? (erbfile )
319
326
  template = File.read("#{erbfile}")
320
327
  output = ERB.new(template, nil, '<>')
321
328
  content = output.result(binding)
322
- show_diff_and_write(content, outfile, options)
329
+ show_diff_and_write(content, outfile, options)
323
330
  end
324
331
 
325
332
  ## Show the difference between a `content` string and an destination file (using Diff algorithm).
326
- # Obviosuly, if the outfile does not exists, no difference is proposed.
333
+ # Obviosuly, if the outfile does not exists, no difference is proposed.
327
334
  # Supported options:
328
335
  # :no_interaction [boolean]: do not interact
329
336
  # :json_pretty_format [boolean]: write a json content, in pretty format
330
337
  #
331
338
  # return 0 if nothing happened, 1 if a write has been done
332
339
  def show_diff_and_write(content, outfile, options = {
333
- :no_interaction => false,
334
- :json_pretty_format => false,
335
- })
336
- if File.exists?( outfile )
337
- ref = File.read( outfile )
338
- if options[:json_pretty_format]
339
- ref = JSON.pretty_generate (JSON.parse( IO.read( outfile ) ))
340
- end
341
- if ref == content
342
- warn "Nothing to update"
343
- return 0
344
- end
345
- warn "the file '#{outfile}' already exists and will be overwritten."
346
- warn "Expected difference: \n------"
347
- Diffy::Diff.default_format = :color
348
- puts Diffy::Diff.new(ref, content, :context => 1)
349
- else
350
- watch = options[:no_interaction] ? 'no' : ask( cyan(" ==> Do you want to see the generated file before commiting the writing (y|N)"), 'No')
351
- puts content if watch =~ /y.*/i
352
- end
353
- proceed = options[:no_interaction] ? 'yes' : ask( cyan(" ==> proceed with the writing (Y|n)"), 'Yes')
340
+ :no_interaction => false,
341
+ :json_pretty_format => false,
342
+ })
343
+ if File.exists?( outfile )
344
+ ref = File.read( outfile )
345
+ if options[:json_pretty_format]
346
+ ref = JSON.pretty_generate (JSON.parse( IO.read( outfile ) ))
347
+ end
348
+ if ref == content
349
+ warn "Nothing to update"
350
+ return 0
351
+ end
352
+ warn "the file '#{outfile}' already exists and will be overwritten."
353
+ warn "Expected difference: \n------"
354
+ Diffy::Diff.default_format = :color
355
+ puts Diffy::Diff.new(ref, content, :context => 1)
356
+ else
357
+ watch = options[:no_interaction] ? 'no' : ask( cyan(" ==> Do you want to see the generated file before commiting the writing (y|N)"), 'No')
358
+ puts content if watch =~ /y.*/i
359
+ end
360
+ proceed = options[:no_interaction] ? 'yes' : ask( cyan(" ==> proceed with the writing (Y|n)"), 'Yes')
354
361
  return 0 if proceed =~ /n.*/i
355
362
  info("=> writing #{outfile}")
356
363
  File.open("#{outfile}", "w+") do |f|
357
- f.write content
364
+ f.write content
365
+ end
366
+ if FalkorLib::Git.init?(File.dirname(outfile))
367
+ do_commit = options[:no_interaction] ? 'yes' : ask( cyan(" ==> commit the changes (Y|n)"), 'Yes')
368
+ FalkorLib::Git.add(outfile, "update content of '#{File.basename(outfile)}'") if do_commit =~ /y.*/i
358
369
  end
359
- if FalkorLib::Git.init?(File.dirname(outfile))
360
- do_commit = options[:no_interaction] ? 'yes' : ask( cyan(" ==> commit the changes (Y|n)"), 'Yes')
361
- FalkorLib::Git.add(outfile, "update content of '#{File.basename(outfile)}'") if do_commit =~ /y.*/i
362
- end
363
- return 1
364
- end
370
+ return 1
371
+ end
365
372
 
366
373
 
367
374
  ## Blind copy of a source file `src` into its destination directory `dstdir`
@@ -370,26 +377,26 @@ module FalkorLib #:nodoc:
370
377
  # :srcdir [string]: source directory, make the `src` file relative to that directory
371
378
  # :outfile [string]: alter the outfile name (File.basename(src) by default)
372
379
  def write_from_template(src,dstdir,options = {
373
- :no_interaction => false,
374
- :srcdir => '',
375
- :outfile => ''
376
- })
377
- srcfile = options[:srcdir].nil? ? src : File.join(options[:srcdir], src)
378
- error "Unable to find the source file #{srcfile}" unless File.exists? ( srcfile )
379
- error "The destination directory '#{dstdir}' do not exist" unless File.directory?( dstdir )
380
- dstfile = options[:outfile].nil? ? File.basename(srcfile) : options[:outfile]
381
- outfile = File.join(dstdir, dstfile)
382
- content = File.read( srcfile )
383
- show_diff_and_write(content, outfile, options)
380
+ :no_interaction => false,
381
+ :srcdir => '',
382
+ :outfile => ''
383
+ })
384
+ srcfile = options[:srcdir].nil? ? src : File.join(options[:srcdir], src)
385
+ error "Unable to find the source file #{srcfile}" unless File.exists? ( srcfile )
386
+ error "The destination directory '#{dstdir}' do not exist" unless File.directory?( dstdir )
387
+ dstfile = options[:outfile].nil? ? File.basename(srcfile) : options[:outfile]
388
+ outfile = File.join(dstdir, dstfile)
389
+ content = File.read( srcfile )
390
+ show_diff_and_write(content, outfile, options)
384
391
  end # copy_from_template
385
392
 
386
393
 
387
394
  ### RVM init
388
395
  def init_rvm(rootdir = Dir.pwd, gemset = '')
389
396
  rvm_files = {
390
- :version => File.join(rootdir, '.ruby-version'),
391
- :gemset => File.join(rootdir, '.ruby-gemset')
392
- }
397
+ :version => File.join(rootdir, '.ruby-version'),
398
+ :gemset => File.join(rootdir, '.ruby-gemset')
399
+ }
393
400
  unless File.exists?( "#{rvm_files[:version]}")
394
401
  v = select_from(FalkorLib.config[:rvm][:rubies],
395
402
  "Select RVM ruby to configure for this directory",
@@ -414,16 +421,16 @@ module FalkorLib #:nodoc:
414
421
  # * :relative [boolean] return relative path to the root dir
415
422
  ##
416
423
  def normalized_path(dir = Dir.pwd, options = {})
417
- rootdir = FalkorLib::Git.init?(dir) ? FalkorLib::Git.rootdir(dir) : dir
418
- path = dir
419
- path = Dir.pwd if dir == '.'
420
- path = File.join(Dir.pwd, dir) unless (dir =~ /^\// or dir == '.')
421
- if (options[:relative] or options[:relative_to])
422
- root = options[:relative_to] ? options[:relative_to] : rootdir
423
- relative_path_to_root = Pathname.new( File.realpath(path) ).relative_path_from Pathname.new(root)
424
- path = relative_path_to_root.to_s
425
- end
426
- return path
424
+ rootdir = FalkorLib::Git.init?(dir) ? FalkorLib::Git.rootdir(dir) : dir
425
+ path = dir
426
+ path = Dir.pwd if dir == '.'
427
+ path = File.join(Dir.pwd, dir) unless (dir =~ /^\// or dir == '.')
428
+ if (options[:relative] or options[:relative_to])
429
+ root = options[:relative_to] ? options[:relative_to] : rootdir
430
+ relative_path_to_root = Pathname.new( File.realpath(path) ).relative_path_from Pathname.new(root)
431
+ path = relative_path_to_root.to_s
432
+ end
433
+ return path
427
434
  end # normalize_path
428
435
 
429
436
  end
@@ -1,6 +1,6 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  ################################################################################
3
- # Time-stamp: <Mer 2015-01-21 09:25 svarrette>
3
+ # Time-stamp: <Jeu 2015-02-12 11:07 svarrette>
4
4
  ################################################################################
5
5
  # FalkorLib Configuration
6
6
  #
@@ -11,6 +11,7 @@ require "falkorlib"
11
11
 
12
12
  require "configatron"
13
13
  require "configatron/store"
14
+ require "deep_merge"
14
15
 
15
16
  module FalkorLib #:nodoc:
16
17
 
@@ -40,74 +41,68 @@ module FalkorLib #:nodoc:
40
41
  module Config #:nodoc:
41
42
  # Defaults global settings
42
43
  DEFAULTS = {
43
- :debug => false,
44
- :root => Dir.pwd,
45
- :custom_cfg => '.falkorlib.yaml',
46
- :rvm => {
47
- :rubies => [ '1.9.3', '2.0.0', '2.1.0'],
48
- :versionfile => '.ruby-version',
49
- :gemsetfile => '.ruby-gemset'
50
- },
51
- :templates => {
52
- :trashdir => '.Trash',
53
- :puppet => {}
54
- },
55
- :tokens => {
56
- :code_climate => ''
57
- }
58
- }
44
+ :debug => false,
45
+ :verbose => false,
46
+ :root => Dir.pwd,
47
+ :config_files => {
48
+ :local => '.falkor/config',
49
+ :private => '.falkor/private',
50
+ #:project => '.falkor/project',
51
+ },
52
+ #:custom_cfg => '.falkorlib.yaml',
53
+ :rvm => {
54
+ :rubies => [ '1.9.3', '2.0.0', '2.1.0'],
55
+ :version => '1.9.3',
56
+ :versionfile => '.ruby-version',
57
+ :gemsetfile => '.ruby-gemset'
58
+ },
59
+ :templates => {
60
+ :trashdir => '.Trash',
61
+ :puppet => {}
62
+ },
63
+ :tokens => { :code_climate => '' },
64
+ :project => {}
65
+ }
59
66
 
60
67
  module_function
61
68
 
62
69
  ## Build the default configuration hash, to be used to initiate the default.
63
- # The hash is built depending on the loaded files.
70
+ # The hash is built depending on the loaded files.
64
71
  def default
65
72
  res = FalkorLib::Config::DEFAULTS
66
- $LOADED_FEATURES.each do |path|
73
+ $LOADED_FEATURES.each do |path|
67
74
  res[:git] = FalkorLib::Config::Git::DEFAULTS if path.include?('lib/falkorlib/git.rb')
68
75
  res[:gitflow] = FalkorLib::Config::GitFlow::DEFAULTS if path.include?('lib/falkorlib/git.rb')
69
- res[:versioning] = FalkorLib::Config::Versioning::DEFAULTS if path.include?('lib/falkorlib/versioning.rb')
70
- if path.include?('lib/falkorlib/puppet.rb')
71
- res[:puppet] = FalkorLib::Config::Puppet::DEFAULTS
72
- res[:templates][:puppet][:modules] = FalkorLib::Config::Puppet::Modules::DEFAULTS[:metadata]
73
- end
76
+ res[:versioning] = FalkorLib::Config::Versioning::DEFAULTS if path.include?('lib/falkorlib/versioning.rb')
77
+ if path.include?('lib/falkorlib/puppet.rb')
78
+ res[:puppet] = FalkorLib::Config::Puppet::DEFAULTS
79
+ res[:templates][:puppet][:modules] = FalkorLib::Config::Puppet::Modules::DEFAULTS[:metadata]
80
+ end
81
+ end
82
+ # Check the potential local customizations
83
+ [:local, :private].each do |type|
84
+ custom_cfg = File.join( res[:root], res[:config_files][type.to_sym])
85
+ if File.exists?( custom_cfg )
86
+ res.deep_merge!( load_config( custom_cfg ) )
87
+ end
74
88
  end
75
- # Check the potential local customizations
76
- custom_cfg = File.join( res[:root], res[:custom_cfg])
77
- if File.exists?( custom_cfg )
78
- res.merge!( load_config( custom_cfg ) )
79
- end
80
89
  res
81
90
  end
82
91
 
83
- end
84
-
85
- # config = Thread.current[:config] ||= Configatron::Store.new
92
+ ###### load_project ######
93
+ # Return the local project configuration
94
+ ##
95
+ def load_project(dir = Dir.pwd, options = {})
96
+ project_file = options[:file] ? options[:file] : FalkorLib.config[:config_files][:local]
97
+ path = normalized_path(dir)
98
+ path = FalkorLib::Git.rootdir(path) if FalkorLib::Git.init?(path)
99
+ res = {}
100
+ #if File.exists?( )
101
+ end # load_project
86
102
 
87
- # # Singleton configuration class
88
- # class Config
89
- # include Singleton
90
103
 
91
- # # Give memoized defaults for locked configuration options found in /config/falkorlib.yml file
92
- # #
93
- # # @example Usage
94
- # # conf = Configuration.instance.defaults
95
- # # conf.base_url #=> "http://ambito.com/economia/mercados/monedas/dolar/"
96
- # # conf.blue.buy.xpath #=> "//*[@id=\"contenido\"]/div[1]/div[2]/div/div/div[2]/big"
97
- # #
98
- # # @return [Configatron::Store] the magic configuration instance with hash and dot '.' indifferent access
99
- # def defaults
100
- # return @config if @config
101
-
102
- # @config = Configatron::Store.new
103
- # file_path = File.expand_path('../../../config/falkorlib.yml', __FILE__)
104
- # hash_config = YAML::load_file(file_path)
104
+ end
105
105
 
106
- # @config.configure_from_hash(hash_config)
107
- # @config.lock!
108
- # @config
109
- # end
110
- # end
111
106
 
112
107
 
113
108
  end # module FalkorLib
@@ -0,0 +1,28 @@
1
+ # -*- encoding: utf-8 -*-
2
+ ################################################################################
3
+ # Time-stamp: <Sam 2015-01-31 21:07 svarrette>
4
+ ################################################################################
5
+ # Falkorlib errors
6
+
7
+ module FalkorLib
8
+
9
+ # Errors
10
+ class Error < ::StandardError
11
+
12
+ class << self
13
+ attr_accessor :status_code
14
+ end
15
+
16
+ def status_code
17
+ self.class.status_code
18
+ end
19
+ end
20
+
21
+ class Exit < Error; self.status_code = 0; end
22
+ class FalkorError < Error; self.status_code = 1; end
23
+ class ExecError < Error; self.status_code = 2; end
24
+ class InternalError < Error; self.status_code = 3; end
25
+ class ArgumentError < Error; self.status_code = 4; end
26
+ class AbortError < Error; self.status_code = 5; end
27
+ class TemplateNotFound < Error; self.status_code = 6; end
28
+ end
@@ -1,6 +1,6 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  ################################################################################
3
- # Time-stamp: <Jeu 2015-01-22 17:57 svarrette>
3
+ # Time-stamp: <Sam 2015-01-24 19:33 svarrette>
4
4
  ################################################################################
5
5
  # Interface for the main Git operations
6
6
  #
@@ -155,10 +155,12 @@ module FalkorLib #:nodoc:
155
155
  cg = MiniGit::Capturing.new(dir)
156
156
  res = (cg.config :list => true).split("\n")
157
157
  res.select! { |e| e.match(key) } unless key =='*'
158
- res = res.map { |e| e.split('=') }.to_h if options[:hash]
158
+ #res = res.map { |e| e.split('=') }.to_h if options[:hash]
159
+ res = Hash[ res.map { |e| e.split('=') } ] if options[:hash]
159
160
  else
160
161
  g = MiniGit.new(dir)
161
162
  res = g[key]
163
+ res = { key => g[key] } if options[:hash]
162
164
  end
163
165
  #ap res
164
166
  res
@@ -1,9 +1,11 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  ################################################################################
3
- # Time-stamp: <Jeu 2015-01-15 17:26 svarrette>
3
+ # Time-stamp: <Ven 2015-01-30 16:19 svarrette>
4
4
  ################################################################################
5
5
  # Place the component you wish to see loaded
6
6
 
7
+
8
+ require "falkorlib/error"
7
9
  require "falkorlib/config"
8
10
  require "falkorlib/common"
9
11
  require "falkorlib/git"
@@ -35,7 +35,8 @@ begin
35
35
  #t.pattern = "spec/**/puppet*spec.rb"
36
36
  #t.pattern = "spec/**/bootstrap*spec.rb"
37
37
  #t.pattern = "spec/**/gitf*spec.rb"
38
-
38
+ #t.pattern = "spec/**/error*spec.rb"
39
+
39
40
  # Whether or not to fail Rake when an error occurs (typically when
40
41
  # examples fail).
41
42
  t.fail_on_error = true
@@ -19,7 +19,7 @@ module FalkorLib #:nodoc:
19
19
  # MAJOR: Defines the major version
20
20
  # MINOR: Defines the minor version
21
21
  # PATCH: Defines the patch version
22
- MAJOR, MINOR, PATCH = 0, 4, 0
22
+ MAJOR, MINOR, PATCH = 0, 4, 1
23
23
 
24
24
  module_function
25
25
 
@@ -1,6 +1,6 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  ################################################################################
3
- # Time-stamp: <Dim 2014-08-31 22:00 svarrette>
3
+ # Time-stamp: <Dim 2015-01-25 16:04 svarrette>
4
4
  ################################################################################
5
5
  # @author Sebastien Varrette <Sebastien.Varrette@uni.lu>
6
6
  #
@@ -16,27 +16,27 @@ module FalkorLib #:nodoc:
16
16
  module Versioning
17
17
  # Versioning Management defaults
18
18
  DEFAULTS = {
19
- :default => '0.0.1',
20
- :levels => [ 'major', 'minor', 'patch' ],
21
- :type => 'file',
22
- :source => {
23
- 'file' => {
24
- :filename => 'VERSION'
25
- },
26
- 'gem' => {
27
- :filename => 'lib/falkorlib/version.rb',
28
- :getmethod => 'FalkorLib::Version.to_s',
29
- #:setmethod => 'FalkorLib::Version.set',
30
- #:pattern => '^(\s*)MAJOR\s*,\s*MINOR,\s*PATCH\s*=\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)'
31
- },
32
- 'puppet_module' => {
33
- :filename => 'metadata.json'
34
- },
35
- 'tag' => {
36
- :suffix => 'v'
37
- },
38
- }
39
- }
19
+ :default => '0.0.1',
20
+ :levels => [ 'major', 'minor', 'patch' ],
21
+ :type => 'file',
22
+ :source => {
23
+ 'file' => {
24
+ :filename => 'VERSION'
25
+ },
26
+ 'gem' => {
27
+ :filename => 'lib/falkorlib/version.rb',
28
+ :getmethod => 'FalkorLib::Version.to_s',
29
+ #:setmethod => 'FalkorLib::Version.set',
30
+ #:pattern => '^(\s*)MAJOR\s*,\s*MINOR,\s*PATCH\s*=\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)'
31
+ },
32
+ 'puppet_module' => {
33
+ :filename => 'metadata.json'
34
+ },
35
+ 'tag' => {
36
+ :suffix => 'v'
37
+ },
38
+ }
39
+ }
40
40
  end
41
41
  end
42
42
 
@@ -66,13 +66,17 @@ module FalkorLib #:nodoc:
66
66
  res
67
67
  end
68
68
 
69
-
70
- ## get the current version
71
- def get_version(rootdir = Dir.pwd)
72
- version = FalkorLib.config[:versioning][:default]
73
- type = FalkorLib.config[:versioning][:type]
74
- source = FalkorLib.config[:versioning][:source][ type ]
75
- case type
69
+ ######
70
+ # Get the current version
71
+ # Supported options:
72
+ # * :default [string] default version
73
+ # * :type in ['file','gem','puppet_module'] type of versionning mechanism
74
+ # * :source [Hash] information on the way to retrieve the information
75
+ def get_version(rootdir = Dir.pwd, options = {})
76
+ version = options[:default] ? options[:default] : FalkorLib.config[:versioning][:default]
77
+ type = options[:type] ? options[:type] : FalkorLib.config[:versioning][:type]
78
+ source = options[:source] ? options[:source] : FalkorLib.config[:versioning][:source][ type ]
79
+ case type
76
80
  when 'file'
77
81
  versionfile = File.join( rootdir, source[:filename] )
78
82
  version = File.read( versionfile ).chomp if File.exist? ( versionfile )
@@ -80,71 +84,77 @@ module FalkorLib #:nodoc:
80
84
  getmethod = source[:getmethod ]
81
85
  version = eval( getmethod ) unless (getmethod.nil? || getmethod.empty?)
82
86
  when 'puppet_module'
83
- jsonfile = File.join( rootdir, source[:filename] )
84
- metadata = JSON.parse( IO.read( jsonfile ) )
85
- version = metadata["version"]
87
+ jsonfile = File.join( rootdir, source[:filename] )
88
+ metadata = JSON.parse( IO.read( jsonfile ) )
89
+ version = metadata["version"]
86
90
  end
87
91
  version
88
92
  end
89
93
 
90
- ## Set the version
91
- def set_version(version, rootdir = Dir.pwd)
94
+ ######
95
+ # Set the version
96
+ # Supported options:
97
+ # * :type in ['file','gem','puppet_module'] type of versionning mechanism
98
+ # * :source [Hash] information on the way to retrieve the information
99
+ def set_version(version, rootdir = Dir.pwd, options = {})
92
100
  exit_status = 0
93
- type = FalkorLib.config[:versioning][:type]
94
- source = FalkorLib.config[:versioning][:source][ type ]
95
- versionfile = File.join( rootdir, source[:filename] ) unless source[:filename].nil?
96
- filelist = FalkorLib::Git.list_files( rootdir )
101
+ type = options[:type] ? options[:type] : FalkorLib.config[:versioning][:type]
102
+ source = options[:source] ? options[:source] : FalkorLib.config[:versioning][:source][ type ]
103
+ versionfile = File.join( rootdir, source[:filename] ) unless source[:filename].nil?
97
104
  major, minor, patch = major(version), minor(version), patch(version)
98
105
  #tocommit = ""
99
106
  case type
100
107
  when 'file'
101
- info "writing version changes in #{source[:filename]}"
102
- File.open(versionfile, 'w') {|f| f.puts version } if File.exist? ( versionfile )
108
+ info "writing version changes in #{source[:filename]}"
109
+ File.open(versionfile, 'w') {|f| f.puts version } #if File.exist? ( versionfile )
103
110
  when 'gem'
104
- info "=> writing version changes in #{source[:filename]}"
105
- File.open(versionfile, 'r+') do |f|
111
+ info "=> writing version changes in #{source[:filename]}"
112
+ File.open(versionfile, 'r+') do |f|
106
113
  text = f.read
107
- text.gsub!(/^(\s*)MAJOR\s*,\s*MINOR,\s*PATCH\s*=\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)(.*)$/,
108
- '\1' + "MAJOR, MINOR, PATCH = #{major}, #{minor}, #{patch}" + '\5')
114
+ text.gsub!(/^(\s*)MAJOR\s*,\s*MINOR,\s*PATCH\s*=\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)(.*)$/,
115
+ '\1' + "MAJOR, MINOR, PATCH = #{major}, #{minor}, #{patch}" + '\5')
109
116
  f.rewind
110
117
  f.write(text)
111
118
  end
112
119
  when 'puppet_module'
113
- info "=> writing version changes in #{source[:filename]}"
114
- metadata = JSON.parse( IO.read( versionfile ) )
115
- metadata["version"] = version
116
- File.open(versionfile,"w") do |f|
117
- f.write JSON.pretty_generate( metadata )
120
+ info "=> writing version changes in #{source[:filename]}"
121
+ metadata = JSON.parse( IO.read( versionfile ) )
122
+ metadata["version"] = version
123
+ File.open(versionfile,"w") do |f|
124
+ f.write JSON.pretty_generate( metadata )
118
125
  end
119
- #exit 1
126
+ #exit 1
120
127
  end
121
- Dir.chdir( rootdir ) do
122
- next if source[:filename].nil?
123
- unless filelist.include?( source[:filename] )
124
- warning "The version file #{source[:filename]} is not part of the Git repository"
125
- answer = ask("Adding the file to the repository? (Y|n)", 'Yes')
128
+ if FalkorLib::Git.init?(rootdir)
129
+ filelist = FalkorLib::Git.list_files( rootdir )
130
+ Dir.chdir( rootdir ) do
131
+ next if source[:filename].nil?
132
+ unless filelist.include?( source[:filename] )
133
+ warning "The version file #{source[:filename]} is not part of the Git repository"
134
+ answer = ask("Adding the file to the repository? (Y|n)", 'Yes')
135
+ next if answer =~ /n.*/i
136
+ exit_status = FalkorLib::Git.add(versionfile, "Adding the version file '#{source[:filename]}', inialized to the '#{version}' version" )
137
+ next
138
+ end
139
+ run %{
140
+ git diff #{source[:filename]}
141
+ }
142
+ answer = ask(cyan("=> Commit the changes of the version file to the repository? (Y|n)"), 'Yes')
126
143
  next if answer =~ /n.*/i
127
- exit_status = FalkorLib::Git.add(versionfile, "Adding the version file '#{source[:filename]}', inialized to the '#{version}' version" )
128
- next
144
+ run %{
145
+ git commit -s -m "bump to version '#{version}'" #{source[:filename]}
146
+ }
147
+ exit_status = $?.to_i
148
+ # if (type == 'gem' && File.exists?(File.join(rootdir, 'Gemfile')) )
149
+ # run %{
150
+ # sleep 2
151
+ # bundle update falkorlib
152
+ # git commit -s -m "Update Gemfile.lock accordingly" Gemfile.lock
153
+ # } if command?( 'bundle' )
154
+ # end
129
155
  end
130
- run %{
131
- git diff #{source[:filename]}
132
- }
133
- answer = ask(cyan("=> Commit the changes of the version file to the repository? (Y|n)"), 'Yes')
134
- next if answer =~ /n.*/i
135
- run %{
136
- git commit -s -m "bump to version '#{version}'" #{source[:filename]}
137
- }
138
- exit_status = $?.to_i
139
- # if (type == 'gem' && File.exists?(File.join(rootdir, 'Gemfile')) )
140
- # run %{
141
- # sleep 2
142
- # bundle update falkorlib
143
- # git commit -s -m "Update Gemfile.lock accordingly" Gemfile.lock
144
- # } if command?( 'bundle' )
145
- # end
146
156
  end
147
- exit_status
157
+ exit_status
148
158
  end
149
159
 
150
160
  ## Return a new version number based on
@@ -2,7 +2,7 @@
2
2
  #########################################
3
3
  # bootstrap_spec.rb
4
4
  # @author Sebastien Varrette <Sebastien.Varrette@uni.lu>
5
- # Time-stamp: <Jeu 2015-01-22 10:47 svarrette>
5
+ # Time-stamp: <Sam 2015-01-24 19:05 svarrette>
6
6
  #
7
7
  # @description Check the Bootstrapping operations
8
8
  #
@@ -12,7 +12,7 @@
12
12
 
13
13
  require 'spec_helper'
14
14
  require 'tmpdir'
15
- require 'FileUtils'
15
+ require 'fileutils'
16
16
 
17
17
  describe FalkorLib::Bootstrap do
18
18
 
@@ -12,7 +12,7 @@ describe FalkorLib::Common do
12
12
  FileUtils.touch File.join(dir, 'file2.txt')
13
13
  FileUtils.mkdir File.join(dir, 'dir1')
14
14
  FileUtils.mkdir File.join(dir, 'dir2')
15
- end
15
+ end
16
16
 
17
17
  after :all do
18
18
  FileUtils.remove_entry_secure dir
@@ -137,7 +137,7 @@ describe FalkorLib::Common do
137
137
  it "#nice_execute -- check stderr output" do
138
138
  b = capture(:stderr) {
139
139
  nice_execute("echo 'toto' 1>&2")
140
- }
140
+ }
141
141
  b.should == red("** [err] toto\n")
142
142
  end
143
143
 
@@ -150,7 +150,7 @@ describe FalkorLib::Common do
150
150
  b = capture(:stderr) {
151
151
  expect { not_implemented }.to raise_error (SystemExit)
152
152
  }
153
- b.should =~ /NOT YET IMPLEMENTED/
153
+ b.should =~ /NOT YET IMPLEMENTED/
154
154
  end
155
155
 
156
156
  it "#exec_or_exit - should exit" do
@@ -179,25 +179,25 @@ describe FalkorLib::Common do
179
179
  context "Test (common) YAML functions" do
180
180
 
181
181
  it "#load_config - load the correct hash from YAML" do
182
- file_config = {:domain => "foo.com", :nested => { 'a1' => 2 }}
183
- YAML.stub(:load_file).and_return(file_config)
184
- loaded = load_config('toto')
182
+ file_config = {:domain => "foo.com", :nested => { 'a1' => 2 }}
183
+ YAML.stub(:load_file).and_return(file_config)
184
+ loaded = load_config('/tmp') # /tmp to ensure existing target
185
185
  loaded.should == file_config
186
- end
186
+ end
187
187
 
188
188
  it "#store_config - should store the correct hash to YAML" do
189
- file_config = {:domain => "foo.com", :nested => { 'a1' => 2 }}
189
+ file_config = {:domain => "foo.com", :nested => { 'a1' => 2 }}
190
190
  f = Tempfile.new('toto')
191
191
  store_config(f.path, file_config)
192
192
  copy_file_config = YAML::load_file(f.path)
193
193
  copy_file_config.should == file_config
194
- end
194
+ end
195
195
 
196
- end
196
+ end
197
197
 
198
198
  ############################################
199
199
  context 'Test list selection functions' do
200
-
200
+
201
201
  it "#list_items - Exit on 0" do
202
202
  STDIN.should_receive(:gets).and_return('0')
203
203
  expect { list_items("#{dir}/*") }.to raise_error (SystemExit)
@@ -0,0 +1,33 @@
1
+ require 'spec_helper'
2
+ require "falkorlib/error"
3
+
4
+
5
+ describe FalkorLib::Error do
6
+
7
+ #############################################
8
+ context "Test Falkorlib errors" do
9
+
10
+ exceptions = [
11
+ FalkorLib::Exit,
12
+ FalkorLib::FalkorError,
13
+ FalkorLib::ExecError,
14
+ FalkorLib::InternalError,
15
+ FalkorLib::ArgumentError,
16
+ FalkorLib::AbortError,
17
+ FalkorLib::TemplateNotFound
18
+ ]
19
+ exceptions.each do |e|
20
+ it "##{e} -- exit code #{exceptions.index(e)}" do
21
+ expect { raise e }.to raise_error
22
+ begin
23
+ raise e
24
+ rescue StandardError => s
25
+ i = s.status_code
26
+ i.should == exceptions.index(e)
27
+ end
28
+ end
29
+ end
30
+ end
31
+
32
+
33
+ end
@@ -2,7 +2,7 @@
2
2
  #########################################
3
3
  # git_spec.rb
4
4
  # @author Sebastien Varrette <Sebastien.Varrette@uni.lu>
5
- # Time-stamp: <Jeu 2015-01-22 15:38 svarrette>
5
+ # Time-stamp: <Dim 2015-01-25 00:00 svarrette>
6
6
  #
7
7
  # @description Check the Git operations
8
8
  #
@@ -172,6 +172,12 @@ describe FalkorLib::Git do
172
172
  c.keys.length.should == 2
173
173
  end
174
174
 
175
+ it "#config -- check hash correctness" do
176
+ key = 'user.name'
177
+ c = FalkorLib::Git.config('user*', dir, :hash => true)
178
+ n = FalkorLib::Git.config('user.name', dir)
179
+ n.should == c[ key ]
180
+ end
175
181
 
176
182
  # ---------- Submodules ---------------
177
183
  it "#submodules_init" do
@@ -0,0 +1,67 @@
1
+
2
+ ## Resources / Complementary information
3
+
4
+ ### Git
5
+
6
+ You should become familiar (if not yet) with Git. Consider these resources:
7
+
8
+ * [Simple Git Guide](http://rogerdudler.github.io/git-guide/)
9
+ * [Git book](http://book.git-scm.com/index.html)
10
+ * [Github:help](http://help.github.com/mac-set-up-git/)
11
+ * [Git reference](http://gitref.org/)
12
+
13
+ At least, you shall configure the following variables
14
+
15
+ $> git config --global user.name "Your Name Comes Here"
16
+ $> git config --global user.email you@yourdomain.example.com
17
+ # configure colors
18
+ $> git config --global color.diff auto
19
+ $> git config --global color.status auto
20
+ $> git config --global color.branch auto
21
+
22
+ You might want also to configure various aliases to Git command.
23
+ Consider my personal [`.gitconfig`](https://github.com/Falkor/dotfiles/blob/master/git/.gitconfig) as an example -- if you decide to use it, simply copy it in your home directory and adapt the `[user]` section.
24
+
25
+ ### [git-flow](https://github.com/nvie/gitflow)
26
+
27
+ The Git branching model for this repository follows the guidelines of
28
+ [gitflow](http://nvie.com/posts/a-successful-git-branching-model/).
29
+ In particular, the central repository holds two main branches with an infinite lifetime:
30
+
31
+ * `<%= config[:gitflow][:branches][:master] %>`: the *production-ready* branch
32
+ * `<%= config[:gitflow][:branches][:develop] %>`: the main branch where the latest developments interviene. This is the *default* branch you get when you clone the repository.
33
+
34
+ ### Releasing mechanism
35
+
36
+ The operation consisting of releasing a new version of this repository is automated by a set of tasks within the root `<%= config[:rake] ? 'R' : 'M' %>akefile`.
37
+
38
+ In this context, a version number have the following format:
39
+
40
+ <major>.<minor>.<patch>[-b<build>]
41
+
42
+ where:
43
+
44
+ * `< major >` corresponds to the major version number
45
+ * `< minor >` corresponds to the minor version number
46
+ * `< patch >` corresponds to the patching version number
47
+ * (eventually) `< build >` states the build number _i.e._ the total number of commits within the `<%= config[:gitflow][:branches][:develop] %>` branch.
48
+
49
+ Example: \`1.0.0-b28\`
50
+
51
+ The current version number is stored in the root file `VERSION`. __/!\ NEVER MAKE ANY MANUAL CHANGES TO THIS FILE__
52
+
53
+ For more information on the version, run:
54
+
55
+ $> <%= config[:make] ? 'make versioninfo' : 'rake version:info' %>
56
+
57
+ If a new version number such be bumped, you simply have to run:
58
+
59
+ $> <%= config[:make] ? 'make start_bump_{major,minor,patch}' : 'rake version:{major,minor,patch}' %>
60
+
61
+ This will start the release process for you using `git-flow`.
62
+ Once you have finished to commit your last changes, make the release effective by running:
63
+
64
+ $> <%= config[:make] ? 'make release' : 'rake version:release' %>
65
+
66
+ it will finish the release using `git-flow`, create the appropriate tag in the `<%= config[:gitflow][:branches][:master] %>` branch and merge all things the way they should be.
67
+
@@ -0,0 +1,17 @@
1
+ -*- mode: markdown; mode: visual-line; fill-column: 80 -*-
2
+ `<%= config[:filename] %>`
3
+
4
+ Time-stamp: <Lun 2015-01-26 10:39 svarrette>
5
+
6
+ ------------------
7
+
8
+ # <%= config[:shortname].capitalize %>
9
+
10
+ <%= config[:summary] %>
11
+
12
+ Copyright (c) <%= Time.now.year %> <%= config[:author] %> <<%= config[:mail] %>>
13
+
14
+ ## Synopsis
15
+
16
+ <%= config[:description] %>
17
+
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: falkorlib
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sebastien Varrette
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-22 00:00:00.000000000 Z
11
+ date: 2015-02-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -128,6 +128,20 @@ dependencies:
128
128
  - - "~>"
129
129
  - !ruby/object:Gem::Version
130
130
  version: '0'
131
+ - !ruby/object:Gem::Dependency
132
+ name: deep_merge
133
+ requirement: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - "~>"
136
+ - !ruby/object:Gem::Version
137
+ version: 1.0.1
138
+ type: :runtime
139
+ prerelease: false
140
+ version_requirements: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - "~>"
143
+ - !ruby/object:Gem::Version
144
+ version: 1.0.1
131
145
  - !ruby/object:Gem::Dependency
132
146
  name: diffy
133
147
  requirement: !ruby/object:Gem::Requirement
@@ -325,6 +339,7 @@ files:
325
339
  - lib/falkorlib/cli/new.rb
326
340
  - lib/falkorlib/common.rb
327
341
  - lib/falkorlib/config.rb
342
+ - lib/falkorlib/error.rb
328
343
  - lib/falkorlib/gem_tasks.rb
329
344
  - lib/falkorlib/git.rb
330
345
  - lib/falkorlib/git/base.rb
@@ -349,6 +364,7 @@ files:
349
364
  - lib/falkorlib/versioning.rb
350
365
  - spec/falkorlib/bootstrap_spec.rb
351
366
  - spec/falkorlib/common_spec.rb
367
+ - spec/falkorlib/error_spec.rb
352
368
  - spec/falkorlib/git_spec.rb
353
369
  - spec/falkorlib/gitflow_spec.rb
354
370
  - spec/falkorlib/puppet_modules_spec.rb
@@ -357,6 +373,8 @@ files:
357
373
  - spec/falkorlib/versioning_spec.rb
358
374
  - spec/falkorlib_spec.rb
359
375
  - spec/spec_helper.rb
376
+ - templates/README/footer_readme.erb
377
+ - templates/README/header_readme.erb
360
378
  - templates/puppet/modules/.gitignore
361
379
  - templates/puppet/modules/.vagrant_init.rb
362
380
  - templates/puppet/modules/Gemfile
@@ -402,6 +420,7 @@ summary: Sebastien Varrette aka Falkor's Common library to share Ruby code and {
402
420
  test_files:
403
421
  - spec/falkorlib/bootstrap_spec.rb
404
422
  - spec/falkorlib/common_spec.rb
423
+ - spec/falkorlib/error_spec.rb
405
424
  - spec/falkorlib/git_spec.rb
406
425
  - spec/falkorlib/gitflow_spec.rb
407
426
  - spec/falkorlib/puppet_modules_spec.rb