taktsoft_liquid-rails 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. checksums.yaml +7 -0
  2. data/.coveralls.yml +2 -0
  3. data/.gitignore +24 -0
  4. data/.rspec +1 -0
  5. data/.ruby-gemset +1 -0
  6. data/.ruby-version +1 -0
  7. data/.travis.yml +28 -0
  8. data/CHANGELOG.md +44 -0
  9. data/Gemfile +4 -0
  10. data/Guardfile +33 -0
  11. data/LICENSE.txt +22 -0
  12. data/README.md +152 -0
  13. data/Rakefile +25 -0
  14. data/gemfiles/rails_32.gemfile +9 -0
  15. data/gemfiles/rails_40.gemfile +8 -0
  16. data/gemfiles/rails_41.gemfile +8 -0
  17. data/gemfiles/rails_42.gemfile +8 -0
  18. data/gemfiles/rails_50.gemfile +5 -0
  19. data/lib/liquid-rails/drops/collection_drop.rb +91 -0
  20. data/lib/liquid-rails/drops/drop.rb +114 -0
  21. data/lib/liquid-rails/drops/droppable.rb +22 -0
  22. data/lib/liquid-rails/file_system.rb +13 -0
  23. data/lib/liquid-rails/filters/asset_tag_filter.rb +25 -0
  24. data/lib/liquid-rails/filters/asset_url_filter.rb +37 -0
  25. data/lib/liquid-rails/filters/date_filter.rb +19 -0
  26. data/lib/liquid-rails/filters/google_static_map_url_filter.rb +30 -0
  27. data/lib/liquid-rails/filters/misc_filter.rb +29 -0
  28. data/lib/liquid-rails/filters/number_filter.rb +24 -0
  29. data/lib/liquid-rails/filters/paginate_filter.rb +59 -0
  30. data/lib/liquid-rails/filters/sanitize_filter.rb +19 -0
  31. data/lib/liquid-rails/filters/text_filter.rb +46 -0
  32. data/lib/liquid-rails/filters/translate_filter.rb +14 -0
  33. data/lib/liquid-rails/filters/url_filter.rb +24 -0
  34. data/lib/liquid-rails/matchers.rb +5 -0
  35. data/lib/liquid-rails/railtie.rb +26 -0
  36. data/lib/liquid-rails/rspec/drop_example_group.rb +38 -0
  37. data/lib/liquid-rails/rspec/drop_matchers.rb +165 -0
  38. data/lib/liquid-rails/rspec/filter_example_group.rb +24 -0
  39. data/lib/liquid-rails/rspec/tag_example_group.rb +24 -0
  40. data/lib/liquid-rails/rspec/view_controller_context.rb +63 -0
  41. data/lib/liquid-rails/tags/content_for_tag.rb +77 -0
  42. data/lib/liquid-rails/tags/csrf_meta_tags.rb +11 -0
  43. data/lib/liquid-rails/tags/google_analytics_tag.rb +40 -0
  44. data/lib/liquid-rails/tags/javascript_tag.rb +22 -0
  45. data/lib/liquid-rails/tags/paginate_tag.rb +118 -0
  46. data/lib/liquid-rails/template_handler.rb +44 -0
  47. data/lib/liquid-rails/version.rb +5 -0
  48. data/lib/liquid-rails.rb +23 -0
  49. data/liquid-rails.gemspec +43 -0
  50. metadata +262 -0
