falkorlib 0.7.4 → 0.7.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +7 -7
- data/LICENCE.md +16 -19
- data/README.md +107 -100
- data/completion/_falkor +5 -4
- data/falkorlib.gemspec +1 -1
- data/lib/falkorlib/cli/new.rb +4 -4
- data/lib/falkorlib/common.rb +23 -0
- data/lib/falkorlib/tasks/gem.rb +1 -0
- data/lib/falkorlib/tasks/git.rb +1 -0
- data/lib/falkorlib/tasks/gitflow.rake +1 -1
- data/lib/falkorlib/tasks/puppet.rb +1 -0
- data/lib/falkorlib/version.rb +1 -1
- metadata +5 -9
- data/lib/falkorlib/tasks/gem.rb +0 -30
- data/lib/falkorlib/tasks/git.rb +0 -52
- data/lib/falkorlib/tasks/puppet.rb +0 -27
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: adff66871b17ed77ecc427e9651899795ac53f94
|
4
|
+
data.tar.gz: 6d593b8cac74e841d51eee49cfea45fe952a2ca8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fccdaa61678f557f832814084898947f5392432730751a306d7a1a4aeb17d887d72759a905391ce8179102072f3a241a2ab6e718833aa2d906fedee61f32d84f
|
7
|
+
data.tar.gz: bad2d3d5ec3e772ca535a418c51eff0288eb7d2e5f8aeb73f7411dcf317d80da12e24df46333d38dd17bcb3971198fcf5803528d3b88f2718a41a753095343b5
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
falkorlib (0.7.
|
4
|
+
falkorlib (0.7.5)
|
5
5
|
activesupport (~> 4.0)
|
6
6
|
artii (>= 2.1)
|
7
7
|
awesome_print (~> 1.2)
|
@@ -45,7 +45,7 @@ GEM
|
|
45
45
|
docile (1.1.5)
|
46
46
|
ethon (0.9.1)
|
47
47
|
ffi (>= 1.3.0)
|
48
|
-
facter (2.4.6)
|
48
|
+
facter (2.4.6-universal-darwin)
|
49
49
|
CFPropertyList (~> 2.2.6)
|
50
50
|
faraday (0.10.0)
|
51
51
|
multipart-post (>= 1.2, < 3)
|
@@ -63,7 +63,7 @@ GEM
|
|
63
63
|
hashr (0.0.22)
|
64
64
|
highline (1.7.8)
|
65
65
|
i18n (0.7.0)
|
66
|
-
json (1.8.
|
66
|
+
json (1.8.6)
|
67
67
|
launchy (2.4.3)
|
68
68
|
addressable (~> 2.3)
|
69
69
|
license-generator (0.4.1)
|
@@ -71,7 +71,7 @@ GEM
|
|
71
71
|
logger (1.2.8)
|
72
72
|
method_source (0.8.2)
|
73
73
|
minigit (0.0.4)
|
74
|
-
minitest (5.
|
74
|
+
minitest (5.10.1)
|
75
75
|
multi_json (1.12.1)
|
76
76
|
multipart-post (2.0.0)
|
77
77
|
net-http-persistent (2.9.4)
|
@@ -119,10 +119,10 @@ GEM
|
|
119
119
|
slop (3.6.0)
|
120
120
|
term-ansicolor (1.4.0)
|
121
121
|
tins (~> 1.0)
|
122
|
-
thor (0.19.
|
122
|
+
thor (0.19.4)
|
123
123
|
thor-zsh_completion (0.1.1)
|
124
124
|
thread_safe (0.3.5)
|
125
|
-
tins (1.
|
125
|
+
tins (1.13.0)
|
126
126
|
travis (1.8.4)
|
127
127
|
backports
|
128
128
|
faraday (~> 0.9)
|
@@ -162,4 +162,4 @@ DEPENDENCIES
|
|
162
162
|
yard (~> 0.8)
|
163
163
|
|
164
164
|
BUNDLED WITH
|
165
|
-
1.
|
165
|
+
1.14.3
|
data/LICENCE.md
CHANGED
@@ -1,22 +1,19 @@
|
|
1
|
-
|
1
|
+
Copyright (c) 2012-2017 S. Varrette <Sebastien.Varrette@uni.lu>
|
2
2
|
|
3
|
-
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
4
|
+
of this software and associated documentation files (the "Software"), to deal
|
5
|
+
in the Software without restriction, including without limitation the rights
|
6
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
7
|
+
copies of the Software, and to permit persons to whom the Software is
|
8
|
+
furnished to do so, subject to the following conditions:
|
4
9
|
|
5
|
-
|
6
|
-
|
7
|
-
"Software"), to deal in the Software without restriction, including
|
8
|
-
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
-
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
-
permit persons to whom the Software is furnished to do so, subject to
|
11
|
-
the following conditions:
|
10
|
+
The above copyright notice and this permission notice shall be included in all
|
11
|
+
copies or substantial portions of the Software.
|
12
12
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
-
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
-
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
13
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
14
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
15
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
16
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
17
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
18
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
19
|
+
SOFTWARE.
|
data/README.md
CHANGED
@@ -13,15 +13,15 @@
|
|
13
13
|
| _| (_| | | < (_) | | | |___| | |_) |
|
14
14
|
|_| \__,_|_|_|\_\___/|_| |_____|_|_.__/
|
15
15
|
|
16
|
-
|
17
|
-
Copyright (c) 2012-2016 Sebastien Varrette <Sebastien.Varrette@uni.lu>
|
18
16
|
|
19
|
-
|
20
|
-
tasks.
|
17
|
+
Copyright (c) 2012-2017 Sebastien Varrette <Sebastien.Varrette@uni.lu>
|
21
18
|
|
22
|
-
|
23
|
-
|
24
|
-
|
19
|
+
Sebastien Varrette aka Falkor's Common library to share Ruby code, `{rake,cap}`
|
20
|
+
tasks and project templates
|
21
|
+
|
22
|
+
* [MIT Licence](Licence.md)
|
23
|
+
* [Official Gem site](https://rubygems.org/gems/falkorlib)
|
24
|
+
* [GitHub Homepage](https://github.com/Falkor/falkorlib)
|
25
25
|
|
26
26
|
## Installation
|
27
27
|
|
@@ -29,7 +29,7 @@ You'll typically want to install FalkorLib using [Bundler](http://bundler.io/).
|
|
29
29
|
To do this, simply add this line to your application's `Gemfile`:
|
30
30
|
|
31
31
|
gem 'falkorlib'
|
32
|
-
|
32
|
+
|
33
33
|
And then execute:
|
34
34
|
|
35
35
|
$> bundle
|
@@ -39,89 +39,96 @@ Or install it yourself as:
|
|
39
39
|
$> gem install falkorlib
|
40
40
|
|
41
41
|
**Note** you probably wants to do the above within an isolated environment. See
|
42
|
-
below for some explanation on this setup.
|
42
|
+
below for some explanation on this setup.
|
43
43
|
|
44
44
|
## Usage
|
45
45
|
|
46
46
|
This library features two aspects
|
47
47
|
|
48
|
+
* a binary `falkor` I use daily to bootstrap and operate with the projects I'm
|
49
|
+
working one
|
50
|
+
|
48
51
|
* A set of toolbox functions / components I'm using everywhere in my Ruby
|
49
|
-
developments, more specifically a set of modules:
|
50
|
-
|
51
|
-
I'm using everywhere.
|
52
|
+
developments, more specifically a set of modules:
|
53
|
+
- `FalkorLib::Common`: Recipe for all my toolbox and versatile Ruby functions
|
54
|
+
I'm using everywhere.
|
52
55
|
You'll typically want to include the `FalkorLib::Common` module to bring the
|
53
|
-
corresponding definitions into your scope. Example:
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
56
|
+
corresponding definitions into your scope. Example:
|
57
|
+
|
58
|
+
```ruby
|
59
|
+
require 'falkorlib'
|
60
|
+
include FalkorLib::Common
|
61
|
+
|
62
|
+
info 'exemple of information text'
|
63
|
+
really_continue?
|
64
|
+
run %{ echo 'this is an executed command' }
|
65
|
+
|
66
|
+
Falkor.config.debug = true
|
67
|
+
run %{ echo 'this is a simulated command that *will not* be executed' }
|
68
|
+
error "that's an error text, let's exit with status code 1"all my toolbox printing functions I'm using everywhere
|
69
|
+
```
|
70
|
+
|
71
|
+
* `FalkorLib::Config`: all configuration aspects, implemented using [configatron](https://github.com/Falkor/falkorlib). `FalkorLib.config` canbe used to customized the defaults settings, for instance by;
|
72
|
+
|
73
|
+
```ruby
|
74
|
+
FalkorLib.config do |c|
|
75
|
+
c.debug = true
|
76
|
+
end
|
77
|
+
```
|
78
|
+
|
73
79
|
__IMPORTANT__: You can also place a special file `.falkorlib.yaml` to customize the
|
74
80
|
FalkorLib settings. Most probably, you shall ignore this file in your
|
75
|
-
`.gitignore` so you can place there your private settings (tokens etc.)
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
81
|
+
`.gitignore` so you can place there your private settings (tokens etc.)
|
82
|
+
|
83
|
+
- `FalkorLib::Git`: all [git](http://git-scm.com/) operations
|
84
|
+
- `FalkorLib::GitFlow`: all [git-flow](http://nvie.com/posts/a-successful-git-branching-model/) operations
|
85
|
+
- `FalkorLib::Version`: for the [semantic versioning](http://semver.org/) management of your project.
|
86
|
+
- `FalkorLib::Puppet`: for all [puppet](http://puppetlabs.com) operations
|
87
|
+
- `FalkorLib::Bootstrap`: for all project bootstrapping
|
88
|
+
|
82
89
|
|
83
90
|
* Some [rake](https://github.com/jimweirich/rake) tasks to facilitate common operations.
|
84
91
|
In general you can simply embedded my tasks by adding the following header in your `Rakefile`:
|
85
|
-
|
92
|
+
|
86
93
|
# In Rakefile
|
87
94
|
require "falkorlib"
|
88
|
-
|
89
|
-
## Place-holder to customize the configuration of the <object> tasks,
|
95
|
+
|
96
|
+
## Place-holder to customize the configuration of the <object> tasks,
|
90
97
|
## Typically by altering FalkorLib.config.<object>
|
91
|
-
|
92
|
-
require "falkorlib/tasks/<object>" # OR require "falkorlib/<object>_tasks"
|
93
|
-
|
98
|
+
|
99
|
+
require "falkorlib/tasks/<object>" # OR require "falkorlib/<object>_tasks"
|
100
|
+
|
94
101
|
### `FalkorLib` Ruby Modules / Classes Documentation
|
95
102
|
|
96
|
-
[Online documentation](https://rubygems.org/gems/falkorlib) is a available.
|
97
|
-
Yet to get the latest version, you might want to run
|
103
|
+
[Online documentation](https://rubygems.org/gems/falkorlib) is a available.
|
104
|
+
Yet to get the latest version, you might want to run
|
98
105
|
|
99
106
|
$> rake yard:doc
|
100
107
|
|
101
|
-
This will generate the documentation in `doc/api/` folder.
|
108
|
+
This will generate the documentation in `doc/api/` folder.
|
102
109
|
|
103
|
-
Statistics on the documentation generation (in particular *non*-documented components) can be obtained by
|
110
|
+
Statistics on the documentation generation (in particular *non*-documented components) can be obtained by
|
104
111
|
|
105
|
-
$> rake yard:stats
|
112
|
+
$> rake yard:stats
|
106
113
|
|
107
114
|
### Overview of the implemented Rake tasks
|
108
115
|
|
109
116
|
You can find the list of implemented Rake tasks (detailed below) in the
|
110
|
-
`lib/falkorlib/*_tasks.rb` files
|
117
|
+
`lib/falkorlib/*_tasks.rb` files
|
111
118
|
|
112
119
|
As mentioned above, for a given task object `<obj>` (*git* tasks for instance as
|
113
120
|
proposed in `lib/falkorlib/git_tasks.rb`), you can specialize the corresponding
|
114
121
|
configuration by using the block construction of `FalkorLib.config do |c|
|
115
|
-
... end` **before** requiring the task file:
|
122
|
+
... end` **before** requiring the task file:
|
116
123
|
|
117
124
|
# In Rakefile
|
118
125
|
require 'falkorlib'
|
119
|
-
|
126
|
+
|
120
127
|
# Configuration for the 'toto' tasks
|
121
128
|
FalkorLib.config.toto do |c|
|
122
129
|
toto.foo = bar # see `rake falkorlib:conf` to print the current configuration of FalkorLib
|
123
|
-
end
|
124
|
-
|
130
|
+
end
|
131
|
+
|
125
132
|
require "falkorlib/tasks/toto" # OR require "falkorlib/toto_tasks"
|
126
133
|
|
127
134
|
|
@@ -129,13 +136,13 @@ configuration by using the block construction of `FalkorLib.config do |c|
|
|
129
136
|
|
130
137
|
FalkorLib is meant to facilitate many common operations performed within your
|
131
138
|
projects and piloted via a
|
132
|
-
[Rakefile](https://github.com/jimweirich/rake/blob/master/doc/rakefile.rdoc).
|
139
|
+
[Rakefile](https://github.com/jimweirich/rake/blob/master/doc/rakefile.rdoc).
|
133
140
|
|
134
|
-
### Bootstrapping the project
|
141
|
+
### Bootstrapping the project
|
135
142
|
|
136
143
|
Within your fresh new directory that will hold your project data
|
137
144
|
(`/path/to/myproject` for instance), you'll need to bootstrap the following
|
138
|
-
files:
|
145
|
+
files:
|
139
146
|
|
140
147
|
* `.ruby-{version,gemset}`: [RVM](https://rvm.io/) configuration, use the name of the
|
141
148
|
project as [gemset](https://rvm.io/gemsets) name
|
@@ -147,7 +154,7 @@ init` that contain _at least_ the line `gem 'falkorlib'`
|
|
147
154
|
|
148
155
|
__Assuming you are in your project directory `/path/to/myproject`__ and that RVM
|
149
156
|
is installed on your system, you can bootstrap the above file by copy/pasting
|
150
|
-
all the following command-lines in your terminal:
|
157
|
+
all the following command-lines in your terminal:
|
151
158
|
|
152
159
|
```
|
153
160
|
bash <(curl --silent https://raw.githubusercontent.com/Falkor/falkorlib/devel/binscripts/bootstrap.sh)
|
@@ -158,17 +165,17 @@ before running the above command.
|
|
158
165
|
|
159
166
|
Alternatively, assuming you have installed the `falkorlib` gem, you can create a
|
160
167
|
minimal `Rakefile` (containing `require 'falkorlib'`) and run `rake bootstrap:rvm`.
|
161
|
-
|
162
|
-
You can now complete your `Rakefile` depending on the tasks you wish to see.
|
168
|
+
|
169
|
+
You can now complete your `Rakefile` depending on the tasks you wish to see.
|
163
170
|
Below is a detailed overview of the implemented rake tasks in `FalkorLib`.
|
164
171
|
|
165
172
|
### Git[Flow] and Versioning Management
|
166
173
|
|
167
174
|
Nearly all my projects are organized under [Git](http://git-scm.com/) using the
|
168
175
|
[gitflow](http://nvie.com/posts/a-successful-git-branching-model/) branching
|
169
|
-
model.
|
176
|
+
model.
|
170
177
|
Thus I create a flexible framework to pilot the interaction with Git, git-flow,
|
171
|
-
git submodules, git subtrees etc.
|
178
|
+
git submodules, git subtrees etc.
|
172
179
|
|
173
180
|
Typical [Minimal] setup of your Rakefile, hopefully self-speaking
|
174
181
|
|
@@ -177,7 +184,7 @@ require 'falkorlib'
|
|
177
184
|
|
178
185
|
## placeholder for custom configuration of FalkorLib.config.git and
|
179
186
|
## FalkorLib.config.gitflow
|
180
|
-
|
187
|
+
|
181
188
|
# Git[Flow] and Versioning management
|
182
189
|
require "falkorlib/tasks/git" # OR require "falkorlib/git_tasks"
|
183
190
|
```
|
@@ -203,7 +210,7 @@ Configuration aspects for git-flow are stored in the
|
|
203
210
|
* __[Default Configuration for Gitflow](http://rubydoc.info/gems/falkorlib/FalkorLib/Config/GitFlow)__
|
204
211
|
|
205
212
|
You can easily customize these default settings in your Rakefile, __before__ the
|
206
|
-
`require "falkorlib/tasks/git"` lines. Just proceed with ruby magic as follows:
|
213
|
+
`require "falkorlib/tasks/git"` lines. Just proceed with ruby magic as follows:
|
207
214
|
|
208
215
|
```
|
209
216
|
require 'falkorlib'
|
@@ -221,7 +228,7 @@ require "falkorlib/tasks/git"
|
|
221
228
|
|
222
229
|
Now you can run `rake git:flow:init` to bootstrap your repository with git-flow.
|
223
230
|
|
224
|
-
Running `rake -T` shall now raises many new tasks linked to git-flow operations:
|
231
|
+
Running `rake -T` shall now raises many new tasks linked to git-flow operations:
|
225
232
|
|
226
233
|
```
|
227
234
|
$> rake -T
|
@@ -244,9 +251,9 @@ So you can now:
|
|
244
251
|
* Start/finish features with `rake git:feature:{start,finish}`
|
245
252
|
* perform basic git operation with `rake git:{fetch,push,up}`
|
246
253
|
* initiate semantic versioning of the project (typically with a `VERSION` file
|
247
|
-
at the root of your project) with `rake version:bump:{patch,minor,patch}`.
|
248
|
-
Note that these tasks make use of the git flow `release` feature.
|
249
|
-
|
254
|
+
at the root of your project) with `rake version:bump:{patch,minor,patch}`.
|
255
|
+
Note that these tasks make use of the git flow `release` feature.
|
256
|
+
|
250
257
|
Concluding a release is performed by `rake version:release`
|
251
258
|
|
252
259
|
### Git submodules configuration
|
@@ -258,7 +265,7 @@ Configuration aspects for git are stored in the
|
|
258
265
|
|
259
266
|
In particular, you can add as many
|
260
267
|
[Git submodules](http://git-scm.com/book/en/Git-Tools-Submodules) as you wish as
|
261
|
-
follows:
|
268
|
+
follows:
|
262
269
|
|
263
270
|
```
|
264
271
|
require 'falkorlib'
|
@@ -268,7 +275,7 @@ FalkorLib.config.git do |c|
|
|
268
275
|
c[:submodules] = {
|
269
276
|
'veewee' => {
|
270
277
|
:url => 'https://github.com/jedi4ever/veewee.git',
|
271
|
-
:branch => 'master' # not mandatory if 'master' actually
|
278
|
+
:branch => 'master' # not mandatory if 'master' actually
|
272
279
|
}
|
273
280
|
}
|
274
281
|
end
|
@@ -277,12 +284,12 @@ require "falkorlib/tasks/git"
|
|
277
284
|
```
|
278
285
|
|
279
286
|
You can now bootstrap the configured sub-module(s) by running `rake
|
280
|
-
git:submodules:init`.
|
287
|
+
git:submodules:init`.
|
281
288
|
In the above scenario, the Git sub-module `veewee` will be initiated in
|
282
289
|
`.submodules/veewee` -- you can change the root submodules directory by altering
|
283
290
|
`FalkorLib.config.git[:submodulesdir]` value (see [defaults](http://rubydoc.info/gems/falkorlib/FalkorLib/Config/Git)).
|
284
291
|
|
285
|
-
Now you will have new rake tasks available:
|
292
|
+
Now you will have new rake tasks available:
|
286
293
|
|
287
294
|
$> rake -T
|
288
295
|
[...]
|
@@ -296,7 +303,7 @@ Now you will have new rake tasks available:
|
|
296
303
|
|
297
304
|
You can also add as many
|
298
305
|
[Git subtrees](http://blogs.atlassian.com/2013/05/alternatives-to-git-submodule-git-subtree/)
|
299
|
-
as you wish -- as follows:
|
306
|
+
as you wish -- as follows:
|
300
307
|
|
301
308
|
```
|
302
309
|
require 'falkorlib'
|
@@ -319,11 +326,11 @@ require "falkorlib/tasks/git"
|
|
319
326
|
```
|
320
327
|
|
321
328
|
You can now bootstrap the configured sub-tree(s) by running `rake
|
322
|
-
git:subtrees:init`.
|
329
|
+
git:subtrees:init`.
|
323
330
|
In the above scenario, the Git sub-trees will be initiated in the
|
324
331
|
sub-directories `easybuild/easyblocks` and `easybuild/easyconfigs`.
|
325
332
|
|
326
|
-
Now you will have new rake tasks available:
|
333
|
+
Now you will have new rake tasks available:
|
327
334
|
|
328
335
|
```
|
329
336
|
[...]
|
@@ -336,7 +343,7 @@ rake git:subtrees:up # Pull the latest changes from the remote to the l
|
|
336
343
|
### Gem Management
|
337
344
|
|
338
345
|
See `lib/falkorlib/tasks/gem.rake`: you just have to add the following line to
|
339
|
-
your Rakefile:
|
346
|
+
your Rakefile:
|
340
347
|
|
341
348
|
```
|
342
349
|
require "falkorlib/tasks/gem" # OR require "falkorlib/gem_tasks"
|
@@ -377,10 +384,10 @@ rake version:release # Finalize the release of a given bumped version
|
|
377
384
|
```
|
378
385
|
If your gem is coupled with [Code Climate](https://codeclimate.com/), you might
|
379
386
|
wish to set the code climate token to report the test coverage for you gem (see
|
380
|
-
[these instructions](http://docs.codeclimate.com/article/104-how-do-i-set-up-test-coverage-for-one-of-my-repos)).
|
387
|
+
[these instructions](http://docs.codeclimate.com/article/104-how-do-i-set-up-test-coverage-for-one-of-my-repos)).
|
381
388
|
To avoid exposing this token in your (potentially public) repository, simply
|
382
389
|
set that token in `.falkorlib.yaml` (ignored you shall ignore in your
|
383
|
-
`.gitignore`) as follows:
|
390
|
+
`.gitignore`) as follows:
|
384
391
|
|
385
392
|
```
|
386
393
|
:tokens:
|
@@ -390,58 +397,58 @@ set that token in `.falkorlib.yaml` (ignored you shall ignore in your
|
|
390
397
|
## FalkorLib Developments / Implementation details
|
391
398
|
|
392
399
|
If you want to contribute to the code, you shall be aware of the way I organized
|
393
|
-
this gem and its implementation details.
|
400
|
+
this gem and its implementation details.
|
394
401
|
|
395
402
|
### [RVM](https://rvm.io/) setup
|
396
403
|
|
397
|
-
Get the source of this library by cloning the repository as follows:
|
404
|
+
Get the source of this library by cloning the repository as follows:
|
398
405
|
|
399
406
|
$> git clone git://github.com/Falkor/falkorlib.git
|
400
407
|
|
401
408
|
You'll end in the `devel` branch. The precise branching model is explained in
|
402
|
-
the sequel.
|
409
|
+
the sequel.
|
403
410
|
|
404
411
|
If you use [RVM](http://beginrescueend.com/), you perhaps wants to create a
|
405
412
|
separate gemset so that we can create and install this gem in a clean
|
406
|
-
environment.
|
413
|
+
environment.
|
407
414
|
|
408
415
|
* create a file `.ruby-gemset` containing the name of the wished Gemset
|
409
416
|
(`falkorlib` for instance)
|
410
417
|
* create a file `.ruby-version` containing the wished version of Ruby (`2.1.0`
|
411
418
|
for instance - check on [Travis](https://travis-ci.org/Falkor/falkorlib) for
|
412
419
|
the supported version)
|
413
|
-
|
420
|
+
|
414
421
|
To load these files, you have to re-enter the directory where you cloned
|
415
|
-
`falkorlib` and placed the above files
|
422
|
+
`falkorlib` and placed the above files
|
416
423
|
|
417
424
|
To do that, proceed as follows:
|
418
425
|
|
419
426
|
$> rvm gemset create falkorlib
|
420
427
|
$> rvm gemset use falkorlib
|
421
428
|
|
422
|
-
Install bundler if it's not yet done:
|
429
|
+
Install bundler if it's not yet done:
|
423
430
|
|
424
431
|
$> gem install builder
|
425
432
|
|
426
|
-
Then install the required dependent gems as follows:
|
433
|
+
Then install the required dependent gems as follows:
|
427
434
|
|
428
|
-
$> bundle install
|
435
|
+
$> bundle install
|
429
436
|
|
430
437
|
|
431
438
|
### Git Branching Model
|
432
439
|
|
433
|
-
The Git branching model for this repository follows the guidelines of [gitflow](http://nvie.com/posts/a-successful-git-branching-model/).
|
434
|
-
In particular, the central repository holds two main branches with an infinite lifetime:
|
440
|
+
The Git branching model for this repository follows the guidelines of [gitflow](http://nvie.com/posts/a-successful-git-branching-model/).
|
441
|
+
In particular, the central repository holds two main branches with an infinite lifetime:
|
435
442
|
|
436
443
|
* `production`: the branch holding tags of the successive releases of this tutorial
|
437
|
-
* `devel`: the main branch where the sources are in a state with the latest delivered development changes for the next release. This is the *default* branch you get when you clone the repo, and the one on which developments will take places.
|
444
|
+
* `devel`: the main branch where the sources are in a state with the latest delivered development changes for the next release. This is the *default* branch you get when you clone the repo, and the one on which developments will take places.
|
438
445
|
|
439
|
-
You should therefore install [git-flow](https://github.com/nvie/gitflow), and probably also its associated [bash completion](https://github.com/bobthecow/git-flow-completion).
|
440
|
-
Also, to facilitate the tracking of remote branches, you probably wants to install [grb](https://github.com/webmat/git_remote_branch) (typically via ruby gems).
|
446
|
+
You should therefore install [git-flow](https://github.com/nvie/gitflow), and probably also its associated [bash completion](https://github.com/bobthecow/git-flow-completion).
|
447
|
+
Also, to facilitate the tracking of remote branches, you probably wants to install [grb](https://github.com/webmat/git_remote_branch) (typically via ruby gems).
|
441
448
|
|
442
449
|
Then, to make your local copy of the repository ready to use my git-flow workflow, you have to run the following commands once you cloned it for the first time:
|
443
450
|
|
444
|
-
$> rake setup
|
451
|
+
$> rake setup
|
445
452
|
|
446
453
|
### Working in a separate project
|
447
454
|
|
@@ -456,7 +463,7 @@ To illustrate the usage of the library as a regular user would do, you are advis
|
|
456
463
|
└── test
|
457
464
|
└── tester.rb # in a subdirectory on purpose
|
458
465
|
|
459
|
-
$> cat cat Gemfile
|
466
|
+
$> cat cat Gemfile
|
460
467
|
source "https://rubygems.org"
|
461
468
|
gem 'falkorlib' #, :path => '~/git/github.com/Falkor/falkorlib' # or whichever path that works for you
|
462
469
|
|
@@ -470,8 +477,8 @@ I try to define a set of unitary tests to validate the different function of my
|
|
470
477
|
You can run these tests by issuing:
|
471
478
|
|
472
479
|
$> rake rspec
|
473
|
-
|
474
|
-
By conventions, you will find all the currently implemented tests in the `spec/` directory, in files having the `_spec.rb` suffix. This is expected from the `rspec` task of the Rakefile (see `lib/falkorlib/tasks/rspec.rake`) for details.
|
480
|
+
|
481
|
+
By conventions, you will find all the currently implemented tests in the `spec/` directory, in files having the `_spec.rb` suffix. This is expected from the `rspec` task of the Rakefile (see `lib/falkorlib/tasks/rspec.rake`) for details.
|
475
482
|
|
476
483
|
|
477
484
|
**Important** Kindly stick to this convention, and feature tests for all definitions/classes/modules you might want to add to `FalkorLib`.
|
@@ -489,7 +496,7 @@ By conventions, you will find all the currently implemented tests in the `spec/`
|
|
489
496
|
|
490
497
|
By default, the gem take all files included in the `.Manifest.txt` file on the
|
491
498
|
root of the project. Entries of the manifest file are interpreted as `Dir[...]`
|
492
|
-
patterns so that lazy people may use wilcards like `lib/**/*`
|
499
|
+
patterns so that lazy people may use wilcards like `lib/**/*`
|
493
500
|
|
494
501
|
__IMPORTANT__ If you want to add a file/directory to this gem, remember to add
|
495
502
|
the associated entry into the manifest file `.Manifest.txt`
|
@@ -497,9 +504,9 @@ the associated entry into the manifest file `.Manifest.txt`
|
|
497
504
|
|
498
505
|
## Resources
|
499
506
|
|
500
|
-
### Git
|
507
|
+
### Git
|
501
508
|
|
502
|
-
You should become familiar (if not yet) with Git. Consider these resources:
|
509
|
+
You should become familiar (if not yet) with Git. Consider these resources:
|
503
510
|
|
504
511
|
* [Git book](http://book.git-scm.com/index.html)
|
505
512
|
* [Github:help](http://help.github.com/mac-set-up-git/)
|
data/completion/_falkor
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
#compdef falkor
|
2
2
|
########################################################################################
|
3
3
|
# -*- mode:sh; -*-
|
4
|
-
# Time-stamp: <Mon 2017-01-16 23:
|
4
|
+
# Time-stamp: <Mon 2017-01-16 23:55 svarrette>
|
5
5
|
#
|
6
6
|
# ZSH completion for [FalkorLib](https://github.com/Falkor/falkorlib)
|
7
7
|
#
|
@@ -38,12 +38,13 @@ _falkor()
|
|
38
38
|
{
|
39
39
|
local -a _falkor_cmds
|
40
40
|
_falkor_cmds=(
|
41
|
+
'commands:Lists all available commands'
|
41
42
|
'config:Print the current configuration of FalkorLib'
|
42
43
|
'help:Describe available commands or one specific command'
|
43
44
|
'init:Bootstrap a Git Repository the falkor way'
|
44
45
|
'link:Initialize a special symlink (.root, .makefile.d etc.)'
|
45
|
-
'motd:bootstrap a Message of the Day (motd) file'
|
46
46
|
'mkdocs:Initialize mkdocs for the current project'
|
47
|
+
'motd:bootstrap a Message of the Day (motd) file'
|
47
48
|
'new:Initialize the directory PATH with one of Falkors template(s)'
|
48
49
|
'version:Prints the FalkorLib version information'
|
49
50
|
)
|
@@ -255,8 +256,8 @@ __falkor_mkdocs() {
|
|
255
256
|
declare -A opt_args
|
256
257
|
|
257
258
|
_arguments -C \
|
258
|
-
{--force,-f}'[Force generation]'
|
259
|
-
'*:directory:
|
259
|
+
{--force,-f}'[Force generation]' \
|
260
|
+
'*:directory:_directories'
|
260
261
|
}
|
261
262
|
|
262
263
|
|
data/falkorlib.gemspec
CHANGED
@@ -8,7 +8,7 @@ Gem::Specification.new do |s|
|
|
8
8
|
s.version = FalkorLib::Version.to_s #$version
|
9
9
|
s.date = Time.now.strftime('%Y-%m-%d')
|
10
10
|
s.summary = "Sebastien Varrette aka Falkor's Common library to share Ruby code and {rake,cap} tasks"
|
11
|
-
s.description = "This is my personal library I use to share the Ruby tidbits and Rake tasks I made it for my various projects, and also to bootstrap easily several element of my daily workflow (new git repository, new beamer slides etc.).\
|
11
|
+
s.description = "This is my personal library I use to share the Ruby tidbits and Rake tasks I made it for my various projects, and also to bootstrap easily several element of my daily workflow (new git repository, new beamer slides etc.).\n"
|
12
12
|
|
13
13
|
s.homepage = "https://github.com/Falkor/falkorlib"
|
14
14
|
s.licenses = 'MIT'
|
data/lib/falkorlib/cli/new.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
2
|
################################################################################
|
3
|
-
# Time-stamp: <Mon 2017-01-16 23:
|
3
|
+
# Time-stamp: <Mon 2017-01-16 23:52 svarrette>
|
4
4
|
################################################################################
|
5
5
|
|
6
6
|
require 'thor'
|
@@ -70,9 +70,9 @@ By default, NAME is '.' meaning that the repository will be initialized in the c
|
|
70
70
|
###### articles ######
|
71
71
|
method_option :name, :aliases => '-n', :desc => 'Name of the LaTeX project'
|
72
72
|
method_option :dir, :aliases => '-d', :desc => 'Project directory (relative to the git root directory)'
|
73
|
-
method_option :ieee, :type => :boolean, :default =>
|
74
|
-
method_option :llncs, :type => :boolean, :default =>
|
75
|
-
method_option :acm, :type => :boolean, :default =>
|
73
|
+
method_option :ieee, :type => :boolean, :default => false, :desc => 'Use the IEEEtran style for IEEE conference'
|
74
|
+
method_option :llncs, :type => :boolean, :default => false, :desc => 'Use the Springer LNCS style', :aliases => '--lncs'
|
75
|
+
method_option :acm, :type => :boolean, :default => false, :desc => 'Use the ACM style'
|
76
76
|
# ......................................
|
77
77
|
desc "article [options]", "Bootstrap a LaTeX Article"
|
78
78
|
#___________________
|
data/lib/falkorlib/common.rb
CHANGED
@@ -242,6 +242,29 @@ module FalkorLib #:nodoc:
|
|
242
242
|
raw_l[Integer(answer)]
|
243
243
|
end # select_from
|
244
244
|
|
245
|
+
## Display a indexed list to select multiple indexes
|
246
|
+
def select_multiple_from(list, text = 'Select the index', default_idx = 1, raw_list = list)
|
247
|
+
error "list and raw_list differs in size" if list.size != raw_list.size
|
248
|
+
l = list
|
249
|
+
raw_l = raw_list
|
250
|
+
if list.is_a?(Array)
|
251
|
+
l = raw_l = { 0 => 'Exit', 1 => 'End of selection' }
|
252
|
+
list.each_with_index do |e, idx|
|
253
|
+
l[idx + 2] = e
|
254
|
+
raw_l[idx + 2] = raw_list[idx]
|
255
|
+
end
|
256
|
+
end
|
257
|
+
puts l.to_yaml
|
258
|
+
choices = Array.new
|
259
|
+
answer = 0
|
260
|
+
begin
|
261
|
+
choices.push(raw_l[Integer(answer)]) if Integer(answer) > 1
|
262
|
+
answer = ask("=> #{text}", default_idx.to_s)
|
263
|
+
raise SystemExit, 'exiting selection' if answer == '0'
|
264
|
+
raise RangeError, 'Undefined index' if Integer(answer) >= l.length
|
265
|
+
end while Integer(answer) != 1
|
266
|
+
choices
|
267
|
+
end # select_multiple_from
|
245
268
|
|
246
269
|
###############################
|
247
270
|
### YAML File loading/store ###
|
@@ -0,0 +1 @@
|
|
1
|
+
lib/falkorlib/tasks/../gem_tasks.rb
|
@@ -0,0 +1 @@
|
|
1
|
+
lib/falkorlib/tasks/../git_tasks.rb
|
@@ -129,7 +129,7 @@ namespace :version do
|
|
129
129
|
expected_branch = FalkorLib.config[:gitflow][:prefix][:release] + version
|
130
130
|
error "You are not in the '#{expected_branch}' branch but in the '#{branch}' one. May be you forgot to run 'rake version:bump:{patch,minor,major}' first" if branch != expected_branch
|
131
131
|
info "=> Finalize the release of the version '#{version}' into the '#{FalkorLib.config[:gitflow][:branches][:master]}' branch/environment"
|
132
|
-
o = FalkorLib::GitFlow.finish('release', version, Dir.pwd
|
132
|
+
o = FalkorLib::GitFlow.finish('release', version, Dir.pwd) #, '-s')
|
133
133
|
error "Git flow release process failed" unless o.zero?
|
134
134
|
if FalkorLib::Git.remotes?
|
135
135
|
info("=> about to update remote tracked branches")
|
@@ -0,0 +1 @@
|
|
1
|
+
lib/falkorlib/tasks/../puppet_tasks.rb
|
data/lib/falkorlib/version.rb
CHANGED
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.7.
|
4
|
+
version: 0.7.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sebastien Varrette
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-02-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -380,12 +380,8 @@ dependencies:
|
|
380
380
|
- - "~>"
|
381
381
|
- !ruby/object:Gem::Version
|
382
382
|
version: '0'
|
383
|
-
description:
|
384
|
-
tasks I made it for my various projects, and also to bootstrap easily several element
|
385
|
-
of my daily workflow (new git repository, new beamer slides etc.).\nThis is also
|
386
|
-
my first gem so any comments on the code/organization are welcome, I'm a newbie
|
387
|
-
in this domain. \nNote that I used [Noe](https://github.com/blambeau/noe) to bootstrap
|
388
|
-
this project and get a fully documented environment."
|
383
|
+
description: |
|
384
|
+
This is my personal library I use to share the Ruby tidbits and Rake tasks I made it for my various projects, and also to bootstrap easily several element of my daily workflow (new git repository, new beamer slides etc.).
|
389
385
|
email:
|
390
386
|
- Sebastien.Varrette@uni.lu
|
391
387
|
executables:
|
@@ -573,7 +569,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
573
569
|
version: '0'
|
574
570
|
requirements: []
|
575
571
|
rubyforge_project:
|
576
|
-
rubygems_version: 2.
|
572
|
+
rubygems_version: 2.6.10
|
577
573
|
signing_key:
|
578
574
|
specification_version: 4
|
579
575
|
summary: Sebastien Varrette aka Falkor's Common library to share Ruby code and {rake,cap}
|
data/lib/falkorlib/tasks/gem.rb
DELETED
@@ -1,30 +0,0 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
2
|
-
################################################################################
|
3
|
-
# Time-stamp: <Fri 2016-11-11 14:28 svarrette>
|
4
|
-
################################################################################
|
5
|
-
#
|
6
|
-
# FalkorLib rake tasks to pilot Gem operations
|
7
|
-
#
|
8
|
-
|
9
|
-
require 'rake'
|
10
|
-
require 'falkorlib'
|
11
|
-
require 'falkorlib/tasks'
|
12
|
-
|
13
|
-
module FalkorLib #:nodoc:
|
14
|
-
# Rake tasks to pilot Gem operations
|
15
|
-
class GemTasks
|
16
|
-
|
17
|
-
include Rake::DSL if defined? Rake::DSL
|
18
|
-
|
19
|
-
# Install the gem tasks for Rake
|
20
|
-
def install_tasks
|
21
|
-
load 'falkorlib/tasks/gem.rake'
|
22
|
-
load 'falkorlib/tasks/yard.rake'
|
23
|
-
load 'falkorlib/tasks/rspec.rake'
|
24
|
-
end
|
25
|
-
|
26
|
-
end # class FalkorLib::GemTasks
|
27
|
-
end # module FalkorLib
|
28
|
-
|
29
|
-
# Now install them ;)
|
30
|
-
FalkorLib::GemTasks.new.install_tasks
|
data/lib/falkorlib/tasks/git.rb
DELETED
@@ -1,52 +0,0 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
2
|
-
################################################################################
|
3
|
-
# Time-stamp: <Fri 2016-11-11 14:29 svarrette>
|
4
|
-
################################################################################
|
5
|
-
#
|
6
|
-
# FalkorLib rake tasks to pilot Git [flow] operations
|
7
|
-
#
|
8
|
-
|
9
|
-
require 'rake'
|
10
|
-
require 'falkorlib'
|
11
|
-
require 'falkorlib/tasks'
|
12
|
-
|
13
|
-
module FalkorLib #:nodoc:
|
14
|
-
# Rake tasks to pilot Git operations
|
15
|
-
class GitTasks
|
16
|
-
|
17
|
-
include Rake::DSL if defined? Rake::DSL
|
18
|
-
|
19
|
-
# Install the git[flow] tasks for Rake
|
20
|
-
def install_tasks
|
21
|
-
load 'falkorlib/tasks/git.rake'
|
22
|
-
load 'falkorlib/tasks/gitflow.rake'
|
23
|
-
end
|
24
|
-
|
25
|
-
end # class FalkorLib::GitTasks
|
26
|
-
end # module FalkorLib
|
27
|
-
|
28
|
-
|
29
|
-
if FalkorLib::Git.init?
|
30
|
-
# Now install them ;)
|
31
|
-
FalkorLib::GitTasks.new.install_tasks
|
32
|
-
else
|
33
|
-
warn "Git is not initialized for this directory."
|
34
|
-
warn "==> consider running 'rake git[:flow]:init' to be able to access the regular git Rake tasks"
|
35
|
-
#.....................
|
36
|
-
namespace :git do
|
37
|
-
########### git:init ###########
|
38
|
-
desc "Initialize Git repository"
|
39
|
-
task :init do
|
40
|
-
FalkorLib::Git.init
|
41
|
-
end
|
42
|
-
|
43
|
-
#.....................
|
44
|
-
namespace :flow do
|
45
|
-
########### git:flow:init ###########
|
46
|
-
desc "Initialize the Git-flow repository"
|
47
|
-
task :init do
|
48
|
-
FalkorLib::GitFlow.init
|
49
|
-
end
|
50
|
-
end # namespace git:flow
|
51
|
-
end # namespace git
|
52
|
-
end
|
@@ -1,27 +0,0 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
2
|
-
################################################################################
|
3
|
-
# Time-stamp: <Fri 2016-11-11 14:45 svarrette>
|
4
|
-
################################################################################
|
5
|
-
#
|
6
|
-
# FalkorLib rake tasks to pilot Puppet operations
|
7
|
-
#
|
8
|
-
|
9
|
-
require 'rake'
|
10
|
-
require 'falkorlib'
|
11
|
-
require 'falkorlib/tasks'
|
12
|
-
|
13
|
-
module FalkorLib #:nodoc:
|
14
|
-
# Puppet tasks for Rake
|
15
|
-
class PuppetTasks
|
16
|
-
|
17
|
-
include Rake::DSL if defined? Rake::DSL
|
18
|
-
|
19
|
-
# Install the puppet tasks for Rake
|
20
|
-
def install_tasks
|
21
|
-
load 'falkorlib/tasks/puppet_modules.rake'
|
22
|
-
end
|
23
|
-
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
FalkorLib::PuppetTasks.new.install_tasks
|