clir 0.22.0
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 +7 -0
- data/.gitignore +8 -0
- data/.travis.yml +6 -0
- data/CHANGELOG.md +229 -0
- data/Gemfile +8 -0
- data/Gemfile.lock +44 -0
- data/Manual/Manuel_fr.md +222 -0
- data/Manual/Manuel_fr.pdf +0 -0
- data/README.md +63 -0
- data/REFLEXIONS.md +8 -0
- data/Rakefile +10 -0
- data/TODO.md +9 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/clir.gemspec +40 -0
- data/lib/clir/Array.ext.rb +9 -0
- data/lib/clir/CLI.mod.rb +237 -0
- data/lib/clir/CSV_extension.rb +177 -0
- data/lib/clir/Config.cls.rb +25 -0
- data/lib/clir/Date_utils.rb +161 -0
- data/lib/clir/File_extension.rb +127 -0
- data/lib/clir/Integer.ext.rb +43 -0
- data/lib/clir/Labelizor.rb +231 -0
- data/lib/clir/Replayer.cls.rb +90 -0
- data/lib/clir/String.ext.rb +304 -0
- data/lib/clir/Symbol.ext.rb +20 -0
- data/lib/clir/TTY-Prompt.cls.rb +415 -0
- data/lib/clir/Table.rb +369 -0
- data/lib/clir/console_methods.rb +42 -0
- data/lib/clir/helpers_methods.rb +68 -0
- data/lib/clir/state_methods.rb +48 -0
- data/lib/clir/utils_methods.rb +57 -0
- data/lib/clir/utils_numbers.rb +50 -0
- data/lib/clir/version.rb +3 -0
- data/lib/clir.rb +36 -0
- metadata +136 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 04a1f95d975d1d275d120e81fb1a3226e2d8ff93807ad70578e6ac1171c6d525
|
4
|
+
data.tar.gz: 2f16578c4588470f8d4e5ad49971febf3a50201c6fd874b5986b65f53c85fcdb
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: cd859cd9d54f2d689939786042943cd65a39ee476964e3d089bef9a5c9468fb3b508ad7fb335ad7e76899745ff19c172de2b302dfffd032521aecc449debd299
|
7
|
+
data.tar.gz: 7d1a4acba85f7d6cb7197b6b7b98407b8c6280091a867017afc54fe4460fb43b04e138b407773c230ac7ff031e5dc60d09999030485e04aed7b80be81fd80e4f
|
data/.gitignore
ADDED
data/.travis.yml
ADDED
data/CHANGELOG.md
ADDED
@@ -0,0 +1,229 @@
|
|
1
|
+
* 022.0
|
2
|
+
|
3
|
+
- Extension pour la clas CSV (lecture en arrière)
|
4
|
+
|
5
|
+
* 0.19.0
|
6
|
+
|
7
|
+
- Amélioration du manuel
|
8
|
+
|
9
|
+
* 0.18.2
|
10
|
+
|
11
|
+
- petite correction pour rubycop…
|
12
|
+
|
13
|
+
* 0.18.1
|
14
|
+
|
15
|
+
- mkdir_p alias de mkdir
|
16
|
+
(à cause des changements de FileUtils…)
|
17
|
+
|
18
|
+
* 0.18.0
|
19
|
+
|
20
|
+
- Add File#append method
|
21
|
+
|
22
|
+
* 0.17.2
|
23
|
+
|
24
|
+
- Add human_date/date_humaine method
|
25
|
+
|
26
|
+
* 0.17.1
|
27
|
+
|
28
|
+
- Add File#affix method
|
29
|
+
|
30
|
+
* 0.16.1
|
31
|
+
|
32
|
+
- Fixed bug String#camelize (frozen string)
|
33
|
+
|
34
|
+
* 0.16.0
|
35
|
+
|
36
|
+
- Ajout du gem FileUtils
|
37
|
+
|
38
|
+
* 0.15.2
|
39
|
+
|
40
|
+
- Minibug sur @params fixed
|
41
|
+
|
42
|
+
* 0.15.1
|
43
|
+
|
44
|
+
- String#max and String#max!
|
45
|
+
|
46
|
+
* 0.14.4
|
47
|
+
|
48
|
+
- :sentence => :verbal in formate_date
|
49
|
+
|
50
|
+
* 0.14.3
|
51
|
+
|
52
|
+
- Cosmetic
|
53
|
+
|
54
|
+
* 0.14.2
|
55
|
+
|
56
|
+
- Improvement of formate_date
|
57
|
+
|
58
|
+
* 0.14.1
|
59
|
+
|
60
|
+
- Improvement of formate_date
|
61
|
+
|
62
|
+
* 0.14.0
|
63
|
+
|
64
|
+
- formate_date
|
65
|
+
- date_from
|
66
|
+
- date_for_file
|
67
|
+
|
68
|
+
* 0.13.0
|
69
|
+
|
70
|
+
- String#cjust
|
71
|
+
- Alignment in table columns
|
72
|
+
|
73
|
+
* 0.11.2
|
74
|
+
|
75
|
+
- Col max width in Clir::Table
|
76
|
+
|
77
|
+
* 0.11.1
|
78
|
+
|
79
|
+
- Cosmetic for Clir::Table
|
80
|
+
|
81
|
+
* 0.11.0
|
82
|
+
|
83
|
+
- Utils method for number (devise methods)
|
84
|
+
- Powerfull Clir::Table
|
85
|
+
|
86
|
+
* 0.10.0
|
87
|
+
|
88
|
+
- Date utils methods
|
89
|
+
- Yard for documentation
|
90
|
+
|
91
|
+
* 0.9.0
|
92
|
+
|
93
|
+
- Methods semaine, jour, heure, minute (et pluriel + anglaises)
|
94
|
+
|
95
|
+
* 0.8.0
|
96
|
+
|
97
|
+
- Method camelize
|
98
|
+
- Method decamelize
|
99
|
+
- Method titleize
|
100
|
+
|
101
|
+
* 0.7.1
|
102
|
+
|
103
|
+
- Add colors (backgrounds and foregrounds)
|
104
|
+
|
105
|
+
* 0.7.0
|
106
|
+
|
107
|
+
- Add File extension file
|
108
|
+
- New method: File.tail
|
109
|
+
|
110
|
+
* 0.6.3
|
111
|
+
|
112
|
+
- Fixed bug in TTY::MyPrompt (2)
|
113
|
+
|
114
|
+
* 0.6.2
|
115
|
+
|
116
|
+
- Fixed bug in TTY::MyPrompt
|
117
|
+
|
118
|
+
* 0.6.1
|
119
|
+
|
120
|
+
- Marker for TTY::MyPrompt to be able to keep interactive mode
|
121
|
+
- during the tests.
|
122
|
+
- Methods TTY::MyPrompt::set_mode_interactive, TTY::MyPrompt::set_mode_inputs, TTY::MyPrompt::unset_mode_interactive
|
123
|
+
|
124
|
+
* 0.6.0
|
125
|
+
|
126
|
+
- Method CLI::set_tests_on_with_marker
|
127
|
+
- Method CLI::unset_tests_on_with_marker
|
128
|
+
- To universalize the test state.
|
129
|
+
|
130
|
+
* 0.5.1
|
131
|
+
|
132
|
+
- Method TTY::MyPrompt.set_mode_inputs (alias)
|
133
|
+
|
134
|
+
* 0.5.0
|
135
|
+
|
136
|
+
- Enable to toggle interactive/inputs mode in TTY::MyPrompt
|
137
|
+
- current instance. ((efficient))
|
138
|
+
|
139
|
+
* 0.4.9
|
140
|
+
|
141
|
+
- Enable to toggle interactive/inputs mode in TTY::MyPrompt
|
142
|
+
- current instance. ((inefficient))
|
143
|
+
|
144
|
+
* 0.4.8
|
145
|
+
|
146
|
+
- Environment constant 'NO_CLI_TEST_INPUTS' to use TTY-Prompt in
|
147
|
+
- regular mode.
|
148
|
+
|
149
|
+
* 0.4.7
|
150
|
+
|
151
|
+
- Options :template pour formate_date
|
152
|
+
|
153
|
+
* 0.4.6
|
154
|
+
|
155
|
+
- Ajout de la méthode Q.default_name_for_value
|
156
|
+
|
157
|
+
* 0.4.5
|
158
|
+
|
159
|
+
- Ajout de la méthode String#patronize
|
160
|
+
|
161
|
+
* 0.4.4
|
162
|
+
|
163
|
+
- Ajout de la méthode String#normalize[d]
|
164
|
+
|
165
|
+
* 0.4.3
|
166
|
+
|
167
|
+
- Ajout de la méthode round
|
168
|
+
|
169
|
+
* 0.4.2
|
170
|
+
|
171
|
+
- Ajout de la méthode String#numeric?
|
172
|
+
|
173
|
+
* 0.4.1
|
174
|
+
|
175
|
+
- Ajout de la méthode Symbol#in?
|
176
|
+
|
177
|
+
* 0.4.0
|
178
|
+
|
179
|
+
- Ajout des méthodes in? pour String et Integer
|
180
|
+
|
181
|
+
* 0.3.1
|
182
|
+
|
183
|
+
- Ajout des méthodes TTY-Prompt yes? et no?
|
184
|
+
|
185
|
+
* 0.3.0
|
186
|
+
|
187
|
+
- Remise de TTY-MyPrompt
|
188
|
+
|
189
|
+
* 0.2.1
|
190
|
+
|
191
|
+
- 'less' pour les tests (on écrit directement le texte)
|
192
|
+
|
193
|
+
* 0.2.0
|
194
|
+
|
195
|
+
- Ajout de méthode String (as_title, columnize, etc.)
|
196
|
+
|
197
|
+
* 0.1.8
|
198
|
+
|
199
|
+
- Amélioration de 'clear' (qui sautait une ligne)
|
200
|
+
|
201
|
+
* 0.1.7
|
202
|
+
|
203
|
+
- Ajout de la méthode utile 'formate_date'
|
204
|
+
|
205
|
+
* 0.1.6
|
206
|
+
|
207
|
+
- Ajout de la couleur vert clair (ligth_green, vert_clair)
|
208
|
+
|
209
|
+
* 0.1.5
|
210
|
+
|
211
|
+
- Ajout des méthode CLI.option(key) et CLI.param(key)
|
212
|
+
|
213
|
+
* 0.1.4
|
214
|
+
|
215
|
+
- Ajout de la méthode 'require_folder' qui requiert tous les scripts
|
216
|
+
- ruby d'un dossier donné en argument.
|
217
|
+
|
218
|
+
* 0.1.3
|
219
|
+
|
220
|
+
- Ajout du strike pour barrer du texte, italic pour mettre en
|
221
|
+
- italic et underline pour souligner, en console.
|
222
|
+
|
223
|
+
* 0.1.1
|
224
|
+
|
225
|
+
- Auto-init CLI (parse) when app calls :options, :params, etc.
|
226
|
+
|
227
|
+
* 0.1.0
|
228
|
+
|
229
|
+
- Création du Gem
|
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
clir (0.22.0)
|
5
|
+
json
|
6
|
+
tty-prompt
|
7
|
+
|
8
|
+
GEM
|
9
|
+
remote: https://rubygems.org/
|
10
|
+
specs:
|
11
|
+
json (2.6.3)
|
12
|
+
minitest (5.16.3)
|
13
|
+
minitest-color (0.0.2)
|
14
|
+
minitest (~> 5)
|
15
|
+
pastel (0.8.0)
|
16
|
+
tty-color (~> 0.5)
|
17
|
+
rake (12.3.3)
|
18
|
+
tty-color (0.6.0)
|
19
|
+
tty-cursor (0.7.1)
|
20
|
+
tty-prompt (0.23.1)
|
21
|
+
pastel (~> 0.8)
|
22
|
+
tty-reader (~> 0.8)
|
23
|
+
tty-reader (0.9.0)
|
24
|
+
tty-cursor (~> 0.7)
|
25
|
+
tty-screen (~> 0.8)
|
26
|
+
wisper (~> 2.0)
|
27
|
+
tty-screen (0.8.1)
|
28
|
+
webrick (1.7.0)
|
29
|
+
wisper (2.0.1)
|
30
|
+
yard (0.9.28)
|
31
|
+
webrick (~> 1.7.0)
|
32
|
+
|
33
|
+
PLATFORMS
|
34
|
+
ruby
|
35
|
+
|
36
|
+
DEPENDENCIES
|
37
|
+
clir!
|
38
|
+
minitest (~> 5.0)
|
39
|
+
minitest-color
|
40
|
+
rake (~> 12.0)
|
41
|
+
yard
|
42
|
+
|
43
|
+
BUNDLED WITH
|
44
|
+
2.1.4
|
data/Manual/Manuel_fr.md
ADDED
@@ -0,0 +1,222 @@
|
|
1
|
+
# Manuel du gem `clir`
|
2
|
+
|
3
|
+
~~~ruby
|
4
|
+
require 'clir'
|
5
|
+
~~~
|
6
|
+
|
7
|
+
|
8
|
+
|
9
|
+
> NOTE : CE DOCUMENT EST TRÈS LOIN DE PRÉSENTER TOUTES LES MÉTHODES
|
10
|
+
|
11
|
+
|
12
|
+
|
13
|
+
[TOC]
|
14
|
+
|
15
|
+
|
16
|
+
|
17
|
+
## L'application
|
18
|
+
|
19
|
+
### CLI
|
20
|
+
|
21
|
+
Si on joue cette commande dans le terminal : `macom --version help -n pour voir valeur=12`
|
22
|
+
|
23
|
+
On obtiendra :
|
24
|
+
|
25
|
+
~~~ruby
|
26
|
+
|
27
|
+
CLI.command_name
|
28
|
+
# => 'macom'
|
29
|
+
|
30
|
+
CLI.main_command
|
31
|
+
# => 'help'
|
32
|
+
|
33
|
+
CLI.options
|
34
|
+
# => {version: true, n: true} # ou remplacement de :n
|
35
|
+
|
36
|
+
CLI.params
|
37
|
+
# => {value: 12}
|
38
|
+
|
39
|
+
CLI.components
|
40
|
+
# => ['pour', 'voir']
|
41
|
+
|
42
|
+
~~~
|
43
|
+
|
44
|
+
### Options de la ligne de commande
|
45
|
+
|
46
|
+
~~~ruby
|
47
|
+
CLI.options # => liste complète des options
|
48
|
+
CLI.option(:option) # => true si l'option --option est activité
|
49
|
+
~~~
|
50
|
+
|
51
|
+
L’option peut aussi avoir une valeur :
|
52
|
+
|
53
|
+
~~~
|
54
|
+
> macommande -n=4 -o
|
55
|
+
|
56
|
+
# =>
|
57
|
+
|
58
|
+
# {n: 4, o: true}
|
59
|
+
~~~
|
60
|
+
|
61
|
+
Voir aussi [les options propres à l’application](#app-own-options).
|
62
|
+
|
63
|
+
### Rejouer une commande (mode `Replayer`)
|
64
|
+
|
65
|
+
Pour rejouer une commande — pas seulement la commmande mais aussi toutes les entrées qui ont été faites — on joue juste `app _`.
|
66
|
+
|
67
|
+
> Attention : il faut vraiment qu'il n'y ait que '\_' après la commande et rien d'autre, même pas une option.
|
68
|
+
|
69
|
+
C'est une commande particulièrement utile quand on teste l'application car elle évite d'avoir à retaper chaque fois les commandes et les options.
|
70
|
+
|
71
|
+
|
72
|
+
|
73
|
+
---
|
74
|
+
|
75
|
+
## File extensions
|
76
|
+
|
77
|
+
### `File#tail`
|
78
|
+
|
79
|
+
Retourne les x dernières du fichier sans avoir à le lire en intégralité (parfait pour les fichiers énormes.
|
80
|
+
|
81
|
+
~~~ruby
|
82
|
+
@syntax
|
83
|
+
File.tail(path, nombre_lignes)
|
84
|
+
|
85
|
+
# Par exemple
|
86
|
+
|
87
|
+
File.tail("monfichier.txt", 2000)
|
88
|
+
# => Retourne les 2000 dernières lignes du fichier (ou moins s'il y en a moins)
|
89
|
+
# Note : les lignes sont dans le même ordre.
|
90
|
+
~~~
|
91
|
+
|
92
|
+
|
93
|
+
|
94
|
+
## CLI Tests
|
95
|
+
|
96
|
+
### inputs
|
97
|
+
|
98
|
+
#### Simuler l'interruption forcée du programme
|
99
|
+
|
100
|
+
Dans l'input, utiliser `EXIT` ou `CTRL-C` (et ses variantes avec tiret plat ou espace) ou `^C`.
|
101
|
+
|
102
|
+
#### Pour `Q.yes?`
|
103
|
+
|
104
|
+
`with_inputs` peut contenir :
|
105
|
+
|
106
|
+
* "o", "y", 1, "true", "yes", "oui" pour retourner `true`
|
107
|
+
* toute autre valeur retournera `false`
|
108
|
+
|
109
|
+
#### Pour `Q.select`
|
110
|
+
|
111
|
+
`with_inputs` peut contenir :
|
112
|
+
|
113
|
+
* la valeur explicite à retourner
|
114
|
+
|
115
|
+
~~~ruby
|
116
|
+
with_inputs ['valeur explicite']
|
117
|
+
~~~
|
118
|
+
|
119
|
+
* la valeur par le nom du menu (non sensible à la casse)
|
120
|
+
|
121
|
+
~~~ruby
|
122
|
+
with_inputs [{name:"le nom du menu"}]
|
123
|
+
~~~
|
124
|
+
|
125
|
+
* la valeur par une expression régulière (non sensible à la casse)
|
126
|
+
|
127
|
+
~~~ruby
|
128
|
+
with_inputs [{rname: "men"}] # => le premier menu contenant "men"
|
129
|
+
~~~
|
130
|
+
|
131
|
+
* la valeur par un index (1-start) de menu
|
132
|
+
|
133
|
+
~~~ruby
|
134
|
+
with_inputs [{index:2}] # => la valeur du deuxième menu
|
135
|
+
~~~
|
136
|
+
|
137
|
+
|
138
|
+
#### Pour `Q.multiselect`
|
139
|
+
|
140
|
+
`with_inputs` peut contenir :
|
141
|
+
|
142
|
+
* les valeurs explicites à retourner
|
143
|
+
|
144
|
+
~~~ruby
|
145
|
+
with_inputs [
|
146
|
+
['valeurs','explicites']
|
147
|
+
]
|
148
|
+
~~~
|
149
|
+
|
150
|
+
* les valeur par le nom des menus (non sensible à la casse)
|
151
|
+
|
152
|
+
~~~ruby
|
153
|
+
with_inputs [{names:["premier", "deuxième"]}]
|
154
|
+
~~~
|
155
|
+
|
156
|
+
* les valeurs par une expression régulière (non sensible à la casse)
|
157
|
+
|
158
|
+
~~~ruby
|
159
|
+
with_inputs [{rname: "men"}] # => Tous les menus contenant "men"
|
160
|
+
~~~
|
161
|
+
|
162
|
+
* les valeurs par plusieurs expressions régulières
|
163
|
+
|
164
|
+
~~~ruby
|
165
|
+
with_inputs [{rnames: ["men", "nue"]}] # => Tous les menus contenant "men" ou "nue"
|
166
|
+
~~~
|
167
|
+
|
168
|
+
* les valeurs par liste d'index (1-start) de menu
|
169
|
+
|
170
|
+
~~~ruby
|
171
|
+
with_inputs [{index:[2,4]}] # => la valeur du 2e et 4e menu
|
172
|
+
~~~
|
173
|
+
|
174
|
+
#### Pour `Q.multiline`
|
175
|
+
|
176
|
+
On peut envoyer le texte explicite qu'aurait tapé l'utilisateur :
|
177
|
+
|
178
|
+
~~~ruby
|
179
|
+
with_inputs = ["Le\nTexte\nExplicite"]
|
180
|
+
~~~
|
181
|
+
|
182
|
+
Pour simuler les touches ⌃D (control et D), on peut utiliser au choix : `CTRL-D`, `CTRL D`, `CTRL_D` ou `^D`.
|
183
|
+
|
184
|
+
> Note : mais cela revient simplement à mettre un texte vide.
|
185
|
+
|
186
|
+
### Mode interactif/entrées
|
187
|
+
|
188
|
+
Parfois, pendant les tests, on peut vouloir taper les entrées à la main (ou par osascript). Dans ce cas, il faut changer TTY-Prompt de mode. Cela se fait à l'aide de :
|
189
|
+
|
190
|
+
~~~ruby
|
191
|
+
TTY::MyPrompt.set_mode_interactive
|
192
|
+
# => Q passe en mode interactif, avec l'affichage à l'écran du prompt
|
193
|
+
~~~
|
194
|
+
|
195
|
+
~~~ruby
|
196
|
+
TTY::MyPrompt.unset_mode_interactive
|
197
|
+
# => Pour revenir en mode par inputs
|
198
|
+
~~~
|
199
|
+
|
200
|
+
Pour vérifier le mode courant, on peut faire appel à :
|
201
|
+
|
202
|
+
~~~ruby
|
203
|
+
Q.mode
|
204
|
+
# => :interactive ou :inputs
|
205
|
+
~~~
|
206
|
+
|
207
|
+
|
208
|
+
|
209
|
+
<a name="app-own-options"></a>
|
210
|
+
|
211
|
+
## Options propres à l’application
|
212
|
+
|
213
|
+
Pour définir ses propres options en ligne de commande :
|
214
|
+
|
215
|
+
~~~ruby
|
216
|
+
CLI.set_options_table({
|
217
|
+
s: :simulation,
|
218
|
+
...
|
219
|
+
})
|
220
|
+
~~~
|
221
|
+
|
222
|
+
> Noter que les deux éléments doivent être des `Symbol`s.
|
Binary file
|
data/README.md
ADDED
@@ -0,0 +1,63 @@
|
|
1
|
+
# Clir
|
2
|
+
|
3
|
+
A lot of usefull methods to deal with CLI application and more. Its my Swizerland's Knife.
|
4
|
+
|
5
|
+
## Installation
|
6
|
+
|
7
|
+
Add this line to your application's Gemfile:
|
8
|
+
|
9
|
+
```ruby
|
10
|
+
gem 'clir'
|
11
|
+
```
|
12
|
+
|
13
|
+
And then execute:
|
14
|
+
|
15
|
+
$ bundle install
|
16
|
+
|
17
|
+
Or install it yourself as:
|
18
|
+
|
19
|
+
$ gem install clir
|
20
|
+
|
21
|
+
## Usage
|
22
|
+
|
23
|
+
[TODO] Reprendre toutes les méthodes
|
24
|
+
|
25
|
+
### Test state
|
26
|
+
|
27
|
+
~~~ruby
|
28
|
+
# Use it in test_helper.rb ou spec_helper.rb
|
29
|
+
|
30
|
+
require 'clir'
|
31
|
+
|
32
|
+
CLI.set_tests_on_with_marker
|
33
|
+
# => universal test marker. Whereever you call the app, test?
|
34
|
+
# will be true
|
35
|
+
|
36
|
+
# Don't forget to use :
|
37
|
+
CLI.unset_tests_on_with_marker
|
38
|
+
# … to remove test on
|
39
|
+
~~~
|
40
|
+
|
41
|
+
### Mode test with interactive mode for TTY
|
42
|
+
|
43
|
+
When tests are ON, TTY::(My)Prompt toggle in `inputs_mode` so tests can send it the fake-user inputs. Sometimes though, tests use `Osascript` to run *real live test* (like if an user stokes real keys). In this case, `TTY::Prompt` must stay in `interactive mode`. To do so, tests have to call these methods:
|
44
|
+
~~~ruby
|
45
|
+
|
46
|
+
TTY::MyPrompt.set_mode_interactive
|
47
|
+
# => TTY:MyPrompt toggles in interactive mode during the tests
|
48
|
+
|
49
|
+
TTY::MyPrompt.set_mode_inputs
|
50
|
+
# => TTY::MyPrompt toggles in inputs mode during the tests (or not…)
|
51
|
+
|
52
|
+
~~~
|
53
|
+
|
54
|
+
## Development
|
55
|
+
|
56
|
+
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
57
|
+
|
58
|
+
To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
|
59
|
+
|
60
|
+
## Contributing
|
61
|
+
|
62
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/clir.
|
63
|
+
|
data/REFLEXIONS.md
ADDED
@@ -0,0 +1,8 @@
|
|
1
|
+
# Réflexions
|
2
|
+
|
3
|
+
# Replayer
|
4
|
+
|
5
|
+
En fait, le replayer et le mode test pourraient partager les mêmes choses puisqu'au fond ils fonctionnent de la même manière :
|
6
|
+
|
7
|
+
* le mode test définit des `inputs` qui sont les entrées de l'utilisateur simulé
|
8
|
+
* le mode replay définit de la même manière les `inpupts` précédents
|
data/Rakefile
ADDED
data/TODO.md
ADDED
data/bin/console
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require "bundler/setup"
|
4
|
+
require "clir"
|
5
|
+
|
6
|
+
# You can add fixtures and/or initialization code here to make experimenting
|
7
|
+
# with your gem easier. You can also use a different console, if you like.
|
8
|
+
|
9
|
+
# (If you use this, don't forget to add pry to your Gemfile!)
|
10
|
+
# require "pry"
|
11
|
+
# Pry.start
|
12
|
+
|
13
|
+
require "irb"
|
14
|
+
IRB.start(__FILE__)
|
data/bin/setup
ADDED
data/clir.gemspec
ADDED
@@ -0,0 +1,40 @@
|
|
1
|
+
require_relative 'lib/clir/version'
|
2
|
+
|
3
|
+
Gem::Specification.new do |s|
|
4
|
+
s.name = "clir"
|
5
|
+
s.version = Clir::VERSION
|
6
|
+
s.authors = ["Philippe Perret"]
|
7
|
+
s.email = ["philippe.perret@yahoo.fr"]
|
8
|
+
|
9
|
+
s.summary = %q{Command Line Interface for Ruby applications}
|
10
|
+
s.description = %q{Command Line Interface for Ruby applications}
|
11
|
+
# s.homepage = "https://github.com/PhilippePerret/clir"
|
12
|
+
s.homepage = "https://rubygems.org/gems/clir"
|
13
|
+
s.required_ruby_version = Gem::Requirement.new(">= 2.3.0")
|
14
|
+
|
15
|
+
# --- Development dependencies ---
|
16
|
+
|
17
|
+
s.add_development_dependency 'minitest'
|
18
|
+
s.add_development_dependency 'minitest-color'
|
19
|
+
|
20
|
+
# --- Dependencies ---
|
21
|
+
|
22
|
+
s.add_dependency "json"
|
23
|
+
s.add_dependency "tty-prompt"
|
24
|
+
|
25
|
+
|
26
|
+
s.metadata["allowed_push_host"] = "https://rubygems.org"
|
27
|
+
|
28
|
+
s.metadata["homepage_uri"] = s.homepage
|
29
|
+
s.metadata["source_code_uri"] = "https://github.com/PhilippePerret/clir"
|
30
|
+
s.metadata["changelog_uri"] = "https://github.com/PhilippePerret/clir/CHANGELOG.md"
|
31
|
+
|
32
|
+
# Specify which files should be added to the gem when it is released.
|
33
|
+
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
34
|
+
s.files = Dir.chdir(File.expand_path('..', __FILE__)) do
|
35
|
+
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
36
|
+
end
|
37
|
+
s.bindir = "exe"
|
38
|
+
s.executables = s.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
39
|
+
s.require_paths = ["lib"]
|
40
|
+
end
|