dryml 1.3.0.RC4 → 1.3.0.pre10

Sign up to get free protection for your applications and to get access to all the features.
data/lib/dryml.rb CHANGED
@@ -4,234 +4,272 @@
4
4
  # Copyright:: Copyright (c) 2008
5
5
  # License:: Distributes under the same terms as Ruby
6
6
 
7
+
8
+
9
+ # gem dependencies
7
10
  require 'hobo_support'
8
11
  require 'action_pack'
9
- require 'openssl'
10
12
 
11
- ActiveSupport::Dependencies.autoload_paths |= [File.dirname(__FILE__)]
12
- ActiveSupport::Dependencies.autoload_once_paths |= [File.dirname(__FILE__)]
13
+ ActiveSupport::Dependencies.autoload_paths |= [ File.dirname(__FILE__)]
13
14
 
14
15
  # The Don't Repeat Yourself Markup Language
15
16
  module Dryml
16
17
 
17
- VERSION = File.read(File.expand_path('../../VERSION', __FILE__)).strip
18
- @@root = Pathname.new File.expand_path('../..', __FILE__)
19
- def self.root; @@root; end
18
+ VERSION = File.read(File.expand_path('../../VERSION', __FILE__)).strip
19
+ @@root = Pathname.new File.expand_path(File.dirname(__FILE__) + "/..")
20
+ def self.root; @@root; end
20
21
 
21
- class DrymlSyntaxError < RuntimeError; end
22
+ class DrymlSyntaxError < RuntimeError; end
22
23
 
23
- class DrymlException < Exception
24
- def initialize(message, path=nil, line_num=nil)
25
- if path && line_num
26
- super(message + " -- at #{path}:#{line_num}")
27
- else
28
- super(message)
24
+ class DrymlException < Exception
25
+ def initialize(message, path=nil, line_num=nil)
26
+ if path && line_num
27
+ super(message + " -- at #{path}:#{line_num}")
28
+ else
29
+ super(message)
30
+ end
29
31
  end
30
32
  end
31
- end
32
-
33
- TagDef = Struct.new "TagDef", :name, :attrs, :proc
34
- RESERVED_WORDS = %w{if for while do class else elsif unless case when module in}
35
- ID_SEPARATOR = '; dryml-tag: '
36
- APPLICATION_TAGLIB = { :src => "taglibs/application" }
37
- CORE_TAGLIB = { :src => "core", :plugin => "dryml" }
38
- DEFAULT_IMPORTS = defined?(ApplicationHelper) ? [ApplicationHelper] : []
39
- @cache = {}
40
- extend self
41
- attr_accessor :last_if
42
-
43
- def precompile_taglibs
44
- Dir.chdir(Rails.root) do
45
- Dir["app/views/taglibs/**/*.dryml"].each do |f|
46
- Taglib.get(:template_dir => File.dirname(f), :src => File.basename(f).remove(".dryml"))
33
+
34
+ TagDef = Struct.new "TagDef", :name, :attrs, :proc
35
+
36
+ RESERVED_WORDS = %w{if for while do class else elsif unless case when module in}
37
+
38
+ EMPTY_PAGE = "[tag-page]"
39
+
40
+ APPLICATION_TAGLIB = { :src => "taglibs/application" }
41
+ CORE_TAGLIB = { :src => "core", :plugin => "dryml" }
42
+
43
+ DEFAULT_IMPORTS = defined?(ApplicationHelper) ? [ApplicationHelper] : []
44
+
45
+ @renderer_classes = {}
46
+ @tag_page_renderer_classes = {}
47
+
48
+ extend self
49
+
50
+ attr_accessor :last_if
51
+
52
+
53
+ def precompile_taglibs
54
+ Dir.chdir(Rails.root) do
55
+ taglibs = Dir["vendor/plugins/**/taglibs/**/*.dryml"] + Dir["app/views/taglibs/**/*.dryml"]
56
+ taglibs.each do |f|
57
+ Dryml::Taglib.get(:template_dir => File.dirname(f), :src => File.basename(f).remove(".dryml"))
58
+ end
47
59
  end
