petroglyph 0.0.2 → 0.0.3

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.
@@ -0,0 +1,4 @@
1
+ require 'padrino-core'
2
+ Padrino.after_load do
3
+ require 'petroglyph/template'
4
+ end
@@ -3,8 +3,8 @@ module Petroglyph
3
3
 
4
4
  initializer "petroglyph.initialize" do |app|
5
5
  ActiveSupport.on_load(:action_view) do
6
- Petroglyph.register!
6
+ require 'rails/3.x/petroglyph'
7
7
  end
8
8
  end
9
9
  end
10
- end
10
+ end
@@ -76,8 +76,8 @@ module Petroglyph
76
76
 
77
77
  def partial(name, locals = {})
78
78
  data = Petroglyph.partial(name, file)
79
- scope = Scope.new(@context, locals)
80
- scope.instance_eval(data)
79
+ scope = Scope.new(@context, locals, file)
80
+ scope.instance_eval(data.to_s)
81
81
  merge scope.value
82
82
  end
83
83
 
@@ -85,7 +85,7 @@ module Petroglyph
85
85
  if @locals and @locals.has_key?(method)
86
86
  @locals[method]
87
87
  elsif @context.respond_to?(method)
88
- @context.send(method)
88
+ @context.send(method, *args)
89
89
  else
90
90
  super
91
91
  end
@@ -1,3 +1,3 @@
1
1
  module Petroglyph
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
data/lib/petroglyph.rb CHANGED
@@ -2,13 +2,9 @@ require 'json'
2
2
 
3
3
  require 'petroglyph/scope'
4
4
  require 'petroglyph/engine'
5
- require 'petroglyph/railtie' if defined?(Rails) && Rails.version =~ /^3/
6
5
 
7
6
  module Petroglyph
8
7
  class << self
9
- def register!
10
- require 'petroglyph/template'
11
- end
12
8
  def partial(filename, template_filename)
13
9
  basedir = File.dirname(template_filename)
14
10
  [basedir, "#{basedir}/partials"].each do |dir|
@@ -20,9 +16,12 @@ module Petroglyph
20
16
  end
21
17
  end
22
18
 
23
- if defined?(Padrino)
24
- require 'padrino-core'
25
- Padrino.after_load { Petroglyph.register! }
19
+ if defined? Padrino
20
+ require 'padrino/petroglyph'
21
+ elsif defined? Sinatra
22
+ require 'sinatra/petroglyph'
26
23
  elsif defined?(Rails) && Rails.version =~ /^2/
27
- Petroglyph.register!
24
+ require 'rails/2.x/petroglyph'
25
+ elsif defined?(Rails) && Rails.version =~ /^3/
26
+ require 'petroglyph/railtie'
28
27
  end
