Languages can be split into two components, their *syntax* and their
*semantics*. It's your understanding of English syntax that tells you
the stream of words "Sleep furiously green ideas colorless" is not a
valid sentence. Semantics is deeper. Even if we rearrange the above
sentence to be "Colorless green ideas sleep furiously", which is
syntactically correct, it remains nonsensical on a semantic
level. With Treetop, you'll be dealing with languages that are much
simpler than English, but these basic concepts apply. Your programs
will need to address both the syntax and the semantics of the
languages they interpret.
Treetop equips you with powerful tools for each of these two aspects
of interpreter writing. You'll describe the syntax of your language
with a *parsing expression grammar*. From this description, Treetop
will generate a Ruby parser that transforms streams of characters
written into your language into *abstract syntax trees* representing
their structure. You'll then describe the semantics of your language
in Ruby by defining methods on the syntax trees the parser generates.
Some [hopefully] useful extensions to Rubys String class.
Stringex is made up of three libraries: ActsAsUrl [permalink solution
with better character translation], Unidecoder [Unicode to Ascii
transliteration], and StringExtensions [miscellaneous helper methods
for the String class].
* Use lang/ruby/gem.mk instead of misc/rubygems/rubygem.mk.
* Add PKG_DESTDIR_SUPPORT.
* Ajust new ruby package's framework.
Changes of version 0.7.1
* convert the encoding of an input string automatically (Ruby 1.9.1).
Changes of version 0.7.0
* suppot Ruby 1.9.1.
* remove some experimental libraries.
* remove all example programs.
* Use lang/ruby/gem.mk instead of misc/rubygems/rubygem.mk.
* Add LICENSE.
* Remove default value of GEM_BUILD.
= 2.3.12, released 2009-12-01
* make view helpers "HTML safe" for Rails 2.3.5 with rails_xss plugin
= 2.3.11, released 2009-06-02
* fix `enable_actionpack`
= 2.3.10, released 2009-05-21
* count_by_sql: don't use table alias with any adapters starting with "oracle"
* Add back "AS count_table" alias to `paginate_by_sql` counter SQL
= 2.3.9, released 2009-05-29
* remove "AS count_table" alias from `paginate_by_sql` counter SQL
* Rails 2.3.2 compat: monkeypatch Rails issue #2189 (count breaks has_many :through)
* fix generation of page URLs that contain the "@" character
* check for method existance in a ruby 1.8- and 1.9-compatible way
* load will_paginate view helpers even if ActiveRecord is not loaded
== 2.3.8, released 2009-03-09
* Rails 2.3 compat: query parameter parsing with Rack
== 2.3.7, released 2009-02-09
* Removed all unnecessary &block variables since they cause serious memory damage and lots of subsequent gc runs.
== 2.3.6, released 2008-10-26
* Rails 2.2 fix: stop using `extract_attribute_names_from_match` inernal AR method, it no longer exists
== 2.3.5, released 2008-10-07
* update the backported named_scope implementation for Rails versions older than 2.1
* break out of scope of paginated_each() yielded block when used on named scopes
* fix paginate(:from)
== 2.3.4, released 2008-09-16
* Removed gem dependency to Active Support (causes trouble with vendored rails).
* Rails 2.1: fix a failing test and a deprecation warning.
* Cope with scoped :select when counting.
== 2.3.3, released 2008-08-29
* Ensure that paginate_by_sql doesn't change the original SQL query.
* RDoc love (now live at http://gitrdoc.com/mislav/will_paginate/tree/master)
* Rename :prev_label to :previous_label for consistency. old name still functions but is deprecated
* ActiveRecord 2.1: Remove :include option from count_all query when it's possible.
== 2.3.2, released 2008-05-16
* Fixed LinkRenderer#stringified_merge by removing "return" from iterator block
* Ensure that 'href' values in pagination links are escaped URLs
== 2.3.1, released 2008-05-04
* Fixed page numbers not showing with custom routes and implicit first page
* Try to use Hanna for documentation (falls back to default RDoc template if not)
== 2.3.0, released 2008-04-29
* Changed LinkRenderer to receive collection, options and reference to view template NOT in
constructor, but with the #prepare method. This is a step towards supporting passing of
LinkRenderer (or subclass) instances that may be preconfigured in some way
* LinkRenderer now has #page_link and #page_span methods for easier customization of output in
subclasses
* Changed page_entries_info() method to adjust its output according to humanized class name of
collection items. Override this with :entry_name parameter (singular).
page_entries_info(@posts)
#-> "Displaying all 12 posts"
page_entries_info(@posts, :entry_name => 'item')
#-> "Displaying all 12 items"
== 2.2.3, released 2008-04-26
* will_paginate gem is no longer published on RubyForge, but on
gems.github.com:
gem sources -a http://gems.github.com/ (you only need to do this once)
gem install mislav-will_paginate
* extract reusable pagination testing stuff into WillPaginate::View
* rethink the page URL construction mechanizm to be more bulletproof when
combined with custom routing for page parameter
* test that anchor parameter can be used in pagination links
* Use lang/ruby/gem.mk instead of misc/rubygems/rubygem.mk.
* Add LICENSE.
* Remove default value of GEM_BUILD.
* Remove RUBY_HAS_ARCHLIB.
=== 4.2.3 / March 1, 2010
* Allow quotes in styles so you can do things like listing font-families. [Jason Garber]
* Fix uninitialized constant Gem::Specification::PLATFORM_CROSS_TARGETS in Rails [Jason Garber]
* Allow uppercase letters in class and ID attributes even though it's invalid [Jason Garber]
* Fix compatibility with newer Echoe, by using full-name for Platform [Flameeyes]
* Fixes for PPC/PPC64 [Flameeyes]
* Added a modified copy of 'Textile Reference' to a doc folder [codesponge]
* Add footnote return links [Jonathan Rudenberg]
* Add bug report link to the README
=== 4.2.2 / June 30, 2009
* Fix regression where percent wasn't accepted in style attribute. [Jason Garber]
=== 4.2.1 / June 16, 2009
* Fix regression where period wasn't accepted in style attribute. [Jason Garber]
* Use lang/ruby/gem.mk instead of misc/rubygems/rubygem.mk.
* Add LICENSE.
* Remove default value of GEM_BUILD.
2010-02-23:
* Ruby 1.9.x compatibility!
2010-02-16:
* excise a bunch of unnecessary @@ variables
* fix up some tests for cross-version compatibility
2010-02-14:
* generalized cleanup:
* fix old file headers
* modernize rakefile
* clean up rdoc
2010-01-08:
* move from RubyForge Subversion to GitHub
2007-02-22 (r81):
* make the plist parser accept strings contain XML or any object that responds to #read (File and StringIO being the intended targets here). Test and idea contributed by Chuck Remes.
2006-09-20 (r80):
* tweak a comment in generator.rb to make it clear that we're not using Base64.b64encode because it's broken.
* Use lang/ruby/gem.mk instead of misc/rubygems/rubygem.mk.
* Update HOMEPAGE.
* Add CONFLICTS since it will install the same name commands both
ruby18 and ruby19 based packages.
Changes are too many to write here, please refer CHANGELOG.rdoc.
* Use lang/ruby/gem.mk instead of misc/rubygems/rubygem.mk.
* Add LICENSE.
* Add CONFLICTS since it will install the same name commands both
ruby18 and ruby19 based packages.
Changes are unknown.
* Use lang/ruby/gem.mk instead of misc/rubygems/rubygem.mk.
* Update HOMEPAGE.
* Add LICENSE.
* Remove default value of GEM_BUILD.
= 0.7.1 (2010-08-19)
* Rails fixes for form_for called from erb templates
= 0.7.0
* Sinatra 1.0 support
* Full Tilt 1.0+ support, including "yield" support for layouts
= 0.6.10
* Rails fixes for form_for + content_for
= 0.6.9
* Bug fix for url_for. Previously, you'd need to capture { *_path } instead of
using the named route directly. Only affected rails 2.3.4+.
= 0.6.8 (2010-06-03)
* Add a regression for issue Github #17 (for judofyr / Camping)
= 0.6.7 (2010-06-02)
* Add rails support for 2.3.5 - 2.3.8
* Improved rails documentation
= 0.6.6 (2010-06-01)
* ruby 1.9.1 support. Closes Github Issues #10 & #11.
* Removed Tilt deprecation warnings
= 0.6.4
* Fixed a bug in which direct string values to Markaby::Builder wouldn't evaluate:
Markaby::Builder.new { 'foo' }.to_s #=> "foo"
* Fix critical bug with form_for, which was raising an error
* Introduce proxy object for form_for:
form_for :foo do |f|
f.text_field :bar
f.text_field :baz
end
* Remove support for rails 2.1.x series. We'll accept patches for them, if anyone cares enough.
== 0.6.2 / 0.6.3
* Add basic support for the Tilt templating engine (used with Sinatra):
require 'markaby'
require 'markaby/tilt'
== 0.6.1
* Support the following rails versions:
1.2.2, 1.2.3, 1.2.4, 1.2.5, 1.2.6, 2.1.0, 2.1.1, 2.1.2, 2.2.0,
2.2.1, 2.2.2, 2.2.3, 2.3.1, 2.3.2, 2.3.2.1, 2.3.3, 2.3.3.1, 2.3.4
* Only run rails tests when inside a rails plugins
* Run tests of the various versions of rails with garlic
* Start conversion to rspec. Use test/spec temporarily until conversion is done.
= 0.6
=== 23 August, 2009
* Canonical repo changed to http://github.com/joho/markaby
* Gem moved to Github (using jeweler)
* Rails init process changed to work with rails > 2.1
* Default attributes on the root (<html>) element can now be overidden
* Reworked CssProxy, allowing attributes on hr and br
* Added Kernel#mab convenience method (require 'markaby/kernel_method')
* WhenOnRails: Can now use :locals with render_markaby
* WhenOnRails: Template errors now report line number
* Use lang/ruby/gem.mk instead of misc/rubygems/rubygem.mk.
* Ajust new ruby package's framework.
!! Changes 0.0.6 from 0.0.5: 2010-08-28
* fix missing NEWS.ja for packaging
* Use lang/ruby/gem.mk instead of misc/rubygems/rubygem.mk.
* Add LICENSE.
* Remove default value of GEM_BUILD.
* Add CONFLICTS since it will install the same name commands both
ruby18 and ruby19 based packages.
Changes may be too many, please refer http://haml-lang.com/ in detail.
* Use lang/ruby/gem.mk instead of misc/rubygems/rubygem.mk.
* Add LICENSE.
== 1.5.3
* A bug fix from Timothy Elliott to return the new parser to its strict quote
tolerance.
== 1.5.2
* A bug fix to allow IO Exceptions to reach the calling code from Moses Hohman.
* Added support for <tt>:write_headers => false</tt> to Table.to_csv().
== 1.5.1
* A bug fix for deleting blank Table rows from Andy Hartford.
* Added gem build instructions.
== 1.5.0
* The main parser has been rewritten by Timothy Elliott to avoid big input
issues with Ruby 1.8's regex engine. This makes FasterCSV handle more inputs
gracefully.
* FasterCSV will now exit with a notice to upgrade if required in Ruby 1.9.
* Included a missing file so the tests will run in source packages.
== 1.4.0
* Added encoding support patch from Michael Reinsch.
* Improved inspect() messages for better IRb support.
* Fixed header writing bug reported by Dov Murik.
* Use custom separators in parsing header Strings as suggested by Shmulik Regev.
* Added a <tt>:write_headers</tt> option for outputting headers.
* Handle open() calls in binary mode whenever we can to workaround a Windows
issue where line-ending translation can cause an off-by-one error in seeking
back to a non-zero starting position after auto-discovery for
<tt>:row_sep</tt> as suggested by Robert Battle.
* Improved the parser to fail faster when fed some forms of invalid CSV that can
be detected without reading ahead.
* Added a <tt>:field_size_limit</tt> option to control FasterCSV's lookahead and
prevent the parser from biting off more data than it can chew.
* Use lang/ruby/gem.mk instead of misc/rubygems/rubygem.mk.
* Enable HOMEPAGE.
* Add LICENSE.
* Remove default value of GEM_BUILD.
* Add CONFLICTS since it will install the same name commands both
ruby18 and ruby19 based packages.
Changes may be too many please refer http://coderay.rubychan.de/ for
detail.
* Add LICENSE.
* Remove default value of GEM_BUILD.
* Add CONFLICTS since it will install the same name commands both
ruby18 and ruby19 based packages.
Switch to bluecloth 2.0.7.
Please refer http://www.deveiate.org/projects/BlueCloth for detail.