falkorlib 0.4.2 → 0.4.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/lib/falkorlib/bootstrap/base.rb +5 -3
- data/lib/falkorlib/cli/new.rb +1 -2
- data/lib/falkorlib/common.rb +3 -1
- data/lib/falkorlib/config.rb +28 -21
- data/lib/falkorlib/tasks/rspec.rake +1 -0
- data/lib/falkorlib/version.rb +1 -1
- data/spec/falkorlib/bootstrap_spec.rb +55 -3
- data/spec/falkorlib/config_spec.rb +45 -0
- metadata +3 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 24b688866a7028d56fb245d36207f12b727484ed
|
4
|
+
data.tar.gz: 3ceb29d135eeb2f9273fb51bd5c9efd560897337
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9dab597ad919ab7b58606cd89d295f463a7a3c05e4e132cdebea876bed110286ce640c21d63acf0a3f01084c29419c02ec638fdee859cc00fe43fd23171d0611
|
7
|
+
data.tar.gz: b330a6ec0382afd5035005a95caa940a2a0a4440b67409d35312edf6181b549afa0de3a7aff6717b17431174ada84b8b50ed783d290e0b0365837ced27d67328
|
data/Gemfile.lock
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
2
|
################################################################################
|
3
|
-
# Time-stamp: <
|
3
|
+
# Time-stamp: <Mer 2015-02-25 00:02 svarrette>
|
4
4
|
################################################################################
|
5
5
|
# Interface for the main Bootstrapping operations
|
6
6
|
#
|
@@ -34,7 +34,7 @@ module FalkorLib #:nodoc:
|
|
34
34
|
:tags => []
|
35
35
|
},
|
36
36
|
:trashdir => '.Trash',
|
37
|
-
:types => [ :latex, :gem, :octopress, :puppet_module, :rvm, :pyenv ],
|
37
|
+
:types => [ :none, :latex, :gem, :octopress, :puppet_module, :rvm, :pyenv ],
|
38
38
|
:licenses => {
|
39
39
|
"none" => {},
|
40
40
|
"Apache-2.0" => {
|
@@ -181,6 +181,7 @@ module FalkorLib
|
|
181
181
|
###### repo ######
|
182
182
|
# Initialize a Git repository for a project with my favorite layout
|
183
183
|
# Supported options:
|
184
|
+
# * :no_interaction [boolean]: do not interact
|
184
185
|
# :interactive [boolean] Confirm Gitflow branch names
|
185
186
|
# :master [string] Branch name for production releases
|
186
187
|
# :develop [string] Branch name for development commits
|
@@ -315,6 +316,7 @@ module FalkorLib
|
|
315
316
|
###### readme ######
|
316
317
|
# Bootstrap a README file for various context
|
317
318
|
# Supported options:
|
319
|
+
# * :no_interaction [boolean]: do not interact
|
318
320
|
# * :force [boolean] force overwritting
|
319
321
|
# * :latex [boolean] describe a LaTeX project
|
320
322
|
# * :octopress [boolean] octopress site
|
@@ -333,7 +335,7 @@ module FalkorLib
|
|
333
335
|
config[:type] << :latex if options[:latex]
|
334
336
|
if config[:type].empty?
|
335
337
|
t = select_from( FalkorLib::Config::Bootstrap::DEFAULTS[:types],
|
336
|
-
'Select the type of project to describe:')
|
338
|
+
'Select the type of project to describe:', 1)
|
337
339
|
config[:type] << t
|
338
340
|
config[:type] << [ :ruby, :rvm ] if [ :gem, :rvm, :octopress, :puppet_module ].include?( t )
|
339
341
|
config[:type] << :python if t == :pyenv
|
data/lib/falkorlib/cli/new.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
2
|
################################################################################
|
3
|
-
# Time-stamp: <
|
3
|
+
# Time-stamp: <Mer 2015-02-25 00:05 svarrette>
|
4
4
|
################################################################################
|
5
5
|
|
6
6
|
require 'thor'
|
@@ -107,7 +107,6 @@ These files will be committed in Git to ensure a consistent environment for the
|
|
107
107
|
#......................................
|
108
108
|
desc "readme PATH [options]", "Initiate a README file in the PATH directory ('./' by default)"
|
109
109
|
def readme(path = '.')
|
110
|
-
ap options
|
111
110
|
FalkorLib::Bootstrap.readme(path, options)
|
112
111
|
end # readme
|
113
112
|
end # class Init
|
data/lib/falkorlib/common.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
2
|
################################################################################
|
3
|
-
# Time-stamp: <Mar 2015-02-24
|
3
|
+
# Time-stamp: <Mar 2015-02-24 23:50 svarrette>
|
4
4
|
################################################################################
|
5
5
|
|
6
6
|
require "falkorlib"
|
@@ -84,6 +84,7 @@ module FalkorLib #:nodoc:
|
|
84
84
|
|
85
85
|
## Ask a question
|
86
86
|
def ask(question, default_answer='')
|
87
|
+
return default_answer if FalkorLib.config[:no_interaction]
|
87
88
|
print "#{question} "
|
88
89
|
print "[Default: #{default_answer}]" unless default_answer == ''
|
89
90
|
print ": "
|
@@ -94,6 +95,7 @@ module FalkorLib #:nodoc:
|
|
94
95
|
|
95
96
|
## Ask whether or not to really continue
|
96
97
|
def really_continue?(default_answer = 'Yes')
|
98
|
+
return if FalkorLib.config[:no_interaction]
|
97
99
|
pattern = (default_answer =~ /yes/i) ? '(Y|n)' : '(y|N)'
|
98
100
|
answer = ask( cyan("=> Do you really want to continue #{pattern}?"), default_answer)
|
99
101
|
exit 0 if answer =~ /n.*/i
|
data/lib/falkorlib/config.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
2
|
################################################################################
|
3
|
-
# Time-stamp: <
|
3
|
+
# Time-stamp: <Mer 2015-02-25 00:19 svarrette>
|
4
4
|
################################################################################
|
5
5
|
# FalkorLib Configuration
|
6
6
|
#
|
@@ -41,14 +41,15 @@ module FalkorLib #:nodoc:
|
|
41
41
|
module Config #:nodoc:
|
42
42
|
# Defaults global settings
|
43
43
|
DEFAULTS = {
|
44
|
-
:debug
|
45
|
-
:verbose
|
46
|
-
:
|
47
|
-
:
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
44
|
+
:debug => false,
|
45
|
+
:verbose => false,
|
46
|
+
:no_interaction => false,
|
47
|
+
:root => Dir.pwd,
|
48
|
+
:config_files => {
|
49
|
+
:local => '.falkor/config',
|
50
|
+
:private => '.falkor/private',
|
51
|
+
#:project => '.falkor/project',
|
52
|
+
},
|
52
53
|
#:custom_cfg => '.falkorlib.yaml',
|
53
54
|
:rvm => {
|
54
55
|
:rubies => [ '1.9.3', '2.0.0', '2.1.0'],
|
@@ -69,7 +70,7 @@ module FalkorLib #:nodoc:
|
|
69
70
|
## Build the default configuration hash, to be used to initiate the default.
|
70
71
|
# The hash is built depending on the loaded files.
|
71
72
|
def default
|
72
|
-
res = FalkorLib::Config::DEFAULTS
|
73
|
+
res = FalkorLib::Config::DEFAULTS.clone
|
73
74
|
$LOADED_FEATURES.each do |path|
|
74
75
|
res[:git] = FalkorLib::Config::Git::DEFAULTS if path.include?('lib/falkorlib/git.rb')
|
75
76
|
res[:gitflow] = FalkorLib::Config::GitFlow::DEFAULTS if path.include?('lib/falkorlib/git.rb')
|
@@ -95,31 +96,37 @@ module FalkorLib #:nodoc:
|
|
95
96
|
# * :file [string] filename for the local configuration
|
96
97
|
##
|
97
98
|
def get(dir = Dir.pwd, type = :local, options = {})
|
98
|
-
|
99
|
-
path = FalkorLib::Git.rootdir(path) if FalkorLib::Git.init?(path)
|
100
|
-
raise FalkorLib::Error, "Wrong FalkorLib configuration type" unless FalkorLib.config[:config_files].keys.include?( type.to_sym)
|
101
|
-
local_config_file = options[:file] ? options[:file] : File.join(path, FalkorLib.config[:config_files][type.to_sym])
|
99
|
+
conffile = config_file(dir,type,options)
|
102
100
|
res = {}
|
103
|
-
res = load_config(
|
101
|
+
res = load_config( conffile ) if File.exists?( conffile )
|
104
102
|
res
|
105
103
|
end # get
|
106
104
|
|
105
|
+
###### get_or_save ######
|
106
|
+
# wrapper for get and save operations
|
107
|
+
##
|
108
|
+
def config_file(dir = Dir.pwd, type = :local, options = {})
|
109
|
+
path = normalized_path(dir)
|
110
|
+
path = FalkorLib::Git.rootdir(path) if FalkorLib::Git.init?(path)
|
111
|
+
raise FalkorLib::Error, "Wrong FalkorLib configuration type" unless FalkorLib.config[:config_files].keys.include?( type.to_sym)
|
112
|
+
return options[:file] ? options[:file] : File.join(path, FalkorLib.config[:config_files][type.to_sym])
|
113
|
+
end # get_or_save
|
114
|
+
|
115
|
+
|
107
116
|
###### save ######
|
108
117
|
# save the { local | private } configuration on YAML format
|
109
118
|
# Supported options:
|
110
119
|
# * :file [string] filename for the saved configuration
|
120
|
+
# * :no_interaction [boolean]: do not interact
|
111
121
|
##
|
112
122
|
def save(dir = Dir.pwd, config = {}, type = :local, options = {})
|
113
|
-
|
114
|
-
path = FalkorLib::Git.rootdir(path) if FalkorLib::Git.init?(path)
|
115
|
-
raise FalkorLib::Error, "Wrong FalkorLib configuration type"unless FalkorLib.config[:config_files].keys.include?( type.to_sym)
|
116
|
-
conffile = options[:file] ? options[:file] : File.join(path, FalkorLib.config[:config_files][type.to_sym])
|
123
|
+
conffile = config_file(dir,type,options)
|
117
124
|
confdir = File.dirname( conffile )
|
118
125
|
unless File.directory?( confdir )
|
119
|
-
really_continue? "about to create the configuration directory #{confdir}"
|
126
|
+
really_continue? "about to create the configuration directory #{confdir}" unless options[:no_interaction]
|
120
127
|
run %{ mkdir -p #{confdir} }
|
121
128
|
end
|
122
|
-
store_config(conffile, config)
|
129
|
+
store_config(conffile, config, options)
|
123
130
|
end # save
|
124
131
|
|
125
132
|
end
|
@@ -36,6 +36,7 @@ begin
|
|
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
|
+
#t.pattern = "spec/**/config*spec.rb"
|
39
40
|
|
40
41
|
# Whether or not to fail Rake when an error occurs (typically when
|
41
42
|
# examples fail).
|
data/lib/falkorlib/version.rb
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
#########################################
|
3
3
|
# bootstrap_spec.rb
|
4
4
|
# @author Sebastien Varrette <Sebastien.Varrette@uni.lu>
|
5
|
-
# Time-stamp: <
|
5
|
+
# Time-stamp: <Mer 2015-02-25 00:03 svarrette>
|
6
6
|
#
|
7
7
|
# @description Check the Bootstrapping operations
|
8
8
|
#
|
@@ -20,9 +20,9 @@ describe FalkorLib::Bootstrap do
|
|
20
20
|
|
21
21
|
dirs = {
|
22
22
|
:without_git => Dir.mktmpdir,
|
23
|
-
:with_git => Dir.mktmpdir
|
23
|
+
:with_git => Dir.mktmpdir,
|
24
|
+
:default => Dir.mktmpdir
|
24
25
|
}
|
25
|
-
|
26
26
|
before :all do
|
27
27
|
$stdout.sync = true
|
28
28
|
end
|
@@ -31,6 +31,7 @@ describe FalkorLib::Bootstrap do
|
|
31
31
|
dirs.each do |t,d|
|
32
32
|
FileUtils.remove_entry_secure d
|
33
33
|
end
|
34
|
+
FalkorLib.config[:no_interaction] = false
|
34
35
|
end
|
35
36
|
|
36
37
|
[ :without_git, :with_git ].each do |ctx|
|
@@ -111,8 +112,59 @@ describe FalkorLib::Bootstrap do
|
|
111
112
|
content[:gemsetfile].should == opts[:gemset]
|
112
113
|
end
|
113
114
|
|
115
|
+
it "#select_forge - none" do
|
116
|
+
STDIN.should_receive(:gets).and_return('1')
|
117
|
+
t = FalkorLib::Bootstrap.select_forge()
|
118
|
+
t.should == :none
|
119
|
+
end
|
120
|
+
|
121
|
+
it "#select_forge -- default to github" do
|
122
|
+
STDIN.should_receive(:gets).and_return('')
|
123
|
+
t = FalkorLib::Bootstrap.select_forge(:github)
|
124
|
+
t.should == :github
|
125
|
+
end
|
126
|
+
|
127
|
+
FalkorLib::Config::Bootstrap::DEFAULTS[:licenses].keys.each do |lic|
|
128
|
+
it "#select_licence -- default to #{lic}" do
|
129
|
+
STDIN.should_receive(:gets).and_return('')
|
130
|
+
t = FalkorLib::Bootstrap.select_licence(lic)
|
131
|
+
t.should == lic
|
132
|
+
end
|
133
|
+
end
|
134
|
+
|
135
|
+
it "#get_badge " do
|
136
|
+
subject = 'licence'
|
137
|
+
status = 'GPL-2.0'
|
138
|
+
t = FalkorLib::Bootstrap.get_badge(subject, status)
|
139
|
+
t.should =~ /#{subject}/
|
140
|
+
t.should =~ /#{status.sub(/-/, '--')}/
|
141
|
+
end
|
142
|
+
|
143
|
+
it "#readme" do
|
144
|
+
#Array.new(6).each { |e| STDIN.should_receive(:gets).and_return('') }
|
145
|
+
#STDIN.should_receive(:gets).and_return('')
|
146
|
+
#STDIN.should_receive(:gets).and_return('1')
|
147
|
+
FalkorLib.config[:no_interaction] = true
|
148
|
+
FalkorLib::Bootstrap.readme(dir, { :no_interaction => true })
|
149
|
+
t = File.exists?(File.join(dir, 'README.md'))
|
150
|
+
t.should be_true
|
151
|
+
FalkorLib.config[:no_interaction] = false
|
152
|
+
end
|
114
153
|
end # context
|
115
154
|
|
116
155
|
end # each
|
156
|
+
|
157
|
+
############################################
|
158
|
+
context 'boostrap repo' do
|
159
|
+
dir = dirs[:default]
|
160
|
+
|
161
|
+
it '#repo' do
|
162
|
+
FalkorLib.config[:no_interaction] = true
|
163
|
+
FalkorLib::Bootstrap.repo(dir, { :no_interaction => true })
|
164
|
+
FalkorLib.config[:no_interaction] = false
|
165
|
+
end
|
166
|
+
|
167
|
+
end
|
117
168
|
|
169
|
+
|
118
170
|
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'tempfile'
|
3
|
+
|
4
|
+
describe FalkorLib::Config do
|
5
|
+
|
6
|
+
include FalkorLib::Common
|
7
|
+
|
8
|
+
dir = Dir.mktmpdir
|
9
|
+
test_hash = {
|
10
|
+
:str => "simple string",
|
11
|
+
:array => [ 'a', 'b' ],
|
12
|
+
:hash => {
|
13
|
+
:key => 'val'
|
14
|
+
}
|
15
|
+
}
|
16
|
+
|
17
|
+
after :all do
|
18
|
+
FileUtils.remove_entry_secure dir
|
19
|
+
end
|
20
|
+
|
21
|
+
#############################################
|
22
|
+
context "Test default configuration object" do
|
23
|
+
|
24
|
+
it "#default" do
|
25
|
+
hash = FalkorLib::Config.default
|
26
|
+
t = hash.is_a? Hash
|
27
|
+
t.should be_true
|
28
|
+
hash[:rvm][:versionfile].should == FalkorLib::Config::DEFAULTS[:rvm][:versionfile]
|
29
|
+
end
|
30
|
+
|
31
|
+
it "#save" do
|
32
|
+
FalkorLib::Config.save(dir, test_hash, :local, { :no_interaction => true })
|
33
|
+
t = File.exists?( File.join(dir, FalkorLib::Config::DEFAULTS[:config_files][:local]))
|
34
|
+
t. should be_true
|
35
|
+
end
|
36
|
+
|
37
|
+
it "#get" do
|
38
|
+
h = FalkorLib::Config.get(dir, :local, { :no_interaction => true })
|
39
|
+
h.should == test_hash
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|
43
|
+
|
44
|
+
|
45
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: falkorlib
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sebastien Varrette
|
@@ -379,6 +379,7 @@ files:
|
|
379
379
|
- lib/falkorlib/versioning.rb
|
380
380
|
- spec/falkorlib/bootstrap_spec.rb
|
381
381
|
- spec/falkorlib/common_spec.rb
|
382
|
+
- spec/falkorlib/config_spec.rb
|
382
383
|
- spec/falkorlib/error_spec.rb
|
383
384
|
- spec/falkorlib/git_spec.rb
|
384
385
|
- spec/falkorlib/gitflow_spec.rb
|
@@ -440,6 +441,7 @@ summary: Sebastien Varrette aka Falkor's Common library to share Ruby code and {
|
|
440
441
|
test_files:
|
441
442
|
- spec/falkorlib/bootstrap_spec.rb
|
442
443
|
- spec/falkorlib/common_spec.rb
|
444
|
+
- spec/falkorlib/config_spec.rb
|
443
445
|
- spec/falkorlib/error_spec.rb
|
444
446
|
- spec/falkorlib/git_spec.rb
|
445
447
|
- spec/falkorlib/gitflow_spec.rb
|