diff --git a/LICENSE b/LICENSE index e9f38ab..395e263 100644 --- a/LICENSE +++ b/LICENSE @@ -1,3 +1,5 @@ +The MIT License + Copyright (c) 2009 Chris Wanstrath (Ruby) Copyright (c) 2010 Jan Lehnardt (JavaScript) diff --git a/Rakefile b/Rakefile index 6b9f442..75686cd 100644 --- a/Rakefile +++ b/Rakefile @@ -1,11 +1,11 @@ require 'rake' -require 'spec/rake/spectask' +require 'rspec/core/rake_task' task :default => :spec -Spec::Rake::SpecTask.new(:spec) do |t| +RSpec::Core::RakeTask.new(:spec) do |t| #t.spec_opts = ['--options', "\"#{File.dirname(__FILE__)}/spec/spec.opts\""] - t.spec_files = FileList['test/*_spec.rb'] + t.pattern = 'test/*_spec.rb' end desc "Run all specs" diff --git a/TESTS_HELP.md b/TESTS_HELP.md new file mode 100644 index 0000000..82a03e5 --- /dev/null +++ b/TESTS_HELP.md @@ -0,0 +1,54 @@ +## How to run the tests + +To run the test, you need ruby and the following gems installed : rake, rspec (>=2), json + +### How to install ruby and the required gems from source + +Make sure you have the required tools to compile it + + # apt-get install build-essential libssl-dev libreadline5-dev zlib1g-dev + +Download ruby source and extract the source + + $ cd ~/ + $ wget ftp://ftp.ruby-lang.org/pub/ruby/stable-snapshot.tar.gz + $ tar xvzf stable-snapshot.tar.gz + +Install it + + $ ./configure && make + # make install + +download the last version of RubyGems from here +http://rubyforge.org/frs/?group_id=126 + +Extract the source + + $ tar xzvf rubygems-1.8.4.tgz + +Install it + + $ cd rubygems-1.8.4 + # ruby setup.rb + +If you want to update RubyGems + + # gem update --system + +Install the required gems + + # gem install rake rspec json + +That's it! + +### How to run the tests + + $ rake + +### How to create a test + +- Create a template file `somename.html` +- Create a javascript file with data and functions `somename.js` +- Create a file the expected result `somename.txt` + +Done! diff --git a/examples/keys_with_questionmarks.html b/examples/keys_with_questionmarks.html new file mode 100644 index 0000000..417f17f --- /dev/null +++ b/examples/keys_with_questionmarks.html @@ -0,0 +1,3 @@ +{{#person?}} + Hi {{name}}! +{{/person?}} diff --git a/examples/keys_with_questionmarks.js b/examples/keys_with_questionmarks.js new file mode 100644 index 0000000..55a220d --- /dev/null +++ b/examples/keys_with_questionmarks.js @@ -0,0 +1,5 @@ +var keys_with_questionmarks = { + "person?": { + name: "Jon" + } +} diff --git a/examples/keys_with_questionmarks.txt b/examples/keys_with_questionmarks.txt new file mode 100644 index 0000000..0f69b94 --- /dev/null +++ b/examples/keys_with_questionmarks.txt @@ -0,0 +1 @@ + Hi Jon! diff --git a/foo b/foo new file mode 100644 index 0000000..e69de29 diff --git a/mustache.js b/mustache.js index 1c0f029..264acc9 100644 --- a/mustache.js +++ b/mustache.js @@ -57,7 +57,7 @@ var Mustache = function() { Sends parsed lines */ send: function(line) { - if(line != "") { + if(line !== "") { this.buffer.push(line); } }, @@ -82,7 +82,7 @@ var Mustache = function() { var that = this; var regex = this.getCachedRegex("render_pragmas", function(otag, ctag) { - return new RegExp(otag + "%([\\w-]+) ?([\\w]+=[\\w]+)?" + ctag); + return new RegExp(otag + "%([\\w-]+) ?([\\w]+=[\\w]+)?" + ctag, "g"); }); return template.replace(regex, function(match, pragma, options) {