« Return to Thread: Glob-mapper functions added like FileTree

Re: Glob-mapper functions added like FileTree

by Alex Boisvert-3 :: Rate this Message:

Reply to Author | View in Thread

Another idea would be to define a pimp conversion "globExpression".g analogous to the standard "regularExpression".r

for {
  file <- (pwd + "/**/*.log").g
  lines <- file.readLines
   if line startsWith "[ERROR]"
} yield line

The ** and * globs are easy to masquerade into the syntax but what about things like .{c, cpp, java} ?

for {
  file <- (pwd + "/**/*.{java,scala}").g
  lines <- file.readLines
   if line startsWith "[ERROR]"
} yield line

alex

On Sun, Jun 21, 2009 at 11:21 AM, Josh Suereth <joshua.suereth@...> wrote:
Wanted to get people's thoughts on glob-mapping of files using the File-Tree-Walker style interface.  (This is an idea I got from SBT)


Imagine the following code:

for {
   file <-   pwd / ** / "*.log"  //The spaces are necessary so we don't make a comment!
   lines <- file.readLines
   if line startsWith "[ERROR]"
} yield line

for pulling out all lines from all log files under the current working directory or any sub-directory.


Another example:

for {
   file <- pwd /  * ".log"
   lines <- file.readLines
   if line startsWith "[ERROR]"
} yield line


This would do something similar to the above but only for one directory.


I'm not exactly happy with the operators used, but I do like the idea.    Any thoughts?


- Josh

 « Return to Thread: Glob-mapper functions added like FileTree