48
60
  end
49
- end
50
-
51
- def clear_cache
52
- @cache = {}
53
- end
54
-
55
- def render_tag(view, tag, options={})
56
- renderer = empty_page_renderer(view)
57
- renderer.render_tag(tag, options)
58
- end
59
-
60
- def empty_page_renderer(view)
61
- page_renderer(view, page_tag_identifier(view.controller.controller_path))
62
- end
63
-
64
- def page_tag_identifier(controller_path, tag_name='')
65
- "controller: #{controller_path}#{ID_SEPARATOR}#{tag_name}"
66
- end
67
-
68
- def call_render(view, local_assigns, identifier)
69
- this = view.controller.send(:dryml_context) || local_assigns[:this]
70
- view.instance_variable_set("@this", this)
71
- # do this last, as TemplateEnvironment copies instance variables in initalize
72
- renderer = page_renderer(view, identifier, local_assigns.keys)
73
- if identifier =~ /#{ID_SEPARATOR}/
74
- tag_name = identifier.split(ID_SEPARATOR).last
75
- renderer.render_tag(tag_name, {:with => this} )
76
- else
61
+
62
+
63
+ def clear_cache
64
+ @renderer_classes = {}
65
+ @tag_page_renderer_classes = {}
66
+ end
67
+
68
+ def render_tag(view, tag, options={})
69
+ renderer = empty_page_renderer(view)
70
+ renderer.render_tag(tag, options)
71
+ end
72
+
73
+
74
+ def empty_page_renderer(view)
75
+ controller_name = view.controller.class.name.underscore.sub(/_controller$/, "")
76
+ page_renderer(view, [], "#{controller_name}/#{EMPTY_PAGE}")
77
+ end
78
+
79
+ def call_render(view, local_assigns, identifier)
80
+ page = view.request.fullpath
81
+ renderer = page_renderer(view, local_assigns.keys, page, identifier)
82
+ this = view.controller.send(:dryml_context) || local_assigns[:this]
83
+ view.instance_variable_set("@this", this)
77
84
  renderer.render_page(this, local_assigns).strip
78
85
  end
79
- end
80
-
81
- def page_renderer(view, identifier, local_names=[], controller_path=nil)
82
- controller_path ||= view.controller.controller_path
83
- if identifier =~ /#{ID_SEPARATOR}/
84
- identifier = identifier.split(ID_SEPARATOR).first
85
- @cache[identifier] ||= make_renderer_class("", "", local_names, taglibs_for(controller_path))
86
- @cache[identifier].new(view)
87
- else
88
- mtime = File.mtime(identifier)
89
- renderer_class = @cache[identifier]
90
- # do we need to recompile?
91
- if (!renderer_class || # nothing cached?
92
- (local_names - renderer_class.compiled_local_names).any? || # any new local names?
93
- renderer_class.load_time < mtime) # cache out of date?
94
- renderer_class = make_renderer_class(File.read(identifier), identifier,
95
- local_names, taglibs_for(controller_path))
96
- renderer_class.load_time = mtime
97
- @cache[identifier] = renderer_class
86
+
87
+
88
+ def page_renderer(view, local_names=[], page=nil, filename=nil)
89
+ if Rails.env.development?
90
+ clear_cache
91
+ Taglib.clear_cache
92
+ end
93
+
94
+ prepare_view!(view)
95
+ included_taglibs = ([APPLICATION_TAGLIB] + application_taglibs() + [subsite_taglib(page)] + controller_taglibs(view.controller.class)).compact
96
+
97
+ if page.ends_with?(EMPTY_PAGE)
98
+ controller_class = view.controller.class
99
+ @tag_page_renderer_classes[controller_class.name] ||=
100
+ make_renderer_class("", page, local_names, DEFAULT_IMPORTS, included_taglibs)
101
+ @tag_page_renderer_classes[controller_class.name].new(page, view)
102
+ else
103
+ mtime = File.mtime(filename)
104
+ renderer_class = @renderer_classes[page]
105
+
106
+ # do we need to recompile?
107
+ if (!renderer_class || # nothing cached?
108
+ (local_names - renderer_class.compiled_local_names).any? || # any new local names?
109
+ renderer_class.load_time < mtime) # cache out of date?
110
+ renderer_class = make_renderer_class(File.read(filename), filename, local_names,
111
+ DEFAULT_IMPORTS, included_taglibs)
112
+ renderer_class.load_time = mtime
113
+ @renderer_classes[page] = renderer_class
114
+ end
115
+ renderer_class.new(page, view)
116
+ end
117
+ end
118
+
119
+ def controller_taglibs(controller_class)
120
+ controller_class.try.included_taglibs || []
121
+ end
122
+
123
+
124
+ def subsite_taglib(page)
125
+ parts = page.split("/")
126
+ subsite = parts.length >= 3 ? parts[0..-3].join('_') : "front"
127
+ src = "taglibs/#{subsite}_site"
128
+ { :src => src } if Object.const_defined?(:Rails) && File.exists?("#{Rails.root}/app/views/#{src}.dryml")
129
+ end
130
+
131
+ def application_taglibs
132
+ Dir.chdir(Rails.root) do
133
+ Dir["app/views/taglibs/application/**/*.dryml"].map{|f| File.basename f, '.dryml'}.map do |n|
134
+ { :src => "taglibs/application/#{n}" }
135
+ end
98
136
  end
