Giter Club home page Giter Club logo

Comments (7)

leejarvis avatar leejarvis commented on June 2, 2024 1

Actually, I would expect your example to work the same way as without the =, so I do think that's a bug. It works for strings, for example:

opts = Slop.parse do |o|
  o.string "-s", "--str"
  o.array "-a", "--arr", default: ["default"]
end

p opts.to_h
ruby example.rb --arr "" --str="foo"
{:str=>"foo", :arr=>[]}

But with the = it raises an error:

ruby example.rb --arr=""
Traceback (most recent call last):
	7: from example.rb:6:in `<main>'
	6: from /Users/lee/code/slop/lib/slop.rb:23:in `parse'
	5: from /Users/lee/code/slop/lib/slop/options.rb:72:in `parse'
	4: from /Users/lee/code/slop/lib/slop/parser.rb:49:in `parse'
	3: from /Users/lee/code/slop/lib/slop/parser.rb:49:in `each_with_index'
	2: from /Users/lee/code/slop/lib/slop/parser.rb:49:in `each'
	1: from /Users/lee/code/slop/lib/slop/parser.rb:59:in `block in parse'
/Users/lee/code/slop/lib/slop/parser.rb:131:in `try_process': unknown option `--arr=' (Slop::UnknownOption)

This will need to be looked into.

from slop.

leejarvis avatar leejarvis commented on June 2, 2024 1

Actually, it doesn't work for blank strings either:

ruby example.rb --str=""  
Traceback (most recent call last):
	7: from example.rb:6:in `<main>'
	6: from /Users/lee/code/slop/lib/slop.rb:23:in `parse'
	5: from /Users/lee/code/slop/lib/slop/options.rb:72:in `parse'
	4: from /Users/lee/code/slop/lib/slop/parser.rb:49:in `parse'
	3: from /Users/lee/code/slop/lib/slop/parser.rb:49:in `each_with_index'
	2: from /Users/lee/code/slop/lib/slop/parser.rb:49:in `each'
	1: from /Users/lee/code/slop/lib/slop/parser.rb:60:in `block in parse'
/Users/lee/code/slop/lib/slop/parser.rb:132:in `try_process': unknown option `--str=' (Slop::UnknownOption)

So there's clearly a problem when parsing an array of options that includes an argument with an empty string when using the opt=arg variant.

from slop.

jrimmer-housecallpro avatar jrimmer-housecallpro commented on June 2, 2024 1

Works like a charm. Thanks, @leejarvis !

from slop.

leejarvis avatar leejarvis commented on June 2, 2024

Using this code, I can pass in --foo "" and the array will be empty. What is it you're expecting in this scenario? Or are you trying something else?

from slop.

jrimmer-housecallpro avatar jrimmer-housecallpro commented on June 2, 2024

I'm an idiot. I was trying to do --foo="" and it was arguing with me. That works. Thanks!

from slop.

jrimmer-housecallpro avatar jrimmer-housecallpro commented on June 2, 2024

Yay! I'm not a total buffoon!

from slop.

leejarvis avatar leejarvis commented on June 2, 2024

@jrimmer-housecallpro Could you check your code against #268 and let me know how it goes?

from slop.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.