Skip to content

Commit

Permalink
Start prioritizing todos into v3 and v4 stuff
Browse files Browse the repository at this point in the history
I could sit here and fiddle with this shit forever,
start choosing what I actually need to release v3 so I can put it out of mind for a while.
  • Loading branch information
JoshCheek committed Jan 14, 2015
1 parent b06b916 commit a38fcf4
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 22 deletions.
36 changes: 31 additions & 5 deletions Readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -99,13 +99,39 @@ Known Issues
This code will be wrapped. But using the value is syntactically invalid in Ruby, because it constitutes a "void value expression" (aka a nightmare for anyone working with code).
I can't easily check it to seee if it's void since it's not in the parsed AST. But it's so edge taht I don't think it's worth worrying about.

Shit that will probably never get done (or if it does, won't be until after 2.0)
================================================================================
Version 2
=========

Feature complete, I'll fix bugs in it until version 3 is released, though

Version 3
=========

These need to be done before release:

* Add default to number of captures (1000), require user to explicitly set it to infinity
* Update changelog with all changes
* Push the event stream up to the top level so we can expose it via the interface.
* Get it working on JRuby and Rbx
* Order frog stickers
* Figure out how to handle markers

Version 4
=========

* How about if begin/rescue/end was able to record the result on the rescue section
* How about if you could configure which kinds of results ou were interested in (e.g. turn on/off recording of method definitions, and other results)
* What about recording the result of a line inside of a string interpolation, e.g. "a#{\n1\n}b" could record line 2 is 1 and line 3 is "a\n1\nb"
* If given a file with a Unicode character, but not set Unicode, inform the user
* How about if you could configure which kinds of results you were interested in
(e.g. turn on/off recording of method definitions, and other results)
* What about recording the result of a line inside of a string interpolation,
e.g. "a#{\n1\n}b" could record line 2 is 1 and line 3 is "a\n1\nb"
This would require smarter annotators.
* Allow debugger to take a filename (ie debug to a file insteaad of to stderr)
* `--cd dir` cd to that dir before executing the code
* `--cd -` cd to the dir of the file being executed before executing it
* `--only-show-lines` output only on specified lines (doesn't change stdout/stderr/exceptions)
* More alignment strategies e.g. `min=40` would align to 40, unless that was too short.
Could have fallback strategies, so e.g. `-s min=40,fallback=line`
* Package Ruby with the editor downloads so that they don't require you to know so fkn much to set it up.

Inspiration
===========
Expand Down
17 changes: 0 additions & 17 deletions lib/seeing_is_believing/binary/config.rb
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,7 @@ def self.to_regex(string)
stderr: to_regex('^#\s*!>\s*')
end


# passed to annotator.call
# TODO: move AnnotatorOptions to uhm, annotator or something
class AnnotatorOptions < StrictHash
attribute(:alignment_strategy) { AlignChunk }
attribute(:markers) { Markers.new }
Expand All @@ -46,10 +44,6 @@ class AnnotatorOptions < StrictHash
attribute(:max_result_length) { Float::INFINITY }
end

# TODO: just a thought here:
# the binary is goind to do one of four things:
# print_version, print_cleaned, print_help, and evaluate
# might make sense to implement a state machine on these rather than setting all these boolean flags and having to check them down in finalize
predicate(:print_version) { false }
predicate(:print_cleaned) { false }
predicate(:print_help) { false }
Expand All @@ -70,17 +64,6 @@ class AnnotatorOptions < StrictHash
attribute(:lib_options) { SeeingIsBelieving::Options.new } # passed to SeeingIsBelieving.new
attribute(:annotator_options) { AnnotatorOptions.new }

# TODO: allow debugger to take a filename

# TODO: --cd dir | --cd :file:
# when given a dir, cd to that dir before executing the code
# when not given a dir, cd to the dir of the file being executed before executing it

# TODO: --only-show-lines
# Output only on specified lines (doesn't change stdout/stderr/exceptions)

# TODO: --alignment-strategy n-or-line / n-or-chunk / n-or-file (help-file should prob just link to cuke examples)
# add default to number of captures (1000), require user to explicitly set it to infinity
def parse_args(args, debug_stream)
as = nil
filenames = []
Expand Down

0 comments on commit a38fcf4

Please sign in to comment.