fall 0.0.0.2 → 0.0.0.3

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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/exe/fall +51 -0
  3. data/lib/fall/version.rb +1 -1
  4. metadata +3 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e8248a14aeee0ee0ec5e2d9489fba06521f17bdc021679db52f2f669f6a36c6e
4
- data.tar.gz: 98a35c3e55c7bec0eba79c9706ad45ed7b79cde090d6af072bcdb30b31d40a40
3
+ metadata.gz: b82c155af7534aac00b7de737df75c664d1ea0d36040deb15b6d070814c0efd5
4
+ data.tar.gz: 047eced7160cd08676f866e75607387cc692fd817c1aeab4d0446e50fbd02432
5
5
  SHA512:
6
- metadata.gz: 12a773f8e4905f785488954bb14d5bf818a9e39136ac766d1a96c85b471742c163d11ce5eb432ae6374b10b110164d16960724a0c664bf2a853ee0ac15d7efe7
7
- data.tar.gz: 61bc56a65ac235b469e3ba405c53adb08ce261d17f35bc34ac84094eee1b0cd621969c4e6be8877c8c95f5f1e072c73c0e1ec46ad3cb05ad6f007e2698b2a149
6
+ metadata.gz: f03f3f0d8b4499e57efed80f8ce29ffefca323cbae6bb9780520bdaffd97d472005f6c7d11f71dd8f18f0bd9ff59d11c1e53a55e7f733c29718c8d21a066ce74
7
+ data.tar.gz: a5dcebb13c3460e1f8062290cf79c0e5a3e193a9d3cc0a6b9d158f00b3792b55950b2a5f78d48ad8c4faa64549d685acb2acf7190527480cc0e7fbd0f1af58b0
data/exe/fall ADDED
@@ -0,0 +1,51 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ root_path = File.expand_path('../', __dir__)
4
+ require File.join(root_path, 'lib', 'fall.rb')
5
+ require 'optparse'
6
+
7
+ options = {
8
+ input_delimiter: ' ',
9
+ output_delimiter: ' ',
10
+ requirements: [],
11
+ }
12
+
13
+ OptionParser.new do |opts|
14
+ opts.banner = 'Usage: fall [options]'
15
+
16
+ opts.on('-i', '--input-delimiter DELIMITER', 'Input delimiter') do |delimiter|
17
+ options[:input_delimiter] = delimiter
18
+ end
19
+
20
+ opts.on('-o', '--output-delimiter DELIMITER', 'Output delimiter') do |delimiter|
21
+ options[:output_delimiter] = delimiter
22
+ end
23
+
24
+ opts.on('-r', '--require LIB', 'Require a gem or file') do |lib|
25
+ options[:requirements] << lib
26
+ end
27
+ end.parse!
28
+
29
+ options => { input_delimiter:, output_delimiter:, requirements: }
30
+
31
+ requirements.each do |lib|
32
+ require lib
33
+ end
34
+
35
+ command = ARGV.shift
36
+ enum = ARGF.each_line
37
+ .map(&:chomp)
38
+ .map { |row| row.split(input_delimiter) }
39
+ .lazy
40
+
41
+ parser = Fall::Parser.new(command)
42
+ operations = parser.parse
43
+ pipeline = Fall::Pipeline.new(enum)
44
+
45
+ operations.each do |operation|
46
+ pipeline.add_operation(operation)
47
+ end
48
+
49
+ pipeline.to_enum
50
+ .map { _1.respond_to?(:join) ? _1.join(output_delimiter) : _1 }
51
+ .each { puts _1 }
data/lib/fall/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Fall
4
- VERSION = "0.0.0.2"
4
+ VERSION = "0.0.0.3"
5
5
  end
metadata CHANGED
@@ -1,11 +1,11 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fall
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.0.2
4
+ version: 0.0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - " David Gillis"
8
- bindir: bin
8
+ bindir: exe
9
9
  cert_chain: []
10
10
  date: 2025-04-07 00:00:00.000000000 Z
11
11
  dependencies:
@@ -72,6 +72,7 @@ executables: []
72
72
  extensions: []
73
73
  extra_rdoc_files: []
74
74
  files:
75
+ - exe/fall
75
76
  - lib/fall.rb
76
77
  - lib/fall/ext/enumerable.rb
77
78
  - lib/fall/ext/enumerator/lazy.rb