@@ -0,0 +1,77 @@
1
+ # It works similar to Rails #content_for.
2
+ # Calling #content_for stores a block of markup in an identifier for later use.
3
+ # In order to access this stored content in other templates or the layout, you would pass the identifier as an argument to content_for.
4
+ #
5
+ # Usage:
6
+ #
7
+ # {% content_for not_authorized %}
8
+ # alert('You are not authorized to do that!');
9
+ # {% endcontent_for %}
10
+ #
11
+ # You can then use content_for :not_authorized anywhere in your templates.
12
+ # {% if current_user.nil? %}
13
+ # {% yield not_authorized %}
14
+ # {% endif %}
15
+
16
+ module Liquid
17
+ module Rails
18
+ class ContentForTag < ::Liquid::Block
19
+ Syntax = /(#{::Liquid::QuotedFragment}+)\s*(flush\s*(true|false))?/
20
+
21
+ def initialize(tag_name, markup, context)
22
+ super
23
+
24
+ if markup =~ Syntax
25
+ @flush = $3
26
+ @identifier = $1.gsub('\'', '')
27
+ else
28
+ raise SyntaxError.new("Syntax Error - Valid syntax: {% content_for [name] %}")
29
+ end
30
+ end
31
+
32
+ def render(context)
33
+ @context = context
34
+ content = super.html_safe
35
+
36
+ if ::Rails::VERSION::MAJOR == 3 && ::Rails::VERSION::MINOR == 2
37
+ if @flush == 'true'
38
+ @context.registers[:view].view_flow.set(@identifier, content) if content
39
+ else
40
+ @context.registers[:view].view_flow.append(@identifier, content) if content
41
+ end
42
+ else
43
+ options = @flush == 'true' ? { flush: true } : {}
44
+ @context.registers[:view].content_for(@identifier, content, options)
45
+ end
46
+ ''
47
+ end
48
+ end
49
+ end
50
+ end
51
+
52
+ module Liquid
53
+ module Rails
54
+ class YieldTag < ::Liquid::Tag
55
+ Syntax = /(#{::Liquid::QuotedFragment}+)/
56
+
57
+ def initialize(tag_name, markup, context)
58
+ super
59
+
60
+ if markup =~ Syntax
61
+ @identifier = $1.gsub('\'', '')
62
+ else
63
+ raise SyntaxError.new("Syntax Error - Valid syntax: {% yield [name] %}")
64
+ end
65
+ end
66
+
67
+ def render(context)
68
+ @context = context
69
+
70
+ @context.registers[:view].content_for(@identifier).try(:html_safe)
71
+ end
72
+ end
73
+ end
74
+ end
75
+
76
+ Liquid::Template.register_tag('content_for', Liquid::Rails::ContentForTag)
77
+ Liquid::Template.register_tag('yield', Liquid::Rails::YieldTag)
@@ -0,0 +1,11 @@
1
+ module Liquid
2
+ module Rails
3
+ class CsrfMetaTags < ::Liquid::Tag
4
+ def render(context)
5
+ context.registers[:view].csrf_meta_tags
6
+ end
7
+ end
8
+ end
9
+ end
10
+
11
+ Liquid::Template.register_tag('csrf_meta_tags', Liquid::Rails::CsrfMetaTags)
@@ -0,0 +1,40 @@
1
+ # Returns a Google Analytics tag.
2
+ #
3
+ # Usage:
4
+ #
5
+ # {% google_analytics_tag 'UA-XXXXX-X' %}
6
+
7
+ module Liquid
8
+ module Rails
9
+ class GoogleAnalyticsTag < ::Liquid::Tag
10
+ Syntax = /(#{::Liquid::QuotedFragment}+)?/
11
+
12
+ def initialize(tag_name, markup, tokens)
13
+ if markup =~ Syntax
14
+ @account_id = $1.gsub('\'', '')
15
+ else
16
+ raise ::Liquid::SyntaxError.new("Syntax Error in 'google_analytics_tag' - Valid syntax: google_analytics_tag <account_id>")
17
+ end
18
+
19
+ super
20
+ end
21
+
22
+ def render(context)
23
+ %{
24
+ <script type="text/javascript">
25
+
26
+ (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
27
+ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
28
+ m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
29
+ })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
30
+ ga('create', '#{@account_id}', 'auto');
31
+ ga('send', 'pageview');
32
+
33
+ </script>
34
+ }
35
+ end
36
+ end
37
+ end
38
+ end
39
+
40
+ Liquid::Template.register_tag('google_analytics_tag', Liquid::Rails::GoogleAnalyticsTag)
@@ -0,0 +1,22 @@
1
+ # Returns a JavaScript tag with the content inside.
2
+ #
3
+ # Usage:
4
+ #
5
+ # {% javascript_tag %}
6
+ # alert('Hello Liquid Rails!');
7
+ # {% endjavascript_tag %}
8
+
9
+ module Liquid
10
+ module Rails
11
+ class JavascriptTag < ::Liquid::Block
12
+ include ActionView::Helpers::JavaScriptHelper
13
+ include ActionView::Helpers::TagHelper
14
+
15
+ def render(context)
16
+ javascript_tag(super, type: 'text/javascript')
17
+ end
18
+ end
19
+ end
20
+ end
21
+
22
+ Liquid::Template.register_tag('javascript_tag', Liquid::Rails::JavascriptTag)
@@ -0,0 +1,118 @@
1
+ # Paginate a collection
2
+ #
3
+ # Usage:
4
+ #
5
+ # {% paginate listing.photos by 5 %}
6
+ # {% for photo in paginate.collection %}
7
+ # {{ photo.caption }}
8
+ # {% endfor %}
9
+ # {% endpaginate %}
10
+ #
11
+ module Liquid
12
+ module Rails
13
+ class PaginateTag < ::Liquid::Block
14
+ Syntax = /(#{::Liquid::QuotedFragment})\s*(by\s*(\d+))?/
15
+
16
+ def initialize(tag_name, markup, context)
17
+ super
18
+
19
+ if markup =~ Syntax
20
+ @collection_name = $1
21
+ @page_size = if $2
22
+ $3.to_i
23
+ else
24
+ 25
25
+ end
26
+
27
+ @attributes = { 'window_size' => 3 }
28
+ markup.scan(Liquid::TagAttributes) do |key, value|
29
+ @attributes[key] = value
30
+ end
31
+ else
32
+ raise SyntaxError.new("Syntax Error in tag 'paginate' - Valid syntax: paginate [collection] by number")
33
+ end
34
+ end
35
+
36
+ def render(context)
37
+ @context = context
38
+
39
+ context.stack do
40
+ collection = @context[@collection_name].presence || @context.environments[0][@collection_name]
41
+ raise ::Liquid::ArgumentError.new("Cannot paginate collection '#{@collection_name}'. Not found.") if collection.nil?
42
+
43
+ if collection.is_a? Array
44
+ paginated_collection = Kaminari.paginate_array(collection.to_a).page(current_page).per(@page_size)
45
+ elsif collection.respond_to?(:page)
46
+ paginated_collection = collection.page(current_page).per(@page_size)
47
+ end
48
+
49
+ page_count = paginated_collection.total_pages
50
+ pagination = {}
51
+ pagination['collection'] = paginated_collection
52
+ pagination['current_offset'] = (current_page-1) * @page_size
53
+ pagination['current_page'] = current_page
54
+ pagination['page_size'] = @page_size
55
+ pagination['pages'] = page_count
56
+ pagination['items'] = paginated_collection.total_count
57
+ pagination['previous'] = link('&laquo; Previous'.html_safe, current_page-1 ) unless 1 >= current_page
58
+ pagination['next'] = link('Next &raquo;'.html_safe, current_page+1 ) unless page_count < current_page+1
59
+ pagination['parts'] = []
60
+
61
+ hellip_break = false
62
+ if page_count > 1
63
+ 1.upto(page_count) do |page|
64
+
65
+ if current_page == page
66
+ pagination['parts'] << no_link(page)
67
+ elsif page == 1
68
+ pagination['parts'] << link(page, page)
69
+ elsif page == page_count - 1
70
+ pagination['parts'] << link(page, page)
71
+ elsif page <= current_page - window_size or page >= current_page + window_size
72
+ next if hellip_break
73
+ pagination['parts'] << no_link('&hellip;')
74
+ hellip_break = true
75
+ next
76
+ else
77
+ pagination['parts'] << link(page, page)
78
+ end
79
+
80
+ hellip_break = false
81
+ end
82
+ end
83
+ context['paginate'] = pagination
84
+
85
+ super
86
+ end
87
+ end
88
+
89
+ private
90
+
91
+ def current_page
92
+ _current_page = @context.registers[:controller].params[:page]
93
+ _current_page.nil? ? 1 : _current_page.to_i
94
+ end
95
+
96
+ def current_url
97
+ current_url = @context.registers[:controller].request.fullpath.gsub(/page=[0-9]+&?/, '')
98
+ current_url = current_url.slice(0..-2) if current_url.last == '?' || current_url.last == '&'
99
+ current_url
100
+ end
101
+
102
+ def window_size
103
+ @attributes['window_size']
104
+ end
105
+
106
+ def no_link(title)
107
+ { 'title' => title, 'is_link' => false, 'hellip_break' => (title == '&hellip;') }
108
+ end
109
+
110
+ def link(title, page)
111
+ _current_url = %(#{current_url}#{current_url.include?('?') ? '&' : '?'}page=#{page})
112
+ { 'title' => title, 'url' => _current_url, 'is_link' => true }
113
+ end
114
+ end
115
+ end
116
+ end
117
+
118
+ Liquid::Template.register_tag('paginate', Liquid::Rails::PaginateTag)
@@ -0,0 +1,44 @@
1
+ module Liquid
2
+ module Rails
3
+ class TemplateHandler
4
+
5
+ def self.call(template)
6
+ "Liquid::Rails::TemplateHandler.new(self).render(#{template.source.inspect}, local_assigns)"
7
+ end
8
+
9
+ def initialize(view)
10
+ @view = view
11
+ @controller = @view.controller
12
+ @helper = ActionController::Base.helpers
13
+ end
14
+
15
+ def render(template, local_assigns={})
16
+ @view.controller.headers['Content-Type'] ||= 'text/html; charset=utf-8'
17
+
18
+ assigns = if @controller.respond_to?(:liquid_assigns, true)
19
+ @controller.send(:liquid_assigns)
20
+ else
21
+ @view.assigns
22
+ end
23
+ assigns['content_for_layout'] = @view.content_for(:layout) if @view.content_for?(:layout)
24
+ assigns.merge!(local_assigns.stringify_keys)
25
+
26
+ liquid = Liquid::Template.parse(template)
27
+ render_method = (::Rails.env.development? || ::Rails.env.test?) ? :render! : :render
28
+ liquid.send(render_method, assigns, filters: filters, registers: { view: @view, controller: @controller, helper: @helper }).html_safe
29
+ end
30
+
31
+ def filters
32
+ if @controller.respond_to?(:liquid_filters, true)
33
+ @controller.send(:liquid_filters)
34
+ else
35
+ [@controller._helpers]
36
+ end
37
+ end
38
+
39
+ def compilable?
40
+ false
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,5 @@
1
+ module Liquid
2
+ module Rails
3
+ VERSION = '0.1.4'
4
+ end
5
+ end
@@ -0,0 +1,23 @@
1
+ require 'liquid-rails/version'
2
+ require 'liquid'
3
+ require 'kaminari'
4
+ require 'active_support/concern'
5
+
6
+ module Liquid
7
+ module Rails
8
+ autoload :TemplateHandler, 'liquid-rails/template_handler'
9
+ autoload :FileSystem, 'liquid-rails/file_system'
10
+
11
+ autoload :Drop, 'liquid-rails/drops/drop'
12
+ autoload :CollectionDrop, 'liquid-rails/drops/collection_drop'
13
+
14
+ def self.setup_drop(base)
15
+ base.class_eval do
16
+ include Liquid::Rails::Droppable
17
+ end
18
+ end
19
+ end
20
+ end
21
+
22
+ require 'liquid-rails/railtie' if defined?(Rails)
23
+ Dir[File.dirname(__FILE__) + '/liquid-rails/{filters,tags,drops}/*.rb'].each { |f| require f }
@@ -0,0 +1,43 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'liquid-rails/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = 'taktsoft_liquid-rails'
8
+ spec.version = Liquid::Rails::VERSION
9
+ spec.authors = ['Chamnap Chhorn', 'Taktsoft Developers']
10
+ spec.email = ['chamnapchhorn@gmail.com', 'developers@taktsoft.com']
11
+ spec.summary = %q{Renders liquid templates with layout and partial support}
12
+ spec.description = %q{It allows you to render .liquid templates with layout and partial support. It also provides filters, tags, drops class to be used inside your liquid template.}
13
+ spec.homepage = 'https://github.com/taktsoft/liquid-rails'
14
+ spec.license = 'MIT'
15
+ spec.required_ruby_version = '>= 2.0.0'
16
+ spec.required_rubygems_version = '>= 1.8.11'
17
+
18
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
19
+ spec.bindir = "exe"
20
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
21
+ spec.require_paths = ["lib"]
22
+
23
+ # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
24
+ # to allow pushing to a single host or delete this section to allow pushing to any host.
25
+ if spec.respond_to?(:metadata)
26
+ spec.metadata['allowed_push_host'] = "https://rubygems.org"
27
+ else
28
+ raise "RubyGems 2.0 or newer is required to protect against public gem pushes."
29
+ end
30
+
31
+ spec.add_dependency 'rails', '>= 3.2', '< 5.1'
32
+ spec.add_dependency 'liquid', '>= 3.0.0', '< 4.0'
33
+ spec.add_dependency 'kaminari', '>= 0.16.1'
34
+
35
+ spec.add_development_dependency 'bundler', '>= 1.0.0'
36
+ spec.add_development_dependency 'rake', '>= 0'
37
+ spec.add_development_dependency 'rspec-rails', '>= 0'
38
+ spec.add_development_dependency 'guard-rspec', '>= 0'
39
+ spec.add_development_dependency 'pry-rails', '>= 0'
40
+ spec.add_development_dependency 'capybara', '>= 0'
41
+ spec.add_development_dependency 'coveralls', '>= 0'
42
+ spec.add_development_dependency 'simplecov', '>= 0'
43
+ end
metadata ADDED
@@ -0,0 +1,262 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: taktsoft_liquid-rails
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.4
5
+ platform: ruby
6
+ authors:
7
+ - Chamnap Chhorn
8
+ - Taktsoft Developers
9
+ autorequire:
10
+ bindir: exe
11
+ cert_chain: []
12
+ date: 2016-08-29 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rails
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - ">="
19
+ - !ruby/object:Gem::Version
20
+ version: '3.2'
21
+ - - "<"
22
+ - !ruby/object:Gem::Version
23
+ version: '5.1'
24
+ type: :runtime
25
+ prerelease: false
26
+ version_requirements: !ruby/object:Gem::Requirement
27
+ requirements:
28
+ - - ">="
29
+ - !ruby/object:Gem::Version
30
+ version: '3.2'
31
+ - - "<"
32
+ - !ruby/object:Gem::Version
33
+ version: '5.1'
34
+ - !ruby/object:Gem::Dependency
35
+ name: liquid
36
+ requirement: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: 3.0.0
41
+ - - "<"
42
+ - !ruby/object:Gem::Version
43
+ version: '4.0'
44
+ type: :runtime
45
+ prerelease: false
46
+ version_requirements: !ruby/object:Gem::Requirement
47
+ requirements:
48
+ - - ">="
49
+ - !ruby/object:Gem::Version
50
+ version: 3.0.0
51
+ - - "<"
52
+ - !ruby/object:Gem::Version
53
+ version: '4.0'
54
+ - !ruby/object:Gem::Dependency
55
+ name: kaminari
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: 0.16.1
61
+ type: :runtime
62
+ prerelease: false
63
+ version_requirements: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: 0.16.1
68
+ - !ruby/object:Gem::Dependency
69
+ name: bundler
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: 1.0.0
75
+ type: :development
76
+ prerelease: false
77
+ version_requirements: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: 1.0.0
82
+ - !ruby/object:Gem::Dependency
83
+ name: rake
84
+ requirement: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: '0'
89
+ type: :development
90
+ prerelease: false
91
+ version_requirements: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - ">="
94
+ - !ruby/object:Gem::Version
95
+ version: '0'
96
+ - !ruby/object:Gem::Dependency
97
+ name: rspec-rails
98
+ requirement: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: '0'
103
+ type: :development
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - ">="
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ - !ruby/object:Gem::Dependency
111
+ name: guard-rspec
112
+ requirement: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - ">="
115
+ - !ruby/object:Gem::Version
116
+ version: '0'
117
+ type: :development
118
+ prerelease: false
119
+ version_requirements: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - ">="
122
+ - !ruby/object:Gem::Version
123
+ version: '0'
124
+ - !ruby/object:Gem::Dependency
125
+ name: pry-rails
126
+ requirement: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - ">="
129
+ - !ruby/object:Gem::Version
130
+ version: '0'
131
+ type: :development
132
+ prerelease: false
133
+ version_requirements: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - ">="
136
+ - !ruby/object:Gem::Version
137
+ version: '0'
138
+ - !ruby/object:Gem::Dependency
139
+ name: capybara
140
+ requirement: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - ">="
143
+ - !ruby/object:Gem::Version
144
+ version: '0'
145
+ type: :development
146
+ prerelease: false
147
+ version_requirements: !ruby/object:Gem::Requirement
148
+ requirements:
149
+ - - ">="
150
+ - !ruby/object:Gem::Version
151
+ version: '0'
152
+ - !ruby/object:Gem::Dependency
153
+ name: coveralls
154
+ requirement: !ruby/object:Gem::Requirement
155
+ requirements:
156
+ - - ">="
157
+ - !ruby/object:Gem::Version
158
+ version: '0'
159
+ type: :development
160
+ prerelease: false
161
+ version_requirements: !ruby/object:Gem::Requirement
162
+ requirements:
163
+ - - ">="
164
+ - !ruby/object:Gem::Version
165
+ version: '0'
166
+ - !ruby/object:Gem::Dependency
167
+ name: simplecov
168
+ requirement: !ruby/object:Gem::Requirement
169
+ requirements:
170
+ - - ">="
171
+ - !ruby/object:Gem::Version
172
+ version: '0'
173
+ type: :development
174
+ prerelease: false
175
+ version_requirements: !ruby/object:Gem::Requirement
176
+ requirements:
177
+ - - ">="
178
+ - !ruby/object:Gem::Version
179
+ version: '0'
180
+ description: It allows you to render .liquid templates with layout and partial support.
181
+ It also provides filters, tags, drops class to be used inside your liquid template.
182
+ email:
183
+ - chamnapchhorn@gmail.com
184
+ - developers@taktsoft.com
185
+ executables: []
186
+ extensions: []
187
+ extra_rdoc_files: []
188
+ files:
189
+ - ".coveralls.yml"
190
+ - ".gitignore"
191
+ - ".rspec"
192
+ - ".ruby-gemset"
193
+ - ".ruby-version"
194
+ - ".travis.yml"
195
+ - CHANGELOG.md
196
+ - Gemfile
197
+ - Guardfile
198
+ - LICENSE.txt
199
+ - README.md
200
+ - Rakefile
201
+ - gemfiles/rails_32.gemfile
202
+ - gemfiles/rails_40.gemfile
203
+ - gemfiles/rails_41.gemfile
204
+ - gemfiles/rails_42.gemfile
205
+ - gemfiles/rails_50.gemfile
206
+ - lib/liquid-rails.rb
207
+ - lib/liquid-rails/drops/collection_drop.rb
208
+ - lib/liquid-rails/drops/drop.rb
209
+ - lib/liquid-rails/drops/droppable.rb
210
+ - lib/liquid-rails/file_system.rb
211
+ - lib/liquid-rails/filters/asset_tag_filter.rb
212
+ - lib/liquid-rails/filters/asset_url_filter.rb
213
+ - lib/liquid-rails/filters/date_filter.rb
214
+ - lib/liquid-rails/filters/google_static_map_url_filter.rb
215
+ - lib/liquid-rails/filters/misc_filter.rb
216
+ - lib/liquid-rails/filters/number_filter.rb
217
+ - lib/liquid-rails/filters/paginate_filter.rb
218
+ - lib/liquid-rails/filters/sanitize_filter.rb
219
+ - lib/liquid-rails/filters/text_filter.rb
220
+ - lib/liquid-rails/filters/translate_filter.rb
221
+ - lib/liquid-rails/filters/url_filter.rb
222
+ - lib/liquid-rails/matchers.rb
223
+ - lib/liquid-rails/railtie.rb
224
+ - lib/liquid-rails/rspec/drop_example_group.rb
225
+ - lib/liquid-rails/rspec/drop_matchers.rb
226
+ - lib/liquid-rails/rspec/filter_example_group.rb
227
+ - lib/liquid-rails/rspec/tag_example_group.rb
228
+ - lib/liquid-rails/rspec/view_controller_context.rb
229
+ - lib/liquid-rails/tags/content_for_tag.rb
230
+ - lib/liquid-rails/tags/csrf_meta_tags.rb
231
+ - lib/liquid-rails/tags/google_analytics_tag.rb
232
+ - lib/liquid-rails/tags/javascript_tag.rb
233
+ - lib/liquid-rails/tags/paginate_tag.rb
234
+ - lib/liquid-rails/template_handler.rb
235
+ - lib/liquid-rails/version.rb
236
+ - liquid-rails.gemspec
237
+ homepage: https://github.com/taktsoft/liquid-rails
238
+ licenses:
239
+ - MIT
240
+ metadata:
241
+ allowed_push_host: https://rubygems.org
242
+ post_install_message:
243
+ rdoc_options: []
244
+ require_paths:
245
+ - lib
246
+ required_ruby_version: !ruby/object:Gem::Requirement
247
+ requirements:
248
+ - - ">="
249
+ - !ruby/object:Gem::Version
250
+ version: 2.0.0
251
+ required_rubygems_version: !ruby/object:Gem::Requirement
252
+ requirements:
253
+ - - ">="
254
+ - !ruby/object:Gem::Version
255
+ version: 1.8.11
256
+ requirements: []
257
+ rubyforge_project:
258
+ rubygems_version: 2.4.8
259
+ signing_key:
260
+ specification_version: 4
261
+ summary: Renders liquid templates with layout and partial support
262
+ test_files: []