99
- renderer_class.new(view)
100
- end
101
- end
102
-
103
- def get_field(object, field)
104
- return nil if object.nil?
105
- field_str = field.to_s
106
- case
107
- when object.respond_to?(field_str)
108
- object.send(field_str)
109
- when field_str =~ /^\d+$/
110
- object[field.to_i]
111
- else
112
- object[field]
113
- end
114
- end
115
-
116
- def get_field_path(object, path)
117
- return nil if object.nil?
118
- path = path.is_a?(String) ? path.split('.') : Array(path)
119
- parent = nil
120
- path.each do |field|
121
- parent = object
122
- object = get_field(parent, field)
123
- end
124
- [parent, path.last, object]
125
- end
126
-
127
- def unreserve(word)
128
- word = word.to_s
129
- word += '_' if RESERVED_WORDS.include?(word)
130
- word
131
- end
132
-
133
- def static_tags
134
- @static_tags ||= begin
135
- path = if Object.const_defined?(:Rails) && FileTest.exists?("#{Rails.root}/config/dryml_static_tags.txt")
136
- "#{Rails.root}/config/dryml_static_tags.txt"
137
- else
138
- File.join(File.dirname(__FILE__), "dryml/static_tags")
139
- end
140
- File.readlines(path).*.chop
141
- end
142
- end
143
-
144
- attr_writer :static_tags
145
-
146
- # FIXME: This helper seems to be useless, since it does need Rails,
147
- # and with Rails it is useless since Dryml does not need Hobo
148
- #
149
- # Helper function for use outside Hobo/Rails
150
- #
151
- # Pass the template context in locals[:this]
152
- #
153
- # This function caches. If the mtime of template_path is older
154
- # than the last compilation time, the cached version will be
155
- # used. If no template_path is given, template_src is used as the
156
- # key to the cache.
157
- #
158
- # If a local variable is not present when the template is
159
- # compiled, it will be ignored when the template is used. In
160
- # other words, the variable values may change, but the names may
161
- # not.
162
- #
163
- # included_taglibs is only used during template compilation.
164
- #
165
- # @param [String] template_src the DRYML source
166
- # @param [Hash] locals local variables.
167
- # @param [String, nil] template_path the filename of the source.
168
- # @param [Array] included_taglibs A list of Taglibs to include. { :src =>
169
- # "core", :plugin => "dryml" } is automatically
170
- # added to this list.
171
- # @param [ActionView::Base] view an ActionView instance
172
- def render(template_src, locals={}, template_path=nil, included_taglibs=[], view=nil)
173
- template_path ||= template_src
174
- view ||= ActionView::Base.new(ActionController::Base.view_paths, {})
175
- this = locals.delete(:this) || nil
176
-
177
- renderer_class = Dryml::Template.build_cache[template_path]._?.environment ||
178
- make_renderer_class(template_src, template_path, locals.keys)
179
- renderer_class.new(view).render_page(this, locals)
180
- end
181
-
182
- private
183
-
184
- def taglibs_for(controller_path)
185
- ( taglibs_in_dir('application').unshift(APPLICATION_TAGLIB) +
186
- subsite_taglibs(controller_path) +
187
- ((controller_path.camelize+"Controller").constantize.try.included_taglibs||[])
188
- ).compact
189
- end
190
-
191
- def subsite_taglibs(controller_path)
192
- parts = controller_path.split("/")
193
- subsite = parts.length >= 2 ? parts[0..-2].join('_') : "front"
194
- src = "taglibs/#{subsite}_site"
195
- Object.const_defined?(:Rails) && File.exists?("#{Rails.root}/app/views/#{src}.dryml") ?
196
- taglibs_in_dir("#{subsite}_site").unshift({ :src => src }) : []
197
- end
198
-
199
- def taglibs_in_dir(dir_name)
200
- Dir.chdir(Rails.root) do
201
- Dir["app/views/taglibs/#{dir_name}/**/*.dryml"].map{|f| File.basename f, '.dryml'}.map do |n|
202
- { :src => "taglibs/#{dir_name}/#{n}" }
137
+ end
138
+
139
+ def get_field(object, field)
140
+ return nil if object.nil?
141
+ field_str = field.to_s
142
+ begin
143
+ return object.send(field_str)
144
+ rescue NoMethodError => ex
145
+ if field_str =~ /^\d+$/
146
+ return object[field.to_i]
147
+ else
148
+ return object[field]
149
+ end
150
+ end
151
+ end
152
+
153
+
154
+ def get_field_path(object, path)
155
+ path = if path.is_a? String
156
+ path.split('.')
157
+ else
158
+ Array(path)
159
+ end
160
+
161
+ parent = nil
162
+ path.each do |field|
163
+ return nil if object.nil?
164
+ parent = object
165
+ object = get_field(parent, field)
166
+ end
167
+ [parent, path.last, object]
168
+ end
169
+
170
+
171
+ def prepare_view!(view)
172
+ # Not sure why this isn't done for me...
173
+ # There's probably a button to press round here somewhere
174
+ for var in %w(@flash @cookies @action_name @_session @_request @request_origin
175
+ @template @request @ignore_missing_templates @_headers @variables_added
176
+ @_flash @response @template_class
177
+ @_cookies @before_filter_chain_aborted @url
178
+ @_response @template_root @headers @_params @params @session)
179
+ unless @view.instance_variables.include?(var)
180
+ view.instance_variable_set(var, view.controller.instance_variable_get(var))
181
+ end
182
+ end
183
+ end
184
+
185
+ # create and compile a renderer class (AKA Dryml::Template::Environment)
186
+ #
187
+ # template_src:: the DRYML source
188
+ # template_path:: the filename of the source. This is used for
189
+ # caching
190
+ # locals:: local variables.
191
+ # imports:: A list of helper modules to import. For example, Hobo
192
+ # uses [Hobo::Helper, Hobo::Helper::Translations,
193
+ # ApplicationHelper]
194
+ # included_taglibs:: A list of Taglibs to include. { :src =>
195
+ # "core", :plugin => "dryml" } is automatically
196
+ # added to this list.
197
+ #
198
+ def make_renderer_class(template_src, template_path, locals=[], imports=[], included_taglibs=[])
199
+ renderer_class = Class.new(TemplateEnvironment)
200
+ compile_renderer_class(renderer_class, template_src, template_path, locals, imports, included_taglibs)
201
+ renderer_class
202
+ end
203
+
204
+
205
+ def compile_renderer_class(renderer_class, template_src, template_path, locals, imports, included_taglibs=[])
206
+ template = Dryml::Template.new(template_src, renderer_class, template_path)
207
+ imports.each {|m| template.import_module(m)}
208
+
209
+ taglibs = [CORE_TAGLIB] + included_taglibs
210
+
211
+ # the sum of all the names we've seen so far - eventually we'll be ready for all of 'em
212
+ all_local_names = renderer_class.compiled_local_names | locals
213
+
214
+ template.compile(all_local_names, taglibs)
215
+ end
216
+
217
+
218
+ def unreserve(word)
219
+ word = word.to_s
220
+ if RESERVED_WORDS.include?(word)
221
+ word + "_"
222
+ else
223
+ word
203
224
  end
