liquify 0.1 → 0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +4 -20
- data/Gemfile +4 -0
- data/Gemfile.lock +96 -0
- data/README.textile +5 -0
- data/Rakefile +2 -49
- data/init.rb +1 -0
- data/lib/generators/liquify/install_generator.rb +12 -0
- data/lib/generators/liquify/templates/liquify.rb +11 -0
- data/lib/liquify/drop.rb +5 -0
- data/lib/liquify/methods.rb +48 -0
- data/lib/liquify/parameter.rb +35 -0
- data/lib/liquify/tag.rb +9 -15
- data/lib/liquify/version.rb +3 -0
- data/lib/liquify.rb +65 -84
- data/lib/rails/active_record_hook.rb +3 -0
- data/liquify.gemspec +23 -0
- data/spec/liquify/active_record_hook_spec.rb +9 -0
- data/spec/liquify/drop_spec.rb +24 -0
- data/spec/liquify/parameter_spec.rb +52 -0
- data/spec/liquify/tag_spec.rb +27 -9
- data/spec/liquify_spec.rb +35 -73
- data/spec/spec_helper.rb +8 -6
- data/spec/support/liquid/foo_drop.rb +9 -0
- data/spec/support/liquid/foo_filters.rb +9 -0
- data/spec/support/liquify/bar_drop.rb +14 -0
- data/spec/support/liquify/foo_tag.rb +9 -0
- data/spec/support/rails/foo.rb +1 -0
- data/spec/v0.1/liquify/active_record_hook_spec.rb +9 -0
- data/spec/v0.1/liquify/drop_spec.rb +24 -0
- data/spec/v0.1/liquify_spec.rb +55 -0
- metadata +55 -51
- data/.document +0 -5
- data/LICENSE +0 -20
- data/README.rdoc +0 -64
- data/spec/liquid/spec_drop.rb +0 -5
- data/spec/liquid/spec_filter.rb +0 -6
- data/spec/liquid/spec_tag.rb +0 -5
- data/spec/liquid/templates/sample.liquid +0 -1
data/.gitignore
CHANGED
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,96 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
liquify (0.2)
|
5
|
+
liquid (>= 2.2.2)
|
6
|
+
|
7
|
+
GEM
|
8
|
+
remote: http://rubygems.org/
|
9
|
+
specs:
|
10
|
+
abstract (1.0.0)
|
11
|
+
actionmailer (3.0.3)
|
12
|
+
actionpack (= 3.0.3)
|
13
|
+
mail (~> 2.2.9)
|
14
|
+
actionpack (3.0.3)
|
15
|
+
activemodel (= 3.0.3)
|
16
|
+
activesupport (= 3.0.3)
|
17
|
+
builder (~> 2.1.2)
|
18
|
+
erubis (~> 2.6.6)
|
19
|
+
i18n (~> 0.4)
|
20
|
+
rack (~> 1.2.1)
|
21
|
+
rack-mount (~> 0.6.13)
|
22
|
+
rack-test (~> 0.5.6)
|
23
|
+
tzinfo (~> 0.3.23)
|
24
|
+
activemodel (3.0.3)
|
25
|
+
activesupport (= 3.0.3)
|
26
|
+
builder (~> 2.1.2)
|
27
|
+
i18n (~> 0.4)
|
28
|
+
activerecord (3.0.3)
|
29
|
+
activemodel (= 3.0.3)
|
30
|
+
activesupport (= 3.0.3)
|
31
|
+
arel (~> 2.0.2)
|
32
|
+
tzinfo (~> 0.3.23)
|
33
|
+
activeresource (3.0.3)
|
34
|
+
activemodel (= 3.0.3)
|
35
|
+
activesupport (= 3.0.3)
|
36
|
+
activesupport (3.0.3)
|
37
|
+
arel (2.0.6)
|
38
|
+
builder (2.1.2)
|
39
|
+
diff-lcs (1.1.2)
|
40
|
+
erubis (2.6.6)
|
41
|
+
abstract (>= 1.0.0)
|
42
|
+
i18n (0.5.0)
|
43
|
+
liquid (2.2.2)
|
44
|
+
mail (2.2.13)
|
45
|
+
activesupport (>= 2.3.6)
|
46
|
+
i18n (>= 0.4.0)
|
47
|
+
mime-types (~> 1.16)
|
48
|
+
treetop (~> 1.4.8)
|
49
|
+
mime-types (1.16)
|
50
|
+
polyglot (0.3.1)
|
51
|
+
rack (1.2.1)
|
52
|
+
rack-mount (0.6.13)
|
53
|
+
rack (>= 1.0.0)
|
54
|
+
rack-test (0.5.6)
|
55
|
+
rack (>= 1.0)
|
56
|
+
rails (3.0.3)
|
57
|
+
actionmailer (= 3.0.3)
|
58
|
+
actionpack (= 3.0.3)
|
59
|
+
activerecord (= 3.0.3)
|
60
|
+
activeresource (= 3.0.3)
|
61
|
+
activesupport (= 3.0.3)
|
62
|
+
bundler (~> 1.0)
|
63
|
+
railties (= 3.0.3)
|
64
|
+
railties (3.0.3)
|
65
|
+
actionpack (= 3.0.3)
|
66
|
+
activesupport (= 3.0.3)
|
67
|
+
rake (>= 0.8.7)
|
68
|
+
thor (~> 0.14.4)
|
69
|
+
rake (0.8.7)
|
70
|
+
rspec (2.3.0)
|
71
|
+
rspec-core (~> 2.3.0)
|
72
|
+
rspec-expectations (~> 2.3.0)
|
73
|
+
rspec-mocks (~> 2.3.0)
|
74
|
+
rspec-core (2.3.1)
|
75
|
+
rspec-expectations (2.3.0)
|
76
|
+
diff-lcs (~> 1.1.2)
|
77
|
+
rspec-mocks (2.3.0)
|
78
|
+
rspec-rails (2.3.1)
|
79
|
+
actionpack (~> 3.0)
|
80
|
+
activesupport (~> 3.0)
|
81
|
+
railties (~> 3.0)
|
82
|
+
rspec (~> 2.3.0)
|
83
|
+
thor (0.14.6)
|
84
|
+
treetop (1.4.9)
|
85
|
+
polyglot (>= 0.3.1)
|
86
|
+
tzinfo (0.3.23)
|
87
|
+
|
88
|
+
PLATFORMS
|
89
|
+
ruby
|
90
|
+
|
91
|
+
DEPENDENCIES
|
92
|
+
liquid (>= 2.2.2)
|
93
|
+
liquify!
|
94
|
+
rails (~> 3.0.1)
|
95
|
+
rspec (~> 2.3.0)
|
96
|
+
rspec-rails (~> 2.3.0)
|
data/README.textile
ADDED
data/Rakefile
CHANGED
@@ -1,49 +1,2 @@
|
|
1
|
-
require '
|
2
|
-
|
3
|
-
|
4
|
-
begin
|
5
|
-
require 'jeweler'
|
6
|
-
Jeweler::Tasks.new do |gem|
|
7
|
-
gem.name = "liquify"
|
8
|
-
gem.version = "0.1"
|
9
|
-
gem.summary = %Q{Liquify is a wrapper to Liquid Markup to make it easier to use}
|
10
|
-
gem.description = gem.summary
|
11
|
-
gem.email = "dane.harrigan@gmail.com"
|
12
|
-
gem.homepage = "http://github.com/daneharrigan/liquify"
|
13
|
-
gem.authors = ["Dane Harrigan"]
|
14
|
-
gem.add_development_dependency "rspec", ">= 1.3.0"
|
15
|
-
gem.add_dependency "liquid", "2.1.2"
|
16
|
-
|
17
|
-
# gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
|
18
|
-
end
|
19
|
-
Jeweler::GemcutterTasks.new
|
20
|
-
rescue LoadError
|
21
|
-
puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
|
22
|
-
end
|
23
|
-
|
24
|
-
require 'spec/rake/spectask'
|
25
|
-
Spec::Rake::SpecTask.new(:spec) do |spec|
|
26
|
-
spec.libs << 'lib' << 'spec'
|
27
|
-
spec.spec_files = FileList['spec/**/*_spec.rb']
|
28
|
-
end
|
29
|
-
|
30
|
-
Spec::Rake::SpecTask.new(:rcov) do |spec|
|
31
|
-
spec.libs << 'lib' << 'spec'
|
32
|
-
spec.pattern = 'spec/**/*_spec.rb'
|
33
|
-
spec.rcov = true
|
34
|
-
spec.rcov_opts = ['--exclude', 'gem,spec']
|
35
|
-
end
|
36
|
-
|
37
|
-
task :spec => :check_dependencies
|
38
|
-
|
39
|
-
task :default => :spec
|
40
|
-
|
41
|
-
require 'rake/rdoctask'
|
42
|
-
Rake::RDocTask.new do |rdoc|
|
43
|
-
version = File.exist?('VERSION') ? File.read('VERSION') : ""
|
44
|
-
|
45
|
-
rdoc.rdoc_dir = 'rdoc'
|
46
|
-
rdoc.title = "liquify #{version}"
|
47
|
-
rdoc.rdoc_files.include('README*')
|
48
|
-
rdoc.rdoc_files.include('lib/**/*.rb')
|
49
|
-
end
|
1
|
+
require 'bundler'
|
2
|
+
Bundler::GemHelper.install_tasks
|
data/init.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require 'liquify'
|
@@ -0,0 +1,12 @@
|
|
1
|
+
module Liquify
|
2
|
+
module Generators
|
3
|
+
class InstallGenerator < Rails::Generators::Base
|
4
|
+
desc 'Copy Liquify installation files'
|
5
|
+
source_root File.expand_path('../templates', __FILE__)
|
6
|
+
|
7
|
+
def copy_initializers
|
8
|
+
copy_file 'liquify.rb', 'config/initializers/liquify.rb'
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
Liquify.setup do |config|
|
2
|
+
# A tag is a class that inherits from Liquify::Tag or Liquid::Tag
|
3
|
+
# config.register_tag :tag_name, TagClass
|
4
|
+
|
5
|
+
# A drop is a class that inherits from Liquify::Drop or Liquid::Drop
|
6
|
+
# config.register_drop :drop_name, DropClass
|
7
|
+
|
8
|
+
# A filter is a method within a module. Multiple filters can be registered
|
9
|
+
# at once within a single module.
|
10
|
+
# config.register_filters FiltersModule
|
11
|
+
end
|
data/lib/liquify/drop.rb
ADDED
@@ -0,0 +1,48 @@
|
|
1
|
+
module Liquify
|
2
|
+
module Methods
|
3
|
+
def self.included(base)
|
4
|
+
base.send(:include, Liquify::InstanceMethods)
|
5
|
+
base.send(:extend, Liquify::ClassMethods)
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
module ClassMethods
|
10
|
+
protected
|
11
|
+
def liquify_method(*args)
|
12
|
+
liquify_args = instance_variable_get :@liquify_args
|
13
|
+
liquify_args ||= {}
|
14
|
+
|
15
|
+
args.each do |arg|
|
16
|
+
key, value = arg, :self
|
17
|
+
|
18
|
+
if Hash === arg
|
19
|
+
arg.each { |k, v| liquify_args[k.to_s] = v }
|
20
|
+
else
|
21
|
+
liquify_args[key.to_s] = value
|
22
|
+
end
|
23
|
+
end
|
24
|
+
instance_variable_set :@liquify_args, liquify_args
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
module InstanceMethods
|
29
|
+
unless method_defined? :to_liquid
|
30
|
+
def to_liquid #:nodoc:
|
31
|
+
liquify_args = self.class.instance_variable_get(:@liquify_args) || {}
|
32
|
+
liquify_output = instance_variable_get(:@liquify_output) || {}
|
33
|
+
|
34
|
+
if liquify_output.empty?
|
35
|
+
liquify_args.each do |key, value|
|
36
|
+
if value.respond_to?(:call)
|
37
|
+
liquify_output[key] = value.arity.zero? ? value.call : value.call(self)
|
38
|
+
else
|
39
|
+
liquify_output[key] = self.send(key)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
liquify_output
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
module Liquify
|
2
|
+
class Parameter < Array
|
3
|
+
def initialize(markup, context={})
|
4
|
+
markup = markup.split(',')
|
5
|
+
args = []
|
6
|
+
options = {}
|
7
|
+
|
8
|
+
markup.each do |arg|
|
9
|
+
key, value = arg.split(':')
|
10
|
+
key = strip_quotes(key.strip)
|
11
|
+
|
12
|
+
if value
|
13
|
+
value = (value =~ /("|')/) ? strip_quotes(value.strip) : context[value.strip]
|
14
|
+
options[key] = value
|
15
|
+
else
|
16
|
+
args << key
|
17
|
+
end
|
18
|
+
end
|
19
|
+
args << options unless options.empty?
|
20
|
+
|
21
|
+
super(args)
|
22
|
+
end
|
23
|
+
|
24
|
+
unless self.instance_methods.include? :extract_options!
|
25
|
+
def extract_options!
|
26
|
+
last.is_a?(Hash) ? pop : {}
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
private
|
31
|
+
def strip_quotes(value)
|
32
|
+
value.strip.gsub(/^('|")|('|")$/,'')
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
data/lib/liquify/tag.rb
CHANGED
@@ -1,20 +1,14 @@
|
|
1
|
-
|
1
|
+
module Liquify
|
2
2
|
class Tag < Liquid::Tag
|
3
|
-
def initialize(tag_name, markup, tokens)
|
4
|
-
@_params = Liquify.parameters(markup)
|
5
|
-
end
|
6
|
-
|
7
3
|
def render(context)
|
8
|
-
|
9
|
-
end
|
10
|
-
|
11
|
-
private
|
12
|
-
def parameters
|
13
|
-
return @_params
|
14
|
-
end
|
4
|
+
return unless respond_to? :invoke
|
15
5
|
|
16
|
-
|
17
|
-
|
6
|
+
if method(:invoke).arity == 0
|
7
|
+
invoke
|
8
|
+
else
|
9
|
+
params = Liquify::Parameter.new(@markup, context)
|
10
|
+
invoke(params)
|
11
|
+
end
|
18
12
|
end
|
19
13
|
end
|
20
|
-
end
|
14
|
+
end
|
data/lib/liquify.rb
CHANGED
@@ -1,100 +1,81 @@
|
|
1
1
|
require 'liquid'
|
2
|
+
require 'liquify/methods'
|
3
|
+
require 'liquify/parameter'
|
4
|
+
require 'liquify/drop'
|
5
|
+
require 'liquify/tag'
|
2
6
|
|
3
|
-
|
7
|
+
if defined?(Rails) && Rails.version >= '3'
|
8
|
+
require File.expand_path(File.dirname(__FILE__) + '/rails/active_record_hook.rb')
|
9
|
+
end
|
10
|
+
|
11
|
+
module Liquify
|
12
|
+
@@tags = {}
|
4
13
|
@@filters = []
|
5
14
|
@@drops = {}
|
6
|
-
@@tags = {}
|
7
|
-
@@template_root = nil
|
8
15
|
|
9
16
|
class << self
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
17
|
+
# setup - This method allows you to register tags, drops and filters.
|
18
|
+
# to Liquify in one place.
|
19
|
+
#
|
20
|
+
# Liquify.setup do |config|
|
21
|
+
# ...
|
22
|
+
# end
|
23
|
+
def setup
|
24
|
+
yield self
|
14
25
|
end
|
15
26
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
Liquid::Template.parse(source).render(@@drops)
|
27
|
+
# register_tag - This method is used to make tags available to your
|
28
|
+
# Liquid templates. It accepts a symbol for the tag name and the tag class.
|
29
|
+
#
|
30
|
+
# Liquify.setup do |config|
|
31
|
+
# config.register_tag :tag_name, NameTag
|
32
|
+
# end
|
33
|
+
def register_tag(name, klass)
|
34
|
+
@@tags[name] = klass
|
26
35
|
end
|
27
36
|
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
37
|
+
# register_filters - This method is used to make filters available to
|
38
|
+
# your Liquid templates. It accepts a module of methods. Each method
|
39
|
+
# becomes a Liquid filter.
|
40
|
+
#
|
41
|
+
# Liquify.setup do |config|
|
42
|
+
# config.register_filters CustomFilters
|
43
|
+
# end
|
44
|
+
def register_filters(mod)
|
45
|
+
@@filters << mod
|
32
46
|
end
|
33
47
|
|
34
|
-
|
35
|
-
|
36
|
-
|
48
|
+
# register_drop - This method is used to make drops available to
|
49
|
+
# your Liquid templates. It accepts a symbol for the drop name and
|
50
|
+
# your drop class or a lambda if processing has to be done at time
|
51
|
+
# time of rendering the Liquid template.
|
52
|
+
#
|
53
|
+
# Liquify.setup do |config|
|
54
|
+
# config.register_drop :drop_name, NameDrop
|
55
|
+
# # with a lamda
|
56
|
+
# config.register_drop :special_name, lambda { Foo.first }
|
57
|
+
# end
|
58
|
+
def register_drop(name, klass)
|
59
|
+
@@drops[name] = klass
|
37
60
|
end
|
38
|
-
end
|
39
|
-
|
40
|
-
# +register_filter+ - This method accepts a module and is used to add
|
41
|
-
# Liquid filters.
|
42
|
-
# Liquify.setup do
|
43
|
-
# register_filter MyFilters
|
44
|
-
# end
|
45
|
-
#
|
46
|
-
# A filter is a method stored in a module. The +MyFilters+ would be
|
47
|
-
# setup like this:
|
48
|
-
# module MyFilters
|
49
|
-
# def bold_text(text)
|
50
|
-
# "<strong>#{text}</strong>"
|
51
|
-
# end
|
52
|
-
# end
|
53
|
-
#
|
54
|
-
# The +MyFilters+ methods will be available in any liquid source
|
55
|
-
# rendered with +Liquify.render+.
|
56
|
-
#
|
57
|
-
# Liquify.render("{{ 'my sample' | bold_text }}")
|
58
|
-
# # or read from a file
|
59
|
-
# Liquify.render(:template => 'path/to/file.liquid')
|
60
|
-
# # => <strong>my sample</strong>
|
61
|
-
def register_filter(mod)
|
62
|
-
@@filters << mod unless @@filters.include? mod
|
63
|
-
end
|
64
61
|
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
#
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
# or +<tt>Liquify::Tag</tt>+.
|
79
|
-
# setup like this:
|
80
|
-
# class IncludeTag < Liquify::Tag
|
81
|
-
# def invoke
|
82
|
-
# # your impressive ruby code here
|
83
|
-
# end
|
84
|
-
# end
|
85
|
-
#
|
86
|
-
# The +MyFilters+ methods will be available in any liquid source
|
87
|
-
# rendered with +Liquify.render+.
|
88
|
-
#
|
89
|
-
# Liquify.render("{{ 'my sample' | bold_text }}")
|
90
|
-
# # or read from a file
|
91
|
-
# Liquify.render(:template => 'path/to/file.liquid')
|
92
|
-
# # => <strong>my sample</strong>
|
93
|
-
def register_tag(name, klass)
|
94
|
-
@@tags[name.to_s] ||= klass
|
95
|
-
end
|
62
|
+
# invoke = This method handles to rendering of the Liquid template with
|
63
|
+
# all of the registered drops, tags and filters. It accepts the Liquid
|
64
|
+
# template as a string.
|
65
|
+
#
|
66
|
+
# template = '{{ drop_name.method }}'
|
67
|
+
# Liquify.invoke(template) # => Rendered Liquid template
|
68
|
+
def invoke(template)
|
69
|
+
args = {}
|
70
|
+
@@drops.each { |name, klass| args[name.to_s] = klass.respond_to?(:call) ? klass.call : klass.new }
|
71
|
+
@@filters.each { |filter| Liquid::Template.register_filter(filter) }
|
72
|
+
@@tags.each { |tag, klass| Liquid::Template.register_tag(tag, klass) }
|
73
|
+
Liquid::Template.parse(template).render(args)
|
74
|
+
end
|
96
75
|
|
97
|
-
|
98
|
-
|
76
|
+
def render(template)
|
77
|
+
warn 'DEPRECATED: render has been replaced with invoke'
|
78
|
+
invoke(template)
|
79
|
+
end
|
99
80
|
end
|
100
|
-
end
|
81
|
+
end
|
data/liquify.gemspec
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "liquify/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "liquify"
|
7
|
+
s.version = Liquify::VERSION
|
8
|
+
s.platform = Gem::Platform::RUBY
|
9
|
+
s.authors = ["Dane Harrigan"]
|
10
|
+
s.email = ["dane.harrigan@gmail.com"]
|
11
|
+
s.homepage = ""
|
12
|
+
s.summary = %q{A wrapper for Liquid Markup to make it easier to use}
|
13
|
+
s.description = s.summary
|
14
|
+
|
15
|
+
s.rubyforge_project = "liquify"
|
16
|
+
s.add_dependency 'liquid', '>= 2.2.2'
|
17
|
+
s.add_development_dependency 'rspec', '~> 2.3.0'
|
18
|
+
|
19
|
+
s.files = `git ls-files`.split("\n")
|
20
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
21
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
22
|
+
s.require_paths = ["lib"]
|
23
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Liquify::Methods do
|
4
|
+
describe '.liquify_method' do
|
5
|
+
before(:each) do
|
6
|
+
Liquify.setup do |config|
|
7
|
+
config.register_drop :bar, BarDrop
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'returns the value of a method on the drop instance' do
|
12
|
+
template = '{{ bar.first_name }} {{ bar.last_name }}'
|
13
|
+
Liquify.invoke(template).should == 'Foo Bar'
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'returns the output of a labmda with an argument passed' do
|
17
|
+
Liquify.invoke('{{ bar.full_name }}').should == 'Foo Bar'
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'returns the output of a labmda without an argument passed' do
|
21
|
+
Liquify.invoke('{{ bar.age }}').should == '25'
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Liquify::Parameter do
|
4
|
+
it 'parses a string into an array' do
|
5
|
+
parameters = Liquify::Parameter.new('"a", "b", "c"')
|
6
|
+
parameters.should == %W(a b c)
|
7
|
+
end
|
8
|
+
|
9
|
+
it 'parses a string into an array with a hash' do
|
10
|
+
parameters = Liquify::Parameter.new('"a", "b", foo: "bar", baz: "cux"')
|
11
|
+
parameters.should == ['a', 'b', {'foo' => 'bar', 'baz' => 'cux'}]
|
12
|
+
end
|
13
|
+
|
14
|
+
context 'when a hash is passed in referencing a context value' do
|
15
|
+
it 'assigns the context value to the hash entry' do
|
16
|
+
parameters = Liquify::Parameter.new('"a", foo: bar', { 'bar' => {:cux => 'qux'} })
|
17
|
+
parameters.should == ['a', {'foo' => {:cux => 'qux'} }]
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
describe '#extract_options!' do
|
22
|
+
context 'when a hash is available' do
|
23
|
+
before(:each) do
|
24
|
+
@parameters = Liquify::Parameter.new('"a", "b", foo: "bar", baz: "cux"')
|
25
|
+
@options = @parameters.extract_options!
|
26
|
+
end
|
27
|
+
|
28
|
+
it 'returns the hash' do
|
29
|
+
@options.should == {'foo' => 'bar', 'baz' => 'cux'}
|
30
|
+
end
|
31
|
+
|
32
|
+
it 'pulls the hash out of the parameters array' do
|
33
|
+
@parameters.should == %W(a b)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
context 'when there is no hash' do
|
38
|
+
before(:each) do
|
39
|
+
@parameters = Liquify::Parameter.new('"a", "b", "c"')
|
40
|
+
@options = @parameters.extract_options!
|
41
|
+
end
|
42
|
+
|
43
|
+
it 'returns an empty hash' do
|
44
|
+
@options.should == {}
|
45
|
+
end
|
46
|
+
|
47
|
+
it 'should leave the parameters array untouched' do
|
48
|
+
@parameters.should == %W(a b c)
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
data/spec/liquify/tag_spec.rb
CHANGED
@@ -1,13 +1,31 @@
|
|
1
|
-
require
|
1
|
+
require 'spec_helper'
|
2
2
|
|
3
|
-
describe
|
4
|
-
|
5
|
-
|
6
|
-
|
3
|
+
describe Liquify::Tag do
|
4
|
+
before(:each) do
|
5
|
+
Liquify.setup do |config|
|
6
|
+
config.register_tag :foo, FooTag
|
7
|
+
config.register_drop :bar, BarDrop
|
8
|
+
end
|
7
9
|
end
|
8
10
|
|
9
|
-
|
10
|
-
|
11
|
-
|
11
|
+
context 'when a single argument is passed in' do
|
12
|
+
it 'returns the argument' do
|
13
|
+
template = '{% foo "bar" %}'
|
14
|
+
Liquify.invoke(template).should == 'bar'
|
15
|
+
end
|
12
16
|
end
|
13
|
-
|
17
|
+
|
18
|
+
context 'when an argument and a hash is passed in' do
|
19
|
+
it 'returns the argument and the hash value' do
|
20
|
+
template = '{% foo "bar", bar: "baz" %}'
|
21
|
+
Liquify.invoke(template).should == 'bar baz'
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
context 'when an argument is not quoted' do
|
26
|
+
it 'returns the context value that matches the name' do
|
27
|
+
template = '{% foo "bar", user: bar %}'
|
28
|
+
Liquify.invoke(template).should == 'bar Foo'
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
data/spec/liquify_spec.rb
CHANGED
@@ -1,93 +1,55 @@
|
|
1
|
-
|
2
|
-
require "#{path}/spec_helper"
|
1
|
+
require 'spec_helper'
|
3
2
|
|
4
|
-
describe
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
# extra white space is intentional
|
11
|
-
output = Liquify.parameters("'param-1', 'param-2', 'param-3' ")
|
12
|
-
output.should == %W{param-1 param-2 param-3}
|
13
|
-
end
|
14
|
-
|
15
|
-
it "should return a single parameter" do
|
16
|
-
# extra white space is intentional
|
17
|
-
Liquify.parameter("'param-1' ").should == 'param-1'
|
18
|
-
end
|
3
|
+
describe Liquify do
|
4
|
+
describe '.register_tag' do
|
5
|
+
it 'adds a tag to liquify' do
|
6
|
+
Liquify.setup do |config|
|
7
|
+
config.register_tag :foo, FooTag
|
8
|
+
end
|
19
9
|
|
20
|
-
|
21
|
-
it "should render the source" do
|
22
|
-
Liquify.render("{{ 'sample text' }}").should =~ /^sample text$/
|
10
|
+
Liquify.class_variable_get(:@@tags).include?(:foo).should == true
|
23
11
|
end
|
12
|
+
end
|
24
13
|
|
25
|
-
|
26
|
-
|
27
|
-
|
14
|
+
describe '.register_filters' do
|
15
|
+
it 'adds a set of filters to liquify' do
|
16
|
+
Liquify.setup do |config|
|
17
|
+
config.register_filters FooFilters
|
18
|
+
end
|
28
19
|
|
29
|
-
|
30
|
-
Liquify.render(:template => "#{path}/does_not_exist.liquid").should be_empty
|
20
|
+
Liquify.class_variable_get(:@@filters).include?(FooFilters).should == true
|
31
21
|
end
|
22
|
+
end
|
32
23
|
|
33
|
-
|
34
|
-
|
35
|
-
|
24
|
+
describe '.register_drop' do
|
25
|
+
it 'adds a drop to liquify' do
|
26
|
+
Liquify.setup do |config|
|
27
|
+
config.register_drop :foo, FooDrop
|
36
28
|
end
|
37
29
|
|
38
|
-
Liquify.
|
30
|
+
Liquify.class_variable_get(:@@drops).include?(:foo).should == true
|
39
31
|
end
|
40
32
|
end
|
41
33
|
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
it "should render bold text" do
|
50
|
-
output = Liquify.render("{{ 'sample text' | bold_text }}")
|
51
|
-
output.should =~ /^\<strong\>sample text\<\/strong\>$/
|
52
|
-
end
|
53
|
-
end
|
34
|
+
describe '.invoke' do
|
35
|
+
context 'when a drop is registered as a class' do
|
36
|
+
before(:each) do
|
37
|
+
foo_drop = mock(FooDrop, :to_liquid => {'first_name' => 'Foo'})
|
38
|
+
FooDrop.should_receive(:new).and_return(foo_drop)
|
39
|
+
@template = '{{ foo.first_name }}'
|
54
40
|
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
register_drop :item, SpecDrop
|
41
|
+
Liquify.setup do |config|
|
42
|
+
config.register_drop :foo, FooDrop
|
43
|
+
end
|
59
44
|
end
|
60
|
-
end
|
61
|
-
|
62
|
-
it "should render the name" do
|
63
|
-
Liquify.render("{{ item.name }}").should =~ /Spec Drop/
|
64
|
-
end
|
65
|
-
end
|
66
45
|
|
67
|
-
|
68
|
-
|
69
|
-
Liquify.setup do
|
70
|
-
register_tag :tag_name, SpecTag
|
46
|
+
it 'makes a new instance of the FooDrop' do
|
47
|
+
Liquify.invoke(@template)
|
71
48
|
end
|
72
|
-
end
|
73
49
|
|
74
|
-
|
75
|
-
|
50
|
+
it 'renders "Foo" as the first name in the template' do
|
51
|
+
Liquify.invoke(@template).should == 'Foo'
|
52
|
+
end
|
76
53
|
end
|
77
54
|
end
|
78
55
|
end
|
79
|
-
|
80
|
-
# # initializer.rb
|
81
|
-
# Liquify.setup do
|
82
|
-
# register_filter SomeFilters
|
83
|
-
# register_tag :include, MyInclude
|
84
|
-
# register_drop :site, SiteDrop
|
85
|
-
# template_root ''
|
86
|
-
# end
|
87
|
-
|
88
|
-
# liquify :file => 'my/path/to/file'
|
89
|
-
# liquify '{{ my_source_code }}'
|
90
|
-
# liquify :template => 'dane/file'
|
91
|
-
|
92
|
-
# Liquify.render(:file => "my/path/to/file")
|
93
|
-
# Liquify.render("{{ this is my whatever }}")
|
data/spec/spec_helper.rb
CHANGED
@@ -1,8 +1,10 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
#$:.unshift(File.dirname(__FILE__))
|
2
|
+
#$:.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
3
|
+
|
4
|
+
require 'rails'
|
5
|
+
require 'active_record'
|
6
|
+
require 'liquid'
|
7
|
+
require 'liquid/tag'
|
3
8
|
require 'liquify'
|
4
|
-
require 'liquify/tag'
|
5
9
|
|
6
|
-
require
|
7
|
-
require 'liquid/spec_tag'
|
8
|
-
require 'liquid/spec_drop'
|
10
|
+
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
|
@@ -0,0 +1,14 @@
|
|
1
|
+
class BarDrop
|
2
|
+
include Liquify::Methods
|
3
|
+
liquify_method :first_name, :last_name,
|
4
|
+
:full_name => lambda { |drop| "#{drop.first_name} #{drop.last_name}" },
|
5
|
+
:age => lambda { '25' }
|
6
|
+
|
7
|
+
def first_name
|
8
|
+
'Foo'
|
9
|
+
end
|
10
|
+
|
11
|
+
def last_name
|
12
|
+
'Bar'
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
class Foo < ActiveRecord::Base; end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Liquify::Methods do
|
4
|
+
describe '.liquify_method' do
|
5
|
+
before(:each) do
|
6
|
+
Liquify.setup do |config|
|
7
|
+
config.register_drop :bar, BarDrop
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'returns the value of a method on the drop instance' do
|
12
|
+
template = '{{ bar.first_name }} {{ bar.last_name }}'
|
13
|
+
Liquify.render(template).should == 'Foo Bar'
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'returns the output of a labmda with an argument passed' do
|
17
|
+
Liquify.render('{{ bar.full_name }}').should == 'Foo Bar'
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'returns the output of a labmda without an argument passed' do
|
21
|
+
Liquify.render('{{ bar.age }}').should == '25'
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Liquify do
|
4
|
+
describe '.register_tag' do
|
5
|
+
it 'adds a tag to liquify' do
|
6
|
+
Liquify.setup do |config|
|
7
|
+
config.register_tag :foo, FooTag
|
8
|
+
end
|
9
|
+
|
10
|
+
Liquify.class_variable_get(:@@tags).include?(:foo).should == true
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
describe '.register_filters' do
|
15
|
+
it 'adds a set of filters to liquify' do
|
16
|
+
Liquify.setup do |config|
|
17
|
+
config.register_filters FooFilters
|
18
|
+
end
|
19
|
+
|
20
|
+
Liquify.class_variable_get(:@@filters).include?(FooFilters).should == true
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
describe '.register_drop' do
|
25
|
+
it 'adds a drop to liquify' do
|
26
|
+
Liquify.setup do |config|
|
27
|
+
config.register_drop :foo, FooDrop
|
28
|
+
end
|
29
|
+
|
30
|
+
Liquify.class_variable_get(:@@drops).include?(:foo).should == true
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
describe '.render' do
|
35
|
+
context 'when a drop is registered as a class' do
|
36
|
+
before(:each) do
|
37
|
+
foo_drop = mock(FooDrop, :to_liquid => {'first_name' => 'Foo'})
|
38
|
+
FooDrop.should_receive(:new).and_return(foo_drop)
|
39
|
+
@template = '{{ foo.first_name }}'
|
40
|
+
|
41
|
+
Liquify.setup do |config|
|
42
|
+
config.register_drop :foo, FooDrop
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
it 'makes a new instance of the FooDrop' do
|
47
|
+
Liquify.render(@template)
|
48
|
+
end
|
49
|
+
|
50
|
+
it 'renders "Foo" as the first name in the template' do
|
51
|
+
Liquify.render(@template).should == 'Foo'
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
metadata
CHANGED
@@ -1,12 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: liquify
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 1
|
9
|
-
version: "0.1"
|
4
|
+
prerelease:
|
5
|
+
version: "0.2"
|
10
6
|
platform: ruby
|
11
7
|
authors:
|
12
8
|
- Dane Harrigan
|
@@ -14,72 +10,78 @@ autorequire:
|
|
14
10
|
bindir: bin
|
15
11
|
cert_chain: []
|
16
12
|
|
17
|
-
date:
|
13
|
+
date: 2011-03-06 00:00:00 -05:00
|
18
14
|
default_executable:
|
19
15
|
dependencies:
|
20
16
|
- !ruby/object:Gem::Dependency
|
21
|
-
name:
|
17
|
+
name: liquid
|
22
18
|
prerelease: false
|
23
19
|
requirement: &id001 !ruby/object:Gem::Requirement
|
24
20
|
none: false
|
25
21
|
requirements:
|
26
22
|
- - ">="
|
27
23
|
- !ruby/object:Gem::Version
|
28
|
-
|
29
|
-
|
30
|
-
- 1
|
31
|
-
- 3
|
32
|
-
- 0
|
33
|
-
version: 1.3.0
|
34
|
-
type: :development
|
24
|
+
version: 2.2.2
|
25
|
+
type: :runtime
|
35
26
|
version_requirements: *id001
|
36
27
|
- !ruby/object:Gem::Dependency
|
37
|
-
name:
|
28
|
+
name: rspec
|
38
29
|
prerelease: false
|
39
30
|
requirement: &id002 !ruby/object:Gem::Requirement
|
40
31
|
none: false
|
41
32
|
requirements:
|
42
|
-
- -
|
33
|
+
- - ~>
|
43
34
|
- !ruby/object:Gem::Version
|
44
|
-
|
45
|
-
|
46
|
-
- 2
|
47
|
-
- 1
|
48
|
-
- 2
|
49
|
-
version: 2.1.2
|
50
|
-
type: :runtime
|
35
|
+
version: 2.3.0
|
36
|
+
type: :development
|
51
37
|
version_requirements: *id002
|
52
|
-
description:
|
53
|
-
email:
|
38
|
+
description: A wrapper for Liquid Markup to make it easier to use
|
39
|
+
email:
|
40
|
+
- dane.harrigan@gmail.com
|
54
41
|
executables: []
|
55
42
|
|
56
43
|
extensions: []
|
57
44
|
|
58
|
-
extra_rdoc_files:
|
59
|
-
|
60
|
-
- README.rdoc
|
45
|
+
extra_rdoc_files: []
|
46
|
+
|
61
47
|
files:
|
62
|
-
- .document
|
63
48
|
- .gitignore
|
64
|
-
-
|
65
|
-
-
|
49
|
+
- Gemfile
|
50
|
+
- Gemfile.lock
|
51
|
+
- README.textile
|
66
52
|
- Rakefile
|
53
|
+
- init.rb
|
54
|
+
- lib/generators/liquify/install_generator.rb
|
55
|
+
- lib/generators/liquify/templates/liquify.rb
|
67
56
|
- lib/liquify.rb
|
57
|
+
- lib/liquify/drop.rb
|
58
|
+
- lib/liquify/methods.rb
|
59
|
+
- lib/liquify/parameter.rb
|
68
60
|
- lib/liquify/tag.rb
|
69
|
-
-
|
70
|
-
-
|
71
|
-
-
|
72
|
-
- spec/
|
61
|
+
- lib/liquify/version.rb
|
62
|
+
- lib/rails/active_record_hook.rb
|
63
|
+
- liquify.gemspec
|
64
|
+
- spec/liquify/active_record_hook_spec.rb
|
65
|
+
- spec/liquify/drop_spec.rb
|
66
|
+
- spec/liquify/parameter_spec.rb
|
73
67
|
- spec/liquify/tag_spec.rb
|
74
68
|
- spec/liquify_spec.rb
|
75
69
|
- spec/spec_helper.rb
|
70
|
+
- spec/support/liquid/foo_drop.rb
|
71
|
+
- spec/support/liquid/foo_filters.rb
|
72
|
+
- spec/support/liquify/bar_drop.rb
|
73
|
+
- spec/support/liquify/foo_tag.rb
|
74
|
+
- spec/support/rails/foo.rb
|
75
|
+
- spec/v0.1/liquify/active_record_hook_spec.rb
|
76
|
+
- spec/v0.1/liquify/drop_spec.rb
|
77
|
+
- spec/v0.1/liquify_spec.rb
|
76
78
|
has_rdoc: true
|
77
|
-
homepage:
|
79
|
+
homepage: ""
|
78
80
|
licenses: []
|
79
81
|
|
80
82
|
post_install_message:
|
81
|
-
rdoc_options:
|
82
|
-
|
83
|
+
rdoc_options: []
|
84
|
+
|
83
85
|
require_paths:
|
84
86
|
- lib
|
85
87
|
required_ruby_version: !ruby/object:Gem::Requirement
|
@@ -87,30 +89,32 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
87
89
|
requirements:
|
88
90
|
- - ">="
|
89
91
|
- !ruby/object:Gem::Version
|
90
|
-
hash: 3
|
91
|
-
segments:
|
92
|
-
- 0
|
93
92
|
version: "0"
|
94
93
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
95
94
|
none: false
|
96
95
|
requirements:
|
97
96
|
- - ">="
|
98
97
|
- !ruby/object:Gem::Version
|
99
|
-
hash: 3
|
100
|
-
segments:
|
101
|
-
- 0
|
102
98
|
version: "0"
|
103
99
|
requirements: []
|
104
100
|
|
105
|
-
rubyforge_project:
|
106
|
-
rubygems_version: 1.
|
101
|
+
rubyforge_project: liquify
|
102
|
+
rubygems_version: 1.5.2
|
107
103
|
signing_key:
|
108
104
|
specification_version: 3
|
109
|
-
summary:
|
105
|
+
summary: A wrapper for Liquid Markup to make it easier to use
|
110
106
|
test_files:
|
111
|
-
- spec/
|
112
|
-
- spec/
|
113
|
-
- spec/
|
107
|
+
- spec/liquify/active_record_hook_spec.rb
|
108
|
+
- spec/liquify/drop_spec.rb
|
109
|
+
- spec/liquify/parameter_spec.rb
|
114
110
|
- spec/liquify/tag_spec.rb
|
115
111
|
- spec/liquify_spec.rb
|
116
112
|
- spec/spec_helper.rb
|
113
|
+
- spec/support/liquid/foo_drop.rb
|
114
|
+
- spec/support/liquid/foo_filters.rb
|
115
|
+
- spec/support/liquify/bar_drop.rb
|
116
|
+
- spec/support/liquify/foo_tag.rb
|
117
|
+
- spec/support/rails/foo.rb
|
118
|
+
- spec/v0.1/liquify/active_record_hook_spec.rb
|
119
|
+
- spec/v0.1/liquify/drop_spec.rb
|
120
|
+
- spec/v0.1/liquify_spec.rb
|
data/.document
DELETED
data/LICENSE
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
Copyright (c) 2009 Dane Harrigan
|
2
|
-
|
3
|
-
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
-
a copy of this software and associated documentation files (the
|
5
|
-
"Software"), to deal in the Software without restriction, including
|
6
|
-
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
-
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
-
permit persons to whom the Software is furnished to do so, subject to
|
9
|
-
the following conditions:
|
10
|
-
|
11
|
-
The above copyright notice and this permission notice shall be
|
12
|
-
included in all copies or substantial portions of the Software.
|
13
|
-
|
14
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
-
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
-
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
-
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
-
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
-
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
-
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.rdoc
DELETED
@@ -1,64 +0,0 @@
|
|
1
|
-
= liquify
|
2
|
-
|
3
|
-
Liquify is a wrapper to Tobi's <a href="http://rubygems/liquid">Liquid Markup</a> gem.
|
4
|
-
|
5
|
-
== Examples
|
6
|
-
|
7
|
-
## configuring Liquify
|
8
|
-
Liquify.setup do
|
9
|
-
register_filter MyFilters
|
10
|
-
register_tag :include, IncludeTag
|
11
|
-
register_drop :page, PageDrop
|
12
|
-
end
|
13
|
-
|
14
|
-
# Any filter, tag or drop registered to Liquify is available anything
|
15
|
-
# rendered through +Liquify.render+.
|
16
|
-
|
17
|
-
## Using Liquify
|
18
|
-
# rendering source
|
19
|
-
Liquify.render("{{ page.name }}")
|
20
|
-
|
21
|
-
# rendering from a file (from a full path)
|
22
|
-
Liquify.render(:template => '/path/to/file.liquid')
|
23
|
-
|
24
|
-
# rendering from a file (from a relative path)
|
25
|
-
# setup template root location
|
26
|
-
Liquify.setup do
|
27
|
-
template_root '/path/to/templates'
|
28
|
-
end
|
29
|
-
|
30
|
-
Liquify.render(:template => 'relative/path/file.liquid')
|
31
|
-
|
32
|
-
## my_filters.rb
|
33
|
-
module MyFilters
|
34
|
-
def bold_text(text)
|
35
|
-
text = Liquify.parameter(text)
|
36
|
-
"<strong>#{text}</strong>"
|
37
|
-
end
|
38
|
-
end
|
39
|
-
|
40
|
-
## include_tag.rb
|
41
|
-
class IncludeTag < Liquify::Tag
|
42
|
-
def invoke
|
43
|
-
Liquify.render("#{parameter}.liquid")
|
44
|
-
end
|
45
|
-
end
|
46
|
-
|
47
|
-
== Todo
|
48
|
-
|
49
|
-
Make a helpful classes that improve on Liquid's Drop and Block class.
|
50
|
-
|
51
|
-
|
52
|
-
== Note on Patches/Pull Requests
|
53
|
-
|
54
|
-
* Fork the project.
|
55
|
-
* Make your feature addition or bug fix.
|
56
|
-
* Add tests for it. This is important so I don't break it in a
|
57
|
-
future version unintentionally.
|
58
|
-
* Commit, do not mess with rakefile, version, or history.
|
59
|
-
(if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
|
60
|
-
* Send me a pull request. Bonus points for topic branches.
|
61
|
-
|
62
|
-
== Copyright
|
63
|
-
|
64
|
-
Copyright (c) 2010 Dane Harrigan. See LICENSE for details.
|
data/spec/liquid/spec_drop.rb
DELETED
data/spec/liquid/spec_filter.rb
DELETED
data/spec/liquid/spec_tag.rb
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{{ 'sample text' }}
|