Skip to content
Browse files

Initial commit (v2.0.0)

  • Loading branch information...
0 parents commit 11e65747e6630837074973559bbeb89eb7b7ad0a @blambeau committed Jan 12, 2012
Showing with 730 additions and 0 deletions.
  1. +6 −0 .gitignore
  2. +5 −0 CHANGELOG.md
  3. +10 −0 Gemfile
  4. +27 −0 Gemfile.lock
  5. +22 −0 LICENCE.md
  6. +15 −0 Manifest.txt
  7. +10 −0 README.md
  8. +23 −0 Rakefile
  9. +8 −0 lib/wlang.rb
  10. +1 −0 lib/wlang/loader.rb
  11. +14 −0 lib/wlang/version.rb
  12. +2 −0 spec/spec_helper.rb
  13. +8 −0 spec/test_wlang.rb
  14. +75 −0 tasks/debug_mail.rake
  15. +13 −0 tasks/debug_mail.txt
  16. +68 −0 tasks/gem.rake
  17. +71 −0 tasks/spec_test.rake
  18. +76 −0 tasks/unit_test.rake
  19. +51 −0 tasks/yard.rake
  20. +190 −0 wlang.gemspec
  21. +35 −0 wlang.noespec
6 .gitignore
@@ -0,0 +1,6 @@
+coverage/*
+*.DS_Store
+pkg
+doc/api
+.yardoc
+.bundle
5 CHANGELOG.md
@@ -0,0 +1,5 @@
+# 2.0.0 / FIX ME
+
+* Enhancements
+
+ * Birthday!
10 Gemfile
@@ -0,0 +1,10 @@
+source 'http://rubygems.org'
+
+group :development do
+ gem "rake", "~> 0.9.2"
+ gem "bundler", "~> 1.0"
+ gem "rspec", "~> 2.8.0"
+ gem "yard", "~> 0.7.2"
+ gem "bluecloth", "~> 2.2.0"
+ gem "wlang", "~> 0.10.2"
+end
27 Gemfile.lock
@@ -0,0 +1,27 @@
+GEM
+ remote: http://rubygems.org/
+ specs:
+ bluecloth (2.2.0)
+ diff-lcs (1.1.3)
+ rake (0.9.2.2)
+ rspec (2.8.0)
+ rspec-core (~> 2.8.0)
+ rspec-expectations (~> 2.8.0)
+ rspec-mocks (~> 2.8.0)
+ rspec-core (2.8.0)
+ rspec-expectations (2.8.0)
+ diff-lcs (~> 1.1.2)
+ rspec-mocks (2.8.0)
+ wlang (0.10.2)
+ yard (0.7.4)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ bluecloth (~> 2.2.0)
+ bundler (~> 1.0)
+ rake (~> 0.9.2)
+ rspec (~> 2.8.0)
+ wlang (~> 0.10.2)
+ yard (~> 0.7.2)
22 LICENCE.md
@@ -0,0 +1,22 @@
+# The MIT Licence
+
+ Copyright (c) 2012 - Bernard Lambeau, Louis Lambeau
+
+ Permission is hereby granted, free of charge, to any person obtaining
+ a copy of this software and associated documentation files (the
+ "Software"), to deal in the Software without restriction, including
+ without limitation the rights to use, copy, modify, merge, publish,
+ distribute, sublicense, and/or sell copies of the Software, and to
+ permit persons to whom the Software is furnished to do so, subject to
+ the following conditions:
+
+ The above copyright notice and this permission notice shall be
+ included in all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
15 Manifest.txt
@@ -0,0 +1,15 @@
+wlang.gemspec
+wlang.noespec
+.gemtest
+CHANGELOG.md
+Gemfile
+Gemfile.lock
+bin/**/*
+lib/**/*
+LICENCE.md
+Manifest.txt
+Rakefile
+README.md
+spec/**/*
+tasks/**/*
+test/**/*
10 README.md
@@ -0,0 +1,10 @@
+# WLang
+
+WLang is a powerful code generation and templating engine
+
+## Links
+
+http://github.com/blambeau/wlang
+http://rubygems.org/gems/wlang
+http://blambeau.github.com/wlang
+http://revision-zero.org/wlang
23 Rakefile
@@ -0,0 +1,23 @@
+begin
+ gem "bundler", "~> 1.0"
+ require "bundler/setup"
+rescue LoadError => ex
+ puts ex.message
+ abort "Bundler failed to load, (did you run 'gem install bundler' ?)"
+end
+
+# Dynamically load the gem spec
+$gemspec_file = File.expand_path('../wlang.gemspec', __FILE__)
+$gemspec = Kernel.eval(File.read($gemspec_file))
+
+# We run tests by default
+task :default => :test
+
+#
+# Install all tasks found in tasks folder
+#
+# See .rake files there for complete documentation.
+#
+Dir["tasks/*.rake"].each do |taskfile|
+ load taskfile
+end
8 lib/wlang.rb
@@ -0,0 +1,8 @@
+#
+# WLang is a powerful code generation and templating engine
+#
+module WLang
+
+end # module WLang
+require "wlang/version"
+require "wlang/loader"
1 lib/wlang/loader.rb
@@ -0,0 +1 @@
+
14 lib/wlang/version.rb
@@ -0,0 +1,14 @@
+module WLang
+ module Version
+
+ MAJOR = 2
+ MINOR = 0
+ TINY = 0
+
+ def self.to_s
+ [ MAJOR, MINOR, TINY ].join('.')
+ end
+
+ end
+ VERSION = Version.to_s
+end
2 spec/spec_helper.rb
@@ -0,0 +1,2 @@
+$LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
+require 'wlang'
8 spec/test_wlang.rb
@@ -0,0 +1,8 @@
+require File.expand_path('../spec_helper', __FILE__)
+describe WLang do
+
+ it "should have a version number" do
+ WLang.const_defined?(:VERSION).should be_true
+ end
+
+end
75 tasks/debug_mail.rake
@@ -0,0 +1,75 @@
+# Installs a rake task for debuging the announcement mail.
+#
+# This file installs the 'rake debug_mail' that flushes an announcement mail
+# for your library on the standard output. It is automatically generated
+# by Noe from your .noespec file, and should therefore be configured there,
+# under the variables/rake_tasks/debug_mail entry, as illustrated below:
+#
+# variables:
+# rake_tasks:
+# debug_mail:
+# rx_changelog_sections: /^#/
+# nb_changelog_sections: 1
+# ...
+#
+# If you have specific needs requiring manual intervention on this file,
+# don't forget to set safe-override to false in your noe specification:
+#
+# template-info:
+# manifest:
+# tasks/debug_mail.rake:
+# safe-override: false
+#
+# The mail template used can be found in debug_mail.txt. That file may be
+# changed to tune the mail you want to send. If you do so, don't forget to
+# add a manifest entry in your .noespec file to avoid overriding you
+# changes. The mail template uses wlang, with parentheses for block
+# delimiters.
+#
+# template-info:
+# manifest:
+# tasks/debug_mail.txt:
+# safe-override: false
+#
+desc "Debug the release announcement mail"
+task :debug_mail do
+ begin
+ require 'wlang'
+ rescue LoadError
+ abort "wlang is not available. Try 'gem install wlang'"
+ end
+ require 'yaml'
+
+ # Check that a .noespec file exists
+ noespec_file = File.expand_path('../../wlang.noespec', __FILE__)
+ unless File.exists?(noespec_file)
+ raise "Unable to find .noespec project file, sorry."
+ end
+
+ # Load it as well as variables and options
+ noespec = YAML::load(File.read(noespec_file))
+ vars = noespec['variables'] || {}
+
+ # Changes are taken from CHANGELOG
+ logs = Dir[File.expand_path("../../CHANGELOG.*", __FILE__)]
+ unless logs.size == 1
+ abort "Unable to find a changelog file"
+ end
+
+ # Load interesting changesets
+ changes, end_found = [], 0
+ File.readlines(logs.first).select{|line|
+ if line =~ /^# /
+ break if end_found >= 1
+ end_found += 1
+ end
+ changes << line
+ }
+ vars['changes'] = changes.join
+
+ # WLang template
+ template = File.expand_path('../debug_mail.txt', __FILE__)
+
+ # Let's go!
+ $stdout << WLang::file_instantiate(template, vars, "wlang/active-text")
+end
13 tasks/debug_mail.txt
@@ -0,0 +1,13 @@
+Subject: [ANN] !{lower} !{version} Released
+
+!{lower} version !{version} has been released!
+
+!{summary}
+
+*{links as l}{* <!{l}>}{!{"\n"}}
+
+!{description}
+
+Changes:
+
+!{changes}
68 tasks/gem.rake
@@ -0,0 +1,68 @@
+# Installs rake tasks for gemming and packaging
+#
+# This file installs the 'rake package', 'rake gem' tasks and associates
+# (clobber_package, repackage, ...). It is automatically generated by Noe
+# from your .noespec file, and should therefore be configured there, under
+# the variables/rake_tasks/gem entry, as illustrated below:
+#
+# variables:
+# rake_tasks:
+# gem:
+# package_dir: pkg
+# need_tar: false
+# need_tar_gz: false
+# need_tar_bz2: false
+# need_zip: false
+# ...
+#
+# If you have specific needs requiring manual intervention on this file,
+# don't forget to set safe-override to false in your noe specification:
+#
+# template-info:
+# manifest:
+# tasks/gem.rake:
+# safe-override: false
+#
+begin
+ require 'rubygems/package_task'
+ Gem::PackageTask.new($gemspec) do |t|
+
+ # Name of the package
+ t.name = $gemspec.name
+
+ # Version of the package
+ t.version = $gemspec.version
+
+ # Directory used to store the package files
+ t.package_dir = "pkg"
+
+ # True if a gzipped tar file (tgz) should be produced
+ t.need_tar = false
+
+ # True if a gzipped tar file (tar.gz) should be produced
+ t.need_tar_gz = false
+
+ # True if a bzip2'd tar file (tar.bz2) should be produced
+ t.need_tar_bz2 = false
+
+ # True if a zip file should be produced (default is false)
+ t.need_zip = false
+
+ # List of files to be included in the package.
+ t.package_files = $gemspec.files
+
+ # Tar command for gzipped or bzip2ed archives.
+ t.tar_command = "tar"
+
+ # Zip command for zipped archives.
+ t.zip_command = "zip"
+
+ end
+rescue LoadError
+ task :gem do
+ abort 'rubygems/package_task is not available. You should verify your rubygems installation'
+ end
+ task :package do
+ abort 'rubygems/package_task is not available. You should verify your rubygems installation'
+ end
+end
71 tasks/spec_test.rake
@@ -0,0 +1,71 @@
+# Installs a rake task for for running examples written using rspec.
+#
+# This file installs the 'rake spec_test' (aliased as 'rake spec') as well as
+# extends 'rake test' to run spec tests, if any. It is automatically generated
+# by Noe from your .noespec file, and should therefore be configured there,
+# under the variables/rake_tasks/spec_test entry, as illustrated below:
+#
+# variables:
+# rake_tasks:
+# spec_test:
+# pattern: spec/**/*_spec.rb
+# verbose: true
+# rspec_opts: [--color, --backtrace]
+# ...
+#
+# If you have specific needs requiring manual intervention on this file,
+# don't forget to set safe-override to false in your noe specification:
+#
+# template-info:
+# manifest:
+# tasks/spec_test.rake:
+# safe-override: false
+#
+# This file has been written to conform to RSpec v2.4.0. More information about
+# rspec and options of the rake task defined below can be found on
+# http://relishapp.com/rspec
+#
+begin
+ require "rspec/core/rake_task"
+ desc "Run RSpec code examples"
+ RSpec::Core::RakeTask.new(:spec_test) do |t|
+ # Glob pattern to match files.
+ t.pattern = "spec/**/test_*.rb"
+
+ # Whether or not to fail Rake when an error occurs (typically when
+ # examples fail).
+ t.fail_on_error = true
+
+ # A message to print to stderr when there are failures.
+ t.failure_message = nil
+
+ # Use verbose output. If this is set to true, the task will print the
+ # executed spec command to stdout.
+ t.verbose = true
+
+ # Use rcov for code coverage?
+ t.rcov = false
+
+ # Path to rcov.
+ t.rcov_path = "rcov"
+
+ # Command line options to pass to rcov. See 'rcov --help' about this
+ t.rcov_opts = []
+
+ # Command line options to pass to ruby. See 'ruby --help' about this
+ t.ruby_opts = []
+
+ # Path to rspec
+ t.rspec_path = "rspec"
+
+ # Command line options to pass to rspec. See 'rspec --help' about this
+ t.rspec_opts = ["--color", "--backtrace"]
+ end
+rescue LoadError => ex
+ task :spec_test do
+ abort 'rspec is not available. In order to run spec, you must: gem install rspec'
+ end
+ensure
+ task :spec => [:spec_test]
+ task :test => [:spec_test]
+end
76 tasks/unit_test.rake
@@ -0,0 +1,76 @@
+# Installs a rake task for for running unit tests.
+#
+# This file installs the 'rake unit_test' and extends 'rake test' to run unit
+# tests, if any. It is automatically generated by Noe from your .noespec file,
+# and should therefore be configured there, under the variables/rake_tasks/unit_test
+# entry, as illustrated below:
+#
+# variables:
+# rake_tasks:
+# unit_test:
+# pattern: test/test*.rb
+# verbose: false
+# warning: false
+# ...
+#
+# If you have specific needs requiring manual intervention on this file,
+# don't forget to set safe-override to false in your noe specification:
+#
+# template-info:
+# manifest:
+# tasks/unit_test.rake:
+# safe-override: false
+#
+# More info about the TestTask and its options can be found on
+# http://rake.rubyforge.org/classes/Rake/TestTask.html
+#
+begin
+ require 'rake/testtask'
+ desc "Run unit tests"
+ Rake::TestTask.new(:unit_test) do |t|
+
+ # List of directories to added to $LOAD_PATH before running the
+ # tests. (default is 'lib')
+ t.libs = ["lib"]
+
+ # True if verbose test output desired. (default is false)
+ t.verbose = false
+
+ # Test options passed to the test suite. An explicit TESTOPTS=opts
+ # on the command line will override this. (default is NONE)
+ t.options = nil
+
+ # Request that the tests be run with the warning flag set.
+ # E.g. warning=true implies "ruby -w" used to run the tests.
+ t.warning = false
+
+ # Glob pattern to match test files. (default is 'test/test*.rb')
+ t.pattern = "test/test_*.rb"
+
+ # Style of test loader to use. Options are:
+ #
+ # * :rake -- Rake provided test loading script (default).
+ # * :testrb -- Ruby provided test loading script.
+ # * :direct -- Load tests using command line loader.
+ #
+ t.loader = :rake
+
+ # Array of commandline options to pass to ruby when running test
+ # loader.
+ t.ruby_opts = []
+
+ # Explicitly define the list of test files to be included in a
+ # test. +list+ is expected to be an array of file names (a
+ # FileList is acceptable). If both +pattern+ and +test_files+ are
+ # used, then the list of test files is the union of the two.
+ t.test_files = nil
+
+ end
+rescue LoadError => ex
+ task :unit_test do
+ abort "rake/testtask does not seem available...\n #{ex.message}"
+ end
+ensure
+ desc "Run all tests"
+ task :test => [:unit_test]
+end
51 tasks/yard.rake
@@ -0,0 +1,51 @@
+# Installs a rake task to generate API documentation using yard.
+#
+# This file installs the 'rake yard' task. It is automatically generated by Noe from
+# your .noespec file, and should therefore be configured there, under the
+# variables/rake_tasks/yard entry, as illustrated below:
+#
+# variables:
+# rake_tasks:
+# yard:
+# files: lib/**/*.rb
+# options: []
+# ...
+#
+# If you have specific needs requiring manual intervention on this file,
+# don't forget to set safe-override to false in your noe specification:
+#
+# template-info:
+# manifest:
+# tasks/yard.rake:
+# safe-override: false
+#
+# This file has been written to conform to yard v0.6.4. More information about
+# yard and the rake task installed below can be found on http://yardoc.org/
+#
+begin
+ require "yard"
+ desc "Generate yard documentation"
+ YARD::Rake::YardocTask.new(:yard) do |t|
+ # Array of options passed to yardoc commandline. See 'yardoc --help' about this
+ t.options = ["--output-dir", "doc/api", "-", "README.md", "CHANGELOG.md", "LICENCE.md"]
+
+ # Array of ruby source files (and any extra documentation files
+ # separated by '-')
+ t.files = ["lib/**/*.rb"]
+
+ # A proc to call before running the task
+ # t.before = proc{ }
+
+ # A proc to call after running the task
+ # r.after = proc{ }
+
+ # An optional lambda to run against all objects being generated.
+ # Any object that the lambda returns false for will be excluded
+ # from documentation.
+ # t.verifier = lambda{|obj| true}
+ end
+rescue LoadError
+ task :yard do
+ abort 'yard is not available. In order to run yard, you must: gem install yard'
+ end
+end
190 wlang.gemspec
@@ -0,0 +1,190 @@
+# We require your library, mainly to have access to the VERSION number.
+# Feel free to set $version manually.
+$LOAD_PATH.unshift File.expand_path('../lib', __FILE__)
+require "wlang/version"
+$version = WLang::Version.to_s
+
+#
+# This is your Gem specification. Default values are provided so that your library
+# should be correctly packaged given what you have described in the .noespec file.
+#
+Gem::Specification.new do |s|
+
+ ################################################################### ABOUT YOUR GEM
+
+ # Gem name (required)
+ s.name = "wlang"
+
+ # Gem version (required)
+ s.version = $version
+
+ # A short summary of this gem
+ #
+ # This is displayed in `gem list -d`.
+ s.summary = "WLang is a powerful code generation and templating engine"
+
+ # A long description of this gem (required)
+ #
+ # The description should be more detailed than the summary. For example,
+ # you might wish to copy the entire README into the description.
+ s.description = "WLang is a general-purpose *code generation*/*templating engine*. It's main aim is to help you generating\nweb pages, sql queries, ruby code (that is, generating code in general) without having to worry too much \nabout html entities encoding, sql back quoting, string escaping and the like. WLang proposes a generic \nengine that you can extend to fit your needs. It also proposes standard instantiations of this engine \nfor common tasks such as creating SQL queries, instantiating web pages, and so on."
+
+ # The URL of this gem home page (optional)
+ s.homepage = "http://github.com/blambeau/wlang"
+
+ # Gem publication date (required but auto)
+ #
+ # Today is automatically used by default, uncomment only if
+ # you know what you do!
+ #
+ # s.date = Time.now.strftime('%Y-%m-%d')
+
+ # The license(s) for the library. Each license must be a short name, no
+ # more than 64 characters.
+ #
+ # s.licences = %w{}
+
+ # The rubyforge project this gem lives under (optional)
+ #
+ # s.rubyforge_project = nil
+
+ ################################################################### ABOUT THE AUTHORS
+
+ # The list of author names who wrote this gem.
+ #
+ # If you are providing multiple authors and multiple emails they should be
+ # in the same order.
+ #
+ s.authors = ["Bernard Lambeau", "Louis Lambeau"]
+
+ # Contact emails for this gem
+ #
+ # If you are providing multiple authors and multiple emails they should be
+ # in the same order.
+ #
+ # NOTE: Somewhat strangly this attribute is always singular!
+ # Don't replace by s.emails = ...
+ s.email = ["blambeau@gmail.com", "llambeau@gmail.com"]
+
+ ################################################################### PATHS, FILES, BINARIES
+
+ # Paths in the gem to add to $LOAD_PATH when this gem is
+ # activated (required).
+ #
+ # The default 'lib' is typically sufficient.
+ s.require_paths = ["lib"]
+
+ # Files included in this gem.
+ #
+ # By default, we take all files included in the Manifest.txt file on root
+ # of the project. Entries of the manifest are interpreted as Dir[...]
+ # patterns so that lazy people may use wilcards like lib/**/*
+ #
+ here = File.expand_path(File.dirname(__FILE__))
+ s.files = File.readlines(File.join(here, 'Manifest.txt')).
+ inject([]){|files, pattern| files + Dir[File.join(here, pattern.strip)]}.
+ collect{|x| x[(1+here.size)..-1]}
+
+ # Test files included in this gem.
+ #
+ s.test_files = Dir["test/**/*"] + Dir["spec/**/*"]
+
+ # The path in the gem for executable scripts (optional)
+ #
+ s.bindir = "bin"
+
+ # Executables included in the gem.
+ #
+ s.executables = (Dir["bin/*"]).collect{|f| File.basename(f)}
+
+ ################################################################### REQUIREMENTS & INSTALL
+ # Remember the gem version requirements operators and schemes:
+ # = Equals version
+ # != Not equal to version
+ # > Greater than version
+ # < Less than version
+ # >= Greater than or equal to
+ # <= Less than or equal to
+ # ~> Approximately greater than
+ #
+ # Don't forget to have a look at http://lmgtfy.com/?q=Ruby+Versioning+Policies
+ # for setting your gem version.
+ #
+ # For your requirements to other gems, remember that
+ # ">= 2.2.0" (optimistic: specify minimal version)
+ # ">= 2.2.0", "< 3.0" (pessimistic: not greater than the next major)
+ # "~> 2.2" (shortcut for ">= 2.2.0", "< 3.0")
+ # "~> 2.2.0" (shortcut for ">= 2.2.0", "< 2.3.0")
+ #
+
+ #
+ # One call to add_dependency('gem_name', 'gem version requirement') for each
+ # runtime dependency. These gems will be installed with your gem.
+ # One call to add_development_dependency('gem_name', 'gem version requirement')
+ # for each development dependency. These gems are required for developers
+ #
+ s.add_development_dependency("rake", "~> 0.9.2")
+ s.add_development_dependency("bundler", "~> 1.0")
+ s.add_development_dependency("rspec", "~> 2.8.0")
+ s.add_development_dependency("yard", "~> 0.7.2")
+ s.add_development_dependency("bluecloth", "~> 2.2.0")
+ s.add_development_dependency("wlang", "~> 0.10.2")
+
+
+ # The version of ruby required by this gem
+ #
+ # Uncomment and set this if your gem requires specific ruby versions.
+ #
+ # s.required_ruby_version = ">= 0"
+
+ # The RubyGems version required by this gem
+ #
+ # s.required_rubygems_version = ">= 0"
+
+ # The platform this gem runs on. See Gem::Platform for details.
+ #
+ # s.platform = nil
+
+ # Extensions to build when installing the gem.
+ #
+ # Valid types of extensions are extconf.rb files, configure scripts
+ # and rakefiles or mkrf_conf files.
+ #
+ s.extensions = []
+
+ # External (to RubyGems) requirements that must be met for this gem to work.
+ # It’s simply information for the user.
+ #
+ s.requirements = nil
+
+ # A message that gets displayed after the gem is installed
+ #
+ # Uncomment and set this if you want to say something to the user
+ # after gem installation
+ #
+ s.post_install_message = nil
+
+ ################################################################### SECURITY
+
+ # The key used to sign this gem. See Gem::Security for details.
+ #
+ # s.signing_key = nil
+
+ # The certificate chain used to sign this gem. See Gem::Security for
+ # details.
+ #
+ # s.cert_chain = []
+
+ ################################################################### RDOC
+
+ # An ARGV style array of options to RDoc
+ #
+ # See 'rdoc --help' about this
+ #
+ s.rdoc_options = []
+
+ # Extra files to add to RDoc such as README
+ #
+ s.extra_rdoc_files = Dir["README.md"] + Dir["CHANGELOG.md"] + Dir["LICENCE.md"]
+
+end
35 wlang.noespec
@@ -0,0 +1,35 @@
+template-info:
+ name: "ruby"
+ version: 1.7.0
+ links:
+ source: https://github.com/blambeau/noe
+variables:
+ lower:
+ wlang
+ upper:
+ WLang
+ version:
+ 2.0.0
+ summary: |-
+ WLang is a powerful code generation and templating engine
+ description: |-
+ WLang is a general-purpose *code generation*/*templating engine*. It's main aim is to help you generating
+ web pages, sql queries, ruby code (that is, generating code in general) without having to worry too much
+ about html entities encoding, sql back quoting, string escaping and the like. WLang proposes a generic
+ engine that you can extend to fit your needs. It also proposes standard instantiations of this engine
+ for common tasks such as creating SQL queries, instantiating web pages, and so on.
+ authors:
+ - {name: Bernard Lambeau, email: blambeau@gmail.com}
+ - {name: Louis Lambeau, email: llambeau@gmail.com}
+ links:
+ - http://github.com/blambeau/wlang
+ - http://rubygems.org/gems/wlang
+ - http://blambeau.github.com/wlang
+ - http://revision-zero.org/wlang
+ dependencies:
+ - {name: rake, version: "~> 0.9.2", groups: [development]}
+ - {name: bundler, version: "~> 1.0", groups: [development]}
+ - {name: rspec, version: "~> 2.8.0", groups: [development]}
+ - {name: yard, version: "~> 0.7.2", groups: [development]}
+ - {name: bluecloth, version: "~> 2.2.0", groups: [development]}
+ - {name: wlang, version: "~> 0.10.2", groups: [development]}

0 comments on commit 11e6574

Please sign in to comment.
Something went wrong with that request. Please try again.