204
225
  end
205
- end
206
-
207
- # create and compile a renderer class (AKA Dryml::Template::Environment)
208
- #
209
- # template_src:: the DRYML source
210
- # template_path:: the filename of the source. This is used for
211
- # caching
212
- # locals:: local variables.
213
- # imports:: A list of helper modules to import. For example, Hobo
214
- # uses [Hobo::Helper, Hobo::Helper::Translations,
215
- # ApplicationHelper]
216
- # included_taglibs:: A list of Taglibs to include. { :src =>
217
- # "core", :plugin => "dryml" } is automatically
218
- # added to this list.
219
- #
220
- def make_renderer_class(template_src, template_path, locals=[], taglibs=[])
221
- renderer_class = Class.new(TemplateEnvironment)
222
- compile_renderer_class(renderer_class, template_src, template_path, locals, taglibs)
223
- renderer_class
224
- end
225
-
226
- def compile_renderer_class(renderer_class, template_src, template_path, locals, taglibs=[])
227
- template = Dryml::Template.new(template_src, renderer_class, template_path)
228
- DEFAULT_IMPORTS.each {|m| template.import_module(m)}
229
-
230
- # the sum of all the names we've seen so far - eventually we'll be ready for all of 'em
231
- all_local_names = renderer_class.compiled_local_names | locals
232
-
233
- template.compile(all_local_names, [CORE_TAGLIB]+taglibs)
234
- end
226
+
227
+
228
+ def static_tags
229
+ @static_tags ||= begin
230
+ path = if Object.const_defined?(:Rails) && FileTest.exists?("#{Rails.root}/config/dryml_static_tags.txt")
231
+ "#{Rails.root}/config/dryml_static_tags.txt"
232
+ else
233
+ File.join(File.dirname(__FILE__), "dryml/static_tags")
234
+ end
235
+ File.readlines(path).*.chop
236
+ end
237
+ end
238
+
239
+ attr_writer :static_tags
240
+
241
+ # Helper function for use outside Hobo/Rails
242
+ #
243
+ # Pass the template context in locals[:this]
244
+ #
245
+ # This function caches. If the mtime of template_path is older
246
+ # than the last compilation time, the cached version will be
247
+ # used. If no template_path is given, template_src is used as the
248
+ # key to the cache.
249
+ #
250
+ # If a local variable is not present when the template is
251
+ # compiled, it will be ignored when the template is used. In
252
+ # other words, the variable values may change, but the names may
253
+ # not.
254
+ #
255
+ # included_taglibs is only used during template compilation.
256
+ #
257
+ # @param [String] template_src the DRYML source
258
+ # @param [Hash] locals local variables.
259
+ # @param [String, nil] template_path the filename of the source.
260
+ # @param [Array] included_taglibs A list of Taglibs to include. { :src =>
261
+ # "core", :plugin => "dryml" } is automatically
262
+ # added to this list.
263
+ # @param [ActionView::Base] view an ActionView instance
264
+ def render(template_src, locals={}, template_path=nil, included_taglibs=[], view=nil)
265
+ template_path ||= template_src
266
+ view ||= ActionView::Base.new(ActionController::Base.view_paths, {})
267
+ this = locals.delete(:this) || nil
268
+
269
+ renderer_class = Dryml::Template.build_cache[template_path]._?.environment ||
270
+ Dryml.make_renderer_class(template_src, template_path, locals.keys)
271
+ renderer_class.new(template_path, view).render_page(this, locals)
272
+ end
235
273
 
236
274
  end
237
275
 
data/taglibs/core.dryml CHANGED
@@ -4,9 +4,7 @@
4
4
  It's the DRYML equivalent of Ruby's `send` method.
5
5
  -->
6
6
  <def tag="call-tag" attrs="tag">
7
- <%= Dryml.static_tags.include?(tag) ?
8
- content_tag(tag, parameters.default, attributes) :
9
- send(tag.gsub('-', '_'), attributes, parameters) %>
7
+ <%= send(tag.gsub('-', '_'), attributes, parameters) %>
10
8
  </def>
11
9
 
12
10
 
@@ -23,15 +21,7 @@ For example, you might want to wrap an `<img>` tag in an `<a>` tag but only unde
23
21
  -->
24
22
  <def tag="wrap" attrs="tag, when, parameter">
25
23
  <% parameter ||= :default %>
26
- <%= if when_
27
- if Dryml.static_tags.include?(tag)
28
- content_tag(tag, parameters.default, attributes)
29
- else
30
- send(tag.gsub('-', '_'), attributes, { parameter.to_sym => parameters[:default] })
31
- end
32
- else
33
- parameters.default
34
- end %>
24
+ <%= when_ ? send(tag, attributes, { parameter.to_sym => parameters[:default] }) : parameters.default %>
35
25
  </def>
36
26
 
37
27
 
@@ -71,10 +61,10 @@ For example, you might want to wrap an `<img>` tag in an `<a>` tag but only unde
71
61
 
72
62
  ### Usage
73
63
 
74
- <if test="&current_user.administrator?">Logged in as administrator</if>
64
+ <if test="&current_user.administrtator?">Logged in as administrator</if>
75
65
  <else>Logged in as normal user</else>
76
-
77
- **IMPORTANT NOTE**: `<if>` tests for non-blank vs. blank (as defined by ActiveSupport), not true vs. false.
66
+
67
+ **IMPORTANT NOTE**: `<if>` tests for non-blank vs. blank (as defined by ActiveSuport), not true vs. false.
78
68
 
79
69
  If you do not give the `test` attribute, uses the current context instead. This allows a nice trick like this:
80
70
 
data/test/dryml.rdoctest CHANGED
@@ -7,7 +7,7 @@
7
7
  >> $:.unshift File.join(File.expand_path(File.dirname(__FILE__)), '../../dryml/lib')
8
8
  >> require 'hobo_support'
9
9
  >> require 'dryml'
10
- >> require 'dryml/railtie/template_handler'
10
+ >> require 'dryml/template_handler'
11
11
 
12
12
  {.hidden}
13
13
 
metadata CHANGED
@@ -1,8 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dryml
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: 6
5
- version: 1.3.0.RC4
4
+ hash: -1637175975
5
+ prerelease: true
6
+ segments:
7
+ - 1
8
+ - 3
9
+ - 0
10
+ - pre10
11
+ version: 1.3.0.pre10
6
12
  platform: ruby
7
13
  authors:
8
14
  - Tom Locke
@@ -10,7 +16,7 @@ autorequire:
10
16
  bindir: bin
11
17
  cert_chain: []
12
18
 
13
- date: 2011-11-09 00:00:00 -05:00
19
+ date: 2010-10-10 00:00:00 -04:00
14
20
  default_executable:
15
21
  dependencies:
16
22
  - !ruby/object:Gem::Dependency
@@ -19,8 +25,13 @@ dependencies:
19
25
  requirement: &id001 !ruby/object:Gem::Requirement
20
26
  none: false
21
27
  requirements:
22
- - - ~>
28
+ - - ">="
23
29
  - !ruby/object:Gem::Version
30
+ hash: 7
31
+ segments:
32
+ - 3
33
+ - 0
34
+ - 0
24
35
  version: 3.0.0
25
36
  type: :runtime
26
37
  version_requirements: *id001
@@ -32,7 +43,13 @@ dependencies:
32
43
  requirements:
33
44
  - - "="
34
45
  - !ruby/object:Gem::Version
35
- version: 1.3.0.RC4
46
+ hash: -1637175975
47
+ segments:
48
+ - 1
49
+ - 3
50
+ - 0
51
+ - pre10
52
+ version: 1.3.0.pre10
36
53
  type: :runtime
37
54
  version_requirements: *id002
38
55
  - !ruby/object:Gem::Dependency
@@ -43,6 +60,9 @@ dependencies:
43
60
  requirements:
44
61
  - - ">="
45
62
  - !ruby/object:Gem::Version
63
+ hash: 3
64
+ segments:
65
+ - 0
46
66
  version: "0"
47
67
  type: :development
48
68
  version_requirements: *id003
@@ -50,8 +70,8 @@ description: The Don't Repeat Yourself Markup Language
50
70
  email: tom@tomlocke.com
51
71
  executables: []
52
72
 
53
- extensions:
54
- - ext/mkrf_conf.rb
73
+ extensions: []
74
+
55
75
  extra_rdoc_files: []
56
76
 
57
77
  files:
@@ -62,7 +82,6 @@ files:
62
82
  - TODO.txt
63
83
  - VERSION
64
84
  - dryml.gemspec
65
- - ext/mkrf_conf.rb
66
85
  - lib/dryml.rb
67
86
  - lib/dryml/dryml_builder.rb
68
87
  - lib/dryml/dryml_doc.rb
@@ -80,6 +99,7 @@ files:
80
99
  - lib/dryml/parser/tree_parser.rb
81
100
  - lib/dryml/part_context.rb
82
101
  - lib/dryml/railtie.rb
102
+ - lib/dryml/railtie/page_tag_handler.rb
83
103
  - lib/dryml/railtie/page_tag_resolver.rb
84
104
  - lib/dryml/railtie/template_handler.rb
85
105
  - lib/dryml/scoped_variables.rb
@@ -104,17 +124,25 @@ required_ruby_version: !ruby/object:Gem::Requirement
104
124
  requirements:
105
125
  - - ">="
106
126
  - !ruby/object:Gem::Version
127
+ hash: 3
128
+ segments:
129
+ - 0
107
130
  version: "0"
108
131
  required_rubygems_version: !ruby/object:Gem::Requirement
109
132
  none: false
110
133
  requirements:
111
134
  - - ">="
112
135
  - !ruby/object:Gem::Version
136
+ hash: 23
137
+ segments:
138
+ - 1
139
+ - 3
140
+ - 6
113
141
  version: 1.3.6
114
142
  requirements: []
115
143
 
116
144
  rubyforge_project: hobo
117
- rubygems_version: 1.6.2
145
+ rubygems_version: 1.3.7
118
146
  signing_key:
119
147
  specification_version: 3
120
148
  summary: The Don't Repeat Yourself Markup Language
data/ext/mkrf_conf.rb DELETED
@@ -1,9 +0,0 @@
1
- require 'rubygems'
2
-
3
- # the whole reason this file exists: to return an error if openssl
4
- # isn't installed.
5
- require 'openssl'
6
-
7
- f = File.open(File.join(File.dirname(__FILE__), "Rakefile"), "w") # create dummy rakefile to indicate success
8
- f.write("task :default\n")
9
- f.close