@@ -0,0 +1,24 @@
1
+ if defined?(Tilt)
2
+ require 'tilt/petroglyph'
3
+ end
4
+
5
+ # Rails 2.X Template
6
+ if defined?(Rails) && Rails.version =~ /^2/
7
+ require 'action_view/base'
8
+ require 'action_view/template'
9
+
10
+ module ActionView
11
+ module TemplateHandlers
12
+ class PetroglyphHandler < TemplateHandler
13
+ include Compilable
14
+
15
+ def compile(template) %{
16
+ ::Petroglyph::Engine.new(#{template.source.inspect}).
17
+ render(self, assigns.merge(local_assigns), '#{template.filename}')
18
+ } end
19
+ end
20
+ end
21
+ end
22
+
23
+ ActionView::Template.register_template_handler :pg, ActionView::TemplateHandlers::PetroglyphHandler
24
+ end
@@ -0,0 +1,26 @@
1
+ if defined?(Tilt)
2
+ require 'tilt/petroglyph'
3
+ end
4
+
5
+ # Rails 3.X Template
6
+ if defined?(Rails) && Rails.version =~ /^3/
7
+ module ActionView
8
+ module Template::Handlers
9
+ class Petroglyph
10
+
11
+ def call(template)
12
+ source = if template.source.empty?
13
+ File.read(template.identifier)
14
+ else
15
+ template.source
16
+ end
17
+
18
+ %{ ::Petroglyph::Engine.new(#{source.inspect}).
19
+ render(self, assigns.merge(local_assigns), '#{template.identifier}') }
20
+ end
21
+ end
22
+ end
23
+ end
24
+
25
+ ActionView::Template.register_template_handler :pg, ActionView::Template::Handlers::Petroglyph.new
26
+ end
@@ -1,9 +1,8 @@
1
1
  require 'tilt/petroglyph'
2
2
 
3
- if defined?(Sinatra)
4
- module Sinatra::Templates
5
- def pg(template, options={}, locals={})
6
- render :pg, template, options, locals
7
- end
3
+ module Sinatra::Templates
4
+ def pg(template, options={}, locals={})
5
+ options.merge!(:default_content_type => :json)
6
+ render :pg, template, options, locals
8
7
  end
9
8
  end
@@ -0,0 +1 @@
1
+ partial :the_partial, :thing => 'stuff'
data/spec/scope_spec.rb CHANGED
@@ -246,5 +246,15 @@ describe Petroglyph::Scope do
246
246
  scope.value.should eq({:partial => {:thing => 'stuff'}})
247
247
  end
248
248
 
249
+ it "finds nested partials" do
250
+ scope = Petroglyph::Scope.new
251
+ scope.file = "spec/fixtures/views/some_template.pg"
252
+
253
+ scope.node :partial do
254
+ partial :nested_partial
255
+ end
256
+
257
+ scope.value.should eq({:partial => {:thing => 'stuff'}})
258
+ end
249
259
  end
250
260
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: petroglyph
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-03-18 00:00:00.000000000Z
12
+ date: 2012-08-22 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: tilt
16
- requirement: &70204971169420 !ruby/object:Gem::Requirement
16
+ requirement: &70117439374320 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70204971169420
24
+ version_requirements: *70117439374320
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rspec
27
- requirement: &70204971169000 !ruby/object:Gem::Requirement
27
+ requirement: &70117439367780 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *70204971169000
35
+ version_requirements: *70117439367780
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: sinatra
38
- requirement: &70204971168580 !ruby/object:Gem::Requirement
38
+ requirement: &70117439367160 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70204971168580
46
+ version_requirements: *70117439367160
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rack-test
49
- requirement: &70204971168160 !ruby/object:Gem::Requirement
49
+ requirement: &70117439366500 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,7 +54,7 @@ dependencies:
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70204971168160
57
+ version_requirements: *70117439366500
58
58
  description: A simple, terse, and unsurprising ruby dsl to create json views.
59
59
  email:
60
60
  - katrina.owen@gmail.com
@@ -68,18 +68,21 @@ files:
68
68
  - Gemfile
69
69
  - README.md
70
70
  - Rakefile
71
+ - lib/padrino/petroglyph.rb
71
72
  - lib/petroglyph.rb
72
73
  - lib/petroglyph/engine.rb
73
74
  - lib/petroglyph/railtie.rb
74
75
  - lib/petroglyph/scope.rb
75
- - lib/petroglyph/template.rb
76
76
  - lib/petroglyph/version.rb
77
+ - lib/rails/2.x/petroglyph.rb
78
+ - lib/rails/3.x/petroglyph.rb
77
79
  - lib/sinatra/petroglyph.rb
78
80
  - lib/tilt/petroglyph.rb
79
81
  - petroglyph.gemspec
80
82
  - spec/engine_spec.rb
81
83
  - spec/fixtures/views/helper.pg
82
84
  - spec/fixtures/views/index.pg
85
+ - spec/fixtures/views/partials/nested_partial.pg
83
86
  - spec/fixtures/views/partials/sub_partial.pg
84
87
  - spec/fixtures/views/post.pg
85
88
  - spec/fixtures/views/syntax.pg
@@ -1,64 +0,0 @@
1
- # TILT Template
2
- if defined?(Tilt)
3
- class PetroglyphTemplate < Tilt::Template
4
- def initialize_engine
5
- return if defined?(::Petroglyph)
6
- require_template_library 'petroglyph'
7
- end
8
-
9
- def prepare
10
- options = @options.merge(:source_location => file)
11
- @engine = ::Petroglyph::Engine.new(data, options)
12
- end
13
-
14
- def evaluate(scope, locals, &block)
15
- @engine.render(scope, locals, &block)
16
- end
17
- end
18
-
19
- Tilt.register 'pg', PetroglyphTemplate
20
- end
21
-
22
- # Rails 2.X Template
23
- if defined?(Rails) && Rails.version =~ /^2/
24
- require 'action_view/base'
25
- require 'action_view/template'
26
-
27
- module ActionView
28
- module TemplateHandlers
29
- class PetroglyphHandler < TemplateHandler
30
- include Compilable
31
-
32
- def compile(template) %{
33
- ::Petroglyph::Engine.new(#{template.source.inspect}).
34
- render(self, assigns.merge(local_assigns), '#{template.filename}')
35
- } end
36
- end
37
- end
38
- end
39
-
40
- ActionView::Template.register_template_handler :pg, ActionView::TemplateHandlers::PetroglyphHandler
41
- end
42
-
43
- # Rails 3.X Template
44
- if defined?(Rails) && Rails.version =~ /^3/
45
- module ActionView
46
- module Template::Handlers
47
- class Petroglyph
48
-
49
- def call(template)
50
- source = if template.source.empty?
51
- File.read(template.identifier)
52
- else
53
- template.source
54
- end
55
-
56
- %{ ::Petroglyph::Engine.new(#{source.inspect}).
57
- render(self, assigns.merge(local_assigns), '#{template.identifier}') }
58
- end
59
- end
60
- end
61
- end
62
-
63
- ActionView::Template.register_template_handler :pg, ActionView::Template::Handlers::Petroglyph.new
64
- end