dryml 1.3.0.pre14 → 1.3.0.pre15

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 (4) hide show
  1. data/VERSION +1 -1
  2. data/lib/dryml/helper.rb +4 -4
  3. data/lib/dryml.rb +17 -47
  4. metadata +7 -7
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.3.0.pre14
1
+ 1.3.0.pre15
data/lib/dryml/helper.rb CHANGED
@@ -31,7 +31,7 @@ module Dryml::Helper
31
31
  end
32
32
  res
33
33
  end
34
-
34
+
35
35
  def first_item?
36
36
  if scope.repeat_collection.respond_to? :each_pair
37
37
  this == scope.repeat_collection.first.try.last
@@ -39,8 +39,8 @@ module Dryml::Helper
39
39
  this == scope.repeat_collection.first
40
40
  end
41
41
  end
42
-
43
-
42
+
43
+
44
44
  def last_item?
45
45
  if scope.repeat_collection.respond_to? :each_pair
46
46
  this == scope.repeat_collection.last.try.last
@@ -49,7 +49,7 @@ module Dryml::Helper
49
49
  end
50
50
  end
51
51
 
52
- def param_name_for(path)
52
+ def param_name_for(path)
53
53
  field_path = field_path.to_s.split(".") if field_path.is_one_of?(String, Symbol)
54
54
  attrs = path.rest.map{|part| "[#{part.to_s.sub /\?$/, ''}]"}.join
55
55
  "#{path.first}#{attrs}"
data/lib/dryml.rb CHANGED
@@ -4,19 +4,16 @@
4
4
  # Copyright:: Copyright (c) 2008
5
5
  # License:: Distributes under the same terms as Ruby
6
6
 
7
-
8
-
9
- # gem dependencies
10
7
  require 'hobo_support'
11
8
  require 'action_pack'
12
9
 
13
- ActiveSupport::Dependencies.autoload_paths |= [ File.dirname(__FILE__)]
10
+ ActiveSupport::Dependencies.autoload_paths |= [File.dirname(__FILE__)]
14
11
 
15
12
  # The Don't Repeat Yourself Markup Language
16
13
  module Dryml
17
14
 
18
15
  VERSION = File.read(File.expand_path('../../VERSION', __FILE__)).strip
19
- @@root = Pathname.new File.expand_path(File.dirname(__FILE__) + "/..")
16
+ @@root = Pathname.new File.expand_path('../..', __FILE__)
20
17
  def self.root; @@root; end
21
18
 
22
19
  class DrymlSyntaxError < RuntimeError; end
@@ -32,22 +29,15 @@ module Dryml
32
29
  end
33
30
 
34
31
  TagDef = Struct.new "TagDef", :name, :attrs, :proc
35
-
36
32
  RESERVED_WORDS = %w{if for while do class else elsif unless case when module in}
37
-
38
33
  ID_SEPARATOR = '; dryml-tag: '
39
34
  APPLICATION_TAGLIB = { :src => "taglibs/application" }
40
35
  CORE_TAGLIB = { :src => "core", :plugin => "dryml" }
41
-
42
36
  DEFAULT_IMPORTS = defined?(ApplicationHelper) ? [ApplicationHelper] : []
43
-
44
37
  @cache = {}
45
-
46
38
  extend self
47
-
48
39
  attr_accessor :last_if
49
40
 
50
-
51
41
  def precompile_taglibs
52
42
  Dir.chdir(Rails.root) do
53
43
  Dir["app/views/taglibs/**/*.dryml"].each do |f|
@@ -56,7 +46,6 @@ module Dryml
56
46
  end
57
47
  end
58
48
 
59
-
60
49
  def clear_cache
61
50
  @cache = {}
62
51
  end
@@ -66,7 +55,6 @@ module Dryml
66
55
  renderer.render_tag(tag, options)
67
56
  end
68
57
 
69
-
70
58
  def empty_page_renderer(view)
71
59
  page_renderer(view, page_tag_identifier(view.controller.controller_path))
72
60
  end
@@ -87,10 +75,8 @@ module Dryml
87
75
  end
88
76
  end
89
77
 
90
-
91
78
  def page_renderer(view, identifier, local_names=[], controller_path=nil)
92
79
  controller_path ||= view.controller.controller_path
93
- # prepare_view!(view)
94
80
  if identifier =~ /#{ID_SEPARATOR}/
95
81
  identifier = identifier.split(ID_SEPARATOR).first
96
82
  @cache[identifier] ||= make_renderer_class("", "", local_names, taglibs_for(controller_path))
