dorian-write 0.1.1 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/bin/write +29 -12
  3. metadata +17 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 27319c7f42a446021cb78f177147e57b7ea6c6df8de9d58b90cdb7848d986235
4
- data.tar.gz: 0d25e245e055b40714d8701cfee0fff26e930a3d25a9552863eac55739984b46
3
+ metadata.gz: bda03ca4372ebadd289b668edd6c54f0d846ac1021bc9af0b1ca21574d99ee35
4
+ data.tar.gz: 0dbd9c6e03543e4a364ae10e1fee2f10a01fd9ce599eaf94b280ff5e2016d3ff
5
5
  SHA512:
6
- metadata.gz: a5b56bef1c331e3e0e904983a4b028d8d3165a213b6ebfa5858687ff445682cdcd44ccc3e835099582a3ef0f526f8c3bd8f52656b8cd1692648a6a52b8bccd72
7
- data.tar.gz: 77640f530975b53bead90aab4a76cb76f6c615a84405c2d3a3a5c33116941231f840df96b9f762f7c4063dbad82554a4837e4eafa7ec90eba71353b7a0896313
6
+ metadata.gz: 95c729f998e5b60cdf94c67b7999c73bb8248fddd4b5ad03bb03dc402c2e2aceef2219694dc92378b33cd1bd4d5dbdda30562dd8db5067e17b5f176a2f318d9f
7
+ data.tar.gz: 160ff02ce3c36199ad5aef8853263271082be81dde75b5a6503c3d588cd1ede2c4418a7b3dc5bb38193d114bbeaa422ffe9ca68046b19f2f26ca144a79032c93
data/bin/write CHANGED
@@ -1,21 +1,38 @@
1
1
  #!/usr/bin/env ruby
2
2
  # frozen_string_literal: true
3
3
 
4
- if ARGV.size < 1 || ARGV.first == "--help" || ARGV.first == "-h"
5
- abort "USAGE: ... | write [-a|--append|-p|--prepend] FILES..."
4
+ require "dorian/arguments"
5
+
6
+ parsed =
7
+ Dorian::Arguments.parse(
8
+ prepend: {
9
+ alias: :p
10
+ },
11
+ append: {
12
+ alias: :a
13
+ },
14
+ version: {
15
+ alias: :v
16
+ },
17
+ help: {
18
+ alias: :h
19
+ }
20
+ )
21
+
22
+ abort parsed.help if parsed.options.help
23
+
24
+ if parsed.options.version
25
+ abort File.read(File.expand_path("../../VERSION", __FILE__))
6
26
  end
7
27
 
8
- PREPEND = ARGV.detect { |argv| argv == "-p" || argv == "--prepend" }
9
- APPEND = ARGV.detect { |argv| argv == "-a" || argv == "--append" }
10
- FILES = ARGV - [PREPEND] - [APPEND]
11
- CONTENT = $stdin.each_line.to_a.map(&:strip).join("\n")
28
+ content = $stdin.each_line.to_a.join
12
29
 
13
- FILES.each do |file|
14
- if APPEND
15
- File.write(file, [File.read(file).strip, CONTENT].join("\n"))
16
- elsif PREPEND
17
- File.write(file, [CONTENT, File.read(file).strip].join("\n"))
30
+ (parsed.files + parsed.arguments).each do |file|
31
+ if parsed.options.append
32
+ File.write(file, [File.read(file).strip, content].join("\n"))
33
+ elsif parsed.options.prepend
34
+ File.write(file, [content, File.read(file).strip].join("\n"))
18
35
  else
19
- File.write(file, CONTENT)
36
+ File.write(file, content)
20
37
  end
21
38
  end
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dorian-write
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dorian Marié
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-08-18 00:00:00.000000000 Z
12
- dependencies: []
11
+ date: 2024-08-24 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: dorian-arguments
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
13
27
  description: writes to a file
14
28
  email: dorian@dorianmarie.com
15
29
  executables: