implicit.ly

Scala software, hot off the presses

grizzled-scala 1.0.9

  • Fixed grizzled.readline so that a newline in the prompt doesn't return None (for EOF).
  • Based on pull request #3, by Dan Sully, added the following features to grizzled.config:
  • Section name regular expression can now be specified to Configuration objects, thus allowing alternate section name forms.
  • Comment regular expression can now be specified to Configuration, allowing alternate comment syntaxes.
  • Configuration now supports at getAsList() method, which returns a value split into a string list. Delimiters may be specified. The value returned is of type Option[List[String]].

The Grizzled Scala Library contains a variety of miscellaneous utility classes and objects. Basically, whenever I find myself writing something that's general-purpose, I put it in here, so I can easily use it in multiple projects.

Filed under  //   Scala 2.8.0   Scala 2.8.1   Scala 2.9.0   Scala 2.9.0-1   Scala 2.9.1   grizzled-scala   org.clapper  

sbt-izpack 0.2

sbt-izpack setting and task keys are already inside in inner IzPack object, for namespace scoping. This revision adds a trick by Josh Suereth, to make usage easier. Basically, the keys are now defined like this:

object IzPack extends Plugin {
  object IzPack {
    val Config = config("izpack") extend(Runtime)

    val configFile = SettingKey[File]("config-file") in Config
    val installerJar = SettingKey[RichFile]("installer-jar") in Config
    ...
  }
}

Putting the in Config after each setting or task changes the build.sbt usage pattern from the clunky

IzPack.configFile in IzPack <<= ...

to the far more deliciously appealing

IzPack.configFile <<= ...

sbt-izpack is a plugin for the Scala-based SBT 0.10.x build tool. IzPack is an open source tool that allows you to create flexible Java-based graphical and command-line installers. This plugin allows you to use IzPack directly from your SBT 0.10.x project.

Filed under  //   Scala 2.8.1   Scala 2.9.0   Scala 2.9.0-1   org.clapper   sbt-izpack  

sbt-lwm 0.2

Change in Setting and Task Key Namespace

sbt-lwm setting and task keys are already inside in inner LWM object, for namespace scoping. This revision adds a trick by Josh Suereth, to make usage easier. Basically, the keys are now defined like this:

object LWM extends Plugin {
  object LWM {
    val Config = config("lwm") extend(Runtime)

    val sources = SettingKey[Seq[File]](
      "source-files", "List of sources to transform"
    ) in Config

    val targetDirectory = SettingKey[File](
      "target-directory", "Where to copy edited files"
    ) in Config

    ...
  }
}

Putting the in Config after each setting or task changes the build.sbt usage pattern from the clunky

LWM.sources in LWM <<= ...

to the far more serenely intuitive

LWM.sources <<= ...

Changes in Setting Names

LWM.sourceFiles is now LWM.sources, for consistency with other SBT plugins and settings.

sbt-lwm (Light Weight Markup) is an SBT 0.10.x plugin that converts lightweight markup documents to HTML. It currently supports Textile and Markdown.

For complete usage information, see the sbt-lwm web site.

Filed under  //   Scala 2.8.1   Scala 2.9.0-1   Scala 2.9.1   org.clapper   sbt-lwm  

sbt-editsource 0.5

Change in Setting and Task Key Namespace

sbt-editsource setting and task keys are already inside in inner EditSource object, for namespace scoping. This revision adds a trick by Josh Suereth, to make usage easier. Basically, the keys are now defined like this:

object EditSource extends Plugin {
  object EditSource {
    val Config = config("editsource") extend(Runtime)

    val sources = SettingKey[Seq[File]](
      "source-files", "List of sources to transform"
    ) in Config

    val targetDirectory = SettingKey[File](
      "target-directory", "Where to copy edited files"
    ) in Config

    ...
  }
}

Putting the in Config after each setting or task changes the build.sbt usage pattern from the clunky

EditSource.sources in EditSource <<= ...

to the far more outrageously winning

EditSource.sources <<= ...

Changes in Settings

EditSource.sourceFiles is now EditSource.sources, for consistency with other SBT plugins and settings.

Merged in a patch from David M. Lee, changing editTask to return a Seq[File], allowing one to add editTask as a resourceGenerator, running it as part of the package command. For instance:

resourceGenerators in Compile <+=
  (EditSource.edit in EditSource.Config).identity

sbt-editsource is an SBT 0.10.x plugin that provides on-the-fly, line-oriented editing of source files. In a sense, it's a poor man's sed(1), for SBT, supporting both regular expression-based substitution and variable substitution.

Filed under  //   Scala 2.8.1   Scala 2.9.0   Scala 2.9.0-1   Scala 2.9.1   org.clapper   sbt-editsource  

avsl 0.3.6

Merged patched from Erik Rozendaal: Use slf4j's MessageFormatter correctly to format log messages with arguments.

AVSL is a very simple logger, written in Scala. AVSL implements the Simple Logging Facade for Java (SLF4J) API, allowing applications to be written to the SLF4J API, for portability. It uses a simple, non-XML configuration file.

Filed under  //   Scala 2.8.0   Scala 2.8.1   Scala 2.9.0   Scala 2.9.0-1   Scala 2.9.1   avsl   org.clapper  

sbt-lwm 0.1.5

  • Upgraded version of MarkWrap, to pick up a change in how line breaks in Markdown source are handled.

sbt-lwm (Light Weight Markup) is an SBT 0.10.x plugin that converts lightweight markup documents to HTML. It currently supports Textile and Markdown.

For complete usage information, see the sbt-lwm web site.

Filed under  //   Scala 2.8.1   Scala 2.9.0-1   Scala 2.9.1   org.clapper   sbt-lwm  

markwrap 0.5.1

  • Now instantiates the underlying Pegdown parser with the HARDWRAPS option disabled, ensuring that hard linewraps in the Markdown source are not propagated automatically to the generated HTML. This is more consistent with common usage. To force a newline, use two or more spaces at the end of a line.
  • When calling MarkWrap.parserFor() on Markdown, the underlying code returned an object that allocated a new Pegdown processor each time parseToHTML() was called. That's silly, so the object now allocates a Pegdown processor when it's allocated and re-uses it. Note that this change makes the returned Markdown parser object not thread-safe, since Pegdown is not thread-safe. (Just allocate one parser per thread, if you're threading.)

The MarkWrap library (pronounced "mark wrap" or "more crap", depending on your preference) is a Scala library that provides a unified API for using various underlying lightweight markup APIs. Currently, it supports:

See the MarkWrap web site for more details.

Filed under  //   Scala 2.8.0   Scala 2.8.1   Scala 2.9.0   Scala 2.9.0-1   Scala 2.9.1   markwrap   org.clapper  

markwrap 0.5

  • MarkWrapParser.parseToHTMLDocument() no longer uses scala.xml to compose the document. First, there's no need; building the resulting string directly is more efficient. Second, HTML supports entities that XML does not, so using scala.xml can result in those entities being improperly converted.

The MarkWrap library (pronounced "mark wrap" or "more crap", depending on your preference) is a Scala library that provides a unified API for using various underlying lightweight markup APIs. Currently, it supports:

See the MarkWrap web site for more details.

Filed under  //   Scala 2.8.0   Scala 2.8.1   Scala 2.9.0   Scala 2.9.0-1   Scala 2.9.1   markwrap   org.clapper  

grizzled-slf4j 0.6.6

  • Pulled change from Lucas Torri that changes logging method signatures to take Any, rather than AnyRef, allowing more parameter flexibility. Also handles null better.

The Grizzled SLF4J package provides a very thin Scala-friendly layer on top of the SLF4J (Simple Logging Facade for Java) API.

Filed under  //   Scala 2.8.0   Scala 2.8.1   Scala 2.9.0   Scala 2.9.0-1   Scala 2.9.1   grizzled-slf4j   org.clapper  

avsl 0.3.5

Cross-built for Scala 2.9.1, as well as the usual suspects.

AVSL is a very simple logger, written in Scala. AVSL implements the Simple Logging Facade for Java (SLF4J) API, allowing applications to be written to the SLF4J API, for portability. It uses a simple, non-XML configuration file.

Filed under  //   Scala 2.8.0   Scala 2.8.1   Scala 2.9.0   Scala 2.9.0-1   Scala 2.9.1   avsl   org.clapper