@@ -111,7 +97,6 @@ module Dryml
111
97
  end
112
98
  end
113
99
 
114
-
115
100
  def get_field(object, field)
116
101
  return nil if object.nil?
117
102
  field_str = field.to_s
@@ -126,14 +111,21 @@ module Dryml
126
111
  end
127
112
  end
128
113
 
114
+ def get_field(object, field)
115
+ return nil if object.nil?
116
+ field_str = field.to_s
117
+ case
118
+ when object.respond_to?(field_str)
119
+ object.send(field_str)
120
+ when field_str =~ /^\d+$/
121
+ object[field.to_i]
122
+ else
123
+ object[field]
124
+ end
125
+ end
129
126
 
130
127
  def get_field_path(object, path)
131
- path = if path.is_a? String
132
- path.split('.')
133
- else
134
- Array(path)
135
- end
136
-
128
+ path = path.is_a?(String) ? path.split('.') : Array(path)
137
129
  parent = nil
138
130
  path.each do |field|
139
131
  return nil if object.nil?
@@ -143,18 +135,12 @@ module Dryml
143
135
  [parent, path.last, object]
144
136
  end
145
137
 
146
-
147
-
148
138
  def unreserve(word)
149
139
  word = word.to_s
150
- if RESERVED_WORDS.include?(word)
151
- word + "_"
152
- else
153
- word
154
- end
140
+ word += '_' if RESERVED_WORDS.include?(word)
141
+ word
155
142
  end
156
143
 
157
-
158
144
  def static_tags
159
145
  @static_tags ||= begin
160
146
  path = if Object.const_defined?(:Rails) && FileTest.exists?("#{Rails.root}/config/dryml_static_tags.txt")
@@ -228,20 +214,6 @@ private
228
214
  { :src => src } if Object.const_defined?(:Rails) && File.exists?("#{Rails.root}/app/views/#{src}.dryml")
229
215
  end
230
216
 
231
- def prepare_view!(view)
232
- # Not sure why this isn't done for me...
233
- # There's probably a button to press round here somewhere
234
- for var in %w(@flash @cookies @action_name @_session @_request @request_origin
235
- @request @ignore_missing_templates @_headers @variables_added
236
- @_flash @response @template_class
237
- @_cookies @before_filter_chain_aborted @url
238
- @_response @template_root @headers @_params @params @session)
239
- unless @view.instance_variables.include?(var)
240
- view.instance_variable_set(var, view.controller.instance_variable_get(var))
241
- end
242
- end
243
- end
244
-
245
217
  # create and compile a renderer class (AKA Dryml::Template::Environment)
246
218
  #
247
219
  # template_src:: the DRYML source
@@ -261,7 +233,6 @@ private
261
233
  renderer_class
262
234
  end
263
235
 
264
-
265
236
  def compile_renderer_class(renderer_class, template_src, template_path, locals, taglibs=[])
266
237
  template = Dryml::Template.new(template_src, renderer_class, template_path)
267
238
  DEFAULT_IMPORTS.each {|m| template.import_module(m)}
@@ -272,7 +243,6 @@ private
272
243
  template.compile(all_local_names, [CORE_TAGLIB]+taglibs)
273
244
  end
274
245
 
275
-
276
246
  end
277
247
 
278
248
  require 'dryml/railtie' if Object.const_defined?(:Rails)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dryml
3
3
  version: !ruby/object:Gem::Version
4
- hash: -1637175963
4
+ hash: -1637175966
5
5
  prerelease: true
6
6
  segments:
7
7
  - 1
8
8
  - 3
9
9
  - 0
10
- - pre14
11
- version: 1.3.0.pre14
10
+ - pre15
11
+ version: 1.3.0.pre15
12
12
  platform: ruby
13
13
  authors:
14
14
  - Tom Locke
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2010-10-27 00:00:00 -04:00
19
+ date: 2010-11-03 00:00:00 -04:00
20
20
  default_executable:
21
21
  dependencies:
22
22
  - !ruby/object:Gem::Dependency
@@ -43,13 +43,13 @@ dependencies:
43
43
  requirements:
44
44
  - - "="
45
45
  - !ruby/object:Gem::Version
46
- hash: -1637175963
46
+ hash: -1637175966
47
47
  segments:
48
48
  - 1
49
49
  - 3
50
50
  - 0
51
- - pre14
52
- version: 1.3.0.pre14
51
+ - pre15
52
+ version: 1.3.0.pre15
53
53
  type: :runtime
54
54
  version_requirements: *id002
55
55
  - !ruby/object:Gem::Dependency