amplafi / amplafi-flow-client

Standard Java Client side library to interact with an Amplafi-Flow-Server
4 stars 0 forks source link

Make interactive input values self-explanatory #12

Closed aectann closed 11 years ago

aectann commented 11 years ago

When I run 'run getReadOnlyKey' command within the tool I get the following input request:

Enter out:

Right now it doesn't make sense. Make it so a user would immediately understand what value he is expected to enter. This should be a requirement for any values which are supposed to be supplied to a script.

bfig commented 11 years ago

out is from System.out, I don't understand yet in which circumstances or why the binding is asked about this. To temporarily solve this, I added a function 'pln' for printing from the scripts. For the variables themselves, you will get asked the value of the variable name, ie, if you are referencing variable 'something' you will get asked for 'input value of something:'. If you use underscores, you can form phrases: 'a_value_for_email' will get converted to 'input a value for email:'. Make sure you're running the latest versions of everything, you shouldn't have System.out.println exposed anywhere in the script code.

aectann commented 11 years ago

I'm pretty sure I have the latest code, yet I still see this.

aectann commented 11 years ago

As for input value description, relying on a variable name doesn't look appealing. Can we have a special construct for this? Something like:

def email = in(email, 'Enter broadcast provider primary email.', 'default@amplafi.com')

So there should be a clear way to specify a description and optional default for users to stick to.

bfig commented 11 years ago

Ok, I'll add that as soon as I get the numbers running

bfig commented 11 years ago

I'm looking at this right now, I don't think it's a good solution to add this to the DSL after all, it would make everything more confusing. Right now the DSL is just a bunch of commands, it has no input logic and whatever output it makes can be easily refactored out of it through return values, adding this would make it fully coupled with the UI and will make it more difficult to automate tests that rely on this construct.

bfig commented 11 years ago

Closing this unless there are objections