dorian-arguments 0.4.1 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 668fe84b027d1d3a4fc66a36f3cd02eacf278903f684a4640abfc07555c029f1
4
- data.tar.gz: 3d27c3d748ff0a224546c03ee55b650aefb8a50d0a6bbda60f96b28c85610feb
3
+ metadata.gz: 31d8f3ef5198b3dc9ce418928e840ed5c82f7f3691964e4c1d34d96be9846951
4
+ data.tar.gz: 7494ebf6c746f4207e21cf79846d24e59c19d3824382e70215c64aeeac8a60b7
5
5
  SHA512:
6
- metadata.gz: 7933ec19ab7a89c2190179dfaeb2185ba83b0e8c6c3ce7965b8d8eb1ced166b7a63c5d0ebe5cac67af7b96df439fd9d60a2415240b44235758739e0495dddb34
7
- data.tar.gz: 5173d7ccbf5d346f05663b4910631fc8db2578e66e3a08bb03af19cd4336e1f54d14a781863202cd946e3bb6d75c5aad80a7efd1d0cd55cd8254f9246e7464f5
6
+ metadata.gz: d32f303df1fa9814866beb211aa8ee6bd90c37d34524d9820a716d768c2230b21799fc90bb472db9c2bf810a45363891475a72d58ce2855e21eeb2d07962b727
7
+ data.tar.gz: 0e12a036b21735bf712a35a9f96b328d65679f1d69185dac528de4a5eded68e1f7a3b4cbed1062c57ffd4ccf623b563a6b41a4f0bb06e7bf96798d2c78ad3112
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.4.1
1
+ 1.0.1
data/bin/arguments ADDED
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ require "dorian/arguments"
5
+
6
+ parsed = Dorian::Arguments.parse(version: { alias: :v }, help: { alias: :h })
7
+
8
+ if parsed.options.version
9
+ abort File.read(File.expand_path("../../VERSION", __FILE__))
10
+ else
11
+ abort parsed.help
12
+ end
@@ -22,13 +22,7 @@ class Dorian
22
22
 
23
23
  TYPES = [BOOLEAN, STRING, NUMBER, INTEGER, DECIMAL]
24
24
 
25
- DEFAULTS = {
26
- BOOLEAN => "false",
27
- STRING => "",
28
- NUMBER => "0",
29
- INTEGER => "0",
30
- DECIMAL => "0"
31
- }
25
+ DEFAULT = nil
32
26
 
33
27
  MATCHES = {
34
28
  BOOLEAN => /^(true|false)$/i,
@@ -99,7 +93,9 @@ class Dorian
99
93
  end
100
94
 
101
95
  def cast(type, value)
102
- if type == BOOLEAN
96
+ if value.nil?
97
+ nil
98
+ elsif type == BOOLEAN
103
99
  BOOLEANS.fetch(value.downcase)
104
100
  elsif type == INTEGER
105
101
  value.to_i
@@ -135,7 +131,7 @@ class Dorian
135
131
  def normalize(value)
136
132
  if value.is_a?(Hash)
137
133
  type = value[:type]&.to_s || DEFAULT_TYPE
138
- default = value[:default]&.to_s || DEFAULTS.fetch(type)
134
+ default = value[:default]&.to_s || DEFAULT
139
135
  aliases =
140
136
  Array.wrap(
141
137
  value[:alias]&.to_s || value[:aliases]&.map(&:to_s) ||
@@ -143,7 +139,7 @@ class Dorian
143
139
  )
144
140
  else
145
141
  type = value.to_s
146
- default = DEFAULTS.fetch(type)
142
+ default = DEFAULT
147
143
  aliases = DEFAULT_ALIASES
148
144
  end
149
145
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dorian-arguments
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 1.0.1
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-23 00:00:00.000000000 Z
11
+ date: 2024-08-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -54,11 +54,13 @@ dependencies:
54
54
  version: '0'
55
55
  description: parses arguments
56
56
  email: dorian@dorianmarie.com
57
- executables: []
57
+ executables:
58
+ - arguments
58
59
  extensions: []
59
60
  extra_rdoc_files: []
60
61
  files:
61
62
  - VERSION
63
+ - bin/arguments
62
64
  - lib/dorian-arguments.rb
63
65
  - lib/dorian/arguments.rb
64
66
  homepage: https://github.com/dorianmariecom/dorian-arguments