snippr 0.15.7 → 0.15.8

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- NjA5MWRjNjE2MGU1OWQwY2ExZDViZDBjZjY4ZWU3MzZhNTJjYjU3YQ==
4
+ NzY1OGZmOGEzZmU0MjQyMTg3ZWJhZDc4NmY3N2RhNzEyMGQ4MGM5Ng==
5
5
  data.tar.gz: !binary |-
6
- MTdiNGRmZjg0ZDliZTQ0Y2UyYTQ3NzE1MGY2NTVmOGQyNDk5M2YyOQ==
6
+ NjU0NTNiZWExNDY0MWZhMDdjMDllYjM4NWIyMGYzY2U3MGMwYmRkYg==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- NzViMTdlZmJkODQ0MTRlYzQ5NjEwMGE0M2Q0YTBjMGJlNGE2NGJhNzZhNjNj
10
- ZjcyMTgzZTBhYWFlNWYzYWI4ODc0MmY5M2NhMzgxNWRlNTdmNGI2ZmUyNDAy
11
- N2ZiMzkyOTJjMWMzZDkyZWFhMDNlYTc4ZjViM2NiNjNkMzNhNjQ=
9
+ ZWJjYzQ2ODQ0NmEwNzNhMjkxZTcxODUwMWU5NmQ5N2Q3MDFiOTAwZTUyYjQw
10
+ OTJlZGU1MDYyMjM5MTFkMDg3NmNkNGFhMzYwMDc4ODQ4YTAyMTZjOTU2MmQy
11
+ NjkxMjQyYjZkYjM5ODEwOTQ2ZTllNGYyYWM0ZWRiYzU0NmU3MDQ=
12
12
  data.tar.gz: !binary |-
13
- MzM4MThjNzVmMjE3NmVlOTI0Y2VkM2EwZGFhM2Q3ZThmZGFhMzBiOWFhZGFi
14
- MjdhYTQ3MjBmZTFmZWM4ZTJmNzJmYjQyMzQzYjM0YTZiNjY0MDEyYTg0Yjc4
15
- OWQyOTk2NjVjMjYzODYyZTU3ZGJjMTk3YjllMzAwYmVkZjczZmQ=
13
+ NTA4MTQwZjNjNDBhMThhOWU0ZDAxZmRhOWFkZTM5NjEzNTU0MDM5YWNkMjI2
14
+ MWJhZDhmZDlmOWJhN2QyYjU5MzYwMTRjMTc3ZDAwOWEyOTUyN2RmZjY5N2I0
15
+ Yjk4Y2M5YzI3MTJkMDAwZjFmMGQ3ZjQzZDQ2Zjg4ZTBmNDk4OTQ=
data/README.md CHANGED
@@ -53,13 +53,13 @@ You can call methods on passed parameters. Calling this:
53
53
 
54
54
  on ...
55
55
 
56
- <p>Snippr says: {a_variable.doit}</p>
56
+ <p>Snippr says: {a_variable.doit()}</p>
57
57
 
58
58
  will yield:
59
59
 
60
60
  <p>Snippr says: HELLO</p>
61
61
 
62
- You can even pass parameters to the call. Those *must* be enclosed in quotes ("):
62
+ You can even pass parameters to the call. Those *must* be enclosed in double quotes ("):
63
63
 
64
64
  class Klazz
65
65
  def doitagain(p); "HELLO #{p}"; end
@@ -90,6 +90,14 @@ is equivalent to
90
90
  TWO
91
91
  {/two_parameters.signature}
92
92
 
93
+ Snippr will check (via #respond_to?) if the method is available on the receiver variable.
94
+ If that is not what you want and you want to force snippr to call the method on the receiver you can prepend a bang to the variable name (as of Snippr 0.15.8):
95
+
96
+ {!a_variable.called_even_if_not_available()}
97
+
98
+ That would result in an ``NoMethodError``.
99
+ This can be very useful if you call a method on a proxy object with dynamic method generation that isn't so polite as to implement a meaningful ``respond_to?`` or ``respond_to_missing?`` (eg. The Draper::HelperProxy)
100
+
93
101
  ### Meta Infos
94
102
 
95
103
  A snippet can not only hold content but also meta infos for this snippet.
@@ -11,12 +11,12 @@ module Snippr
11
11
  def process(content, opts = {})
12
12
  opts.inject(content) do |c, pv|
13
13
  placeholder, value = pv
14
- c.gsub(/\{#{placeholder}(?:\.(.*?)\(["]?(.*?)["]?\))?\}/m) do |match|
15
- if $1 && value.respond_to?($1)
16
- method = $1
17
- params = ($2 || "").gsub(/[\t\r\n]/,"").split("\",\"")
14
+ c.gsub(/\{(!?)#{placeholder}(?:\.(.*?)\(["]?(.*?)["]?\))?\}/m) do |match|
15
+ if $2 && (value.respond_to?($2) || $1 == "!")
16
+ method = $2
17
+ params = ($3 || "").gsub(/[\t\r\n]/,"").split("\",\"")
18
18
  value.send(method, *params).to_s
19
- elsif $1
19
+ elsif $2
20
20
  match
21
21
  else
22
22
  value.to_s
@@ -1,3 +1,4 @@
1
+ # -*- encoding : utf-8 -*-
1
2
  module Snippr
2
3
  module SegmentFilter
3
4
  class Base
@@ -16,7 +17,7 @@ module Snippr
16
17
  end
17
18
 
18
19
  def active?
19
- raise RuntimeException("Subclasses need to implement #active?")
20
+ raise NotImplementedError("Subclasses need to implement #active?")
20
21
  end
21
22
  end
22
23
  end
@@ -1,11 +1,11 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  Gem::Specification.new do |s|
3
3
  s.name = "snippr"
4
- s.version = "0.15.7"
4
+ s.version = "0.15.8"
5
5
  s.date = Time.now
6
6
  s.platform = Gem::Platform::RUBY
7
- s.authors = ["Daniel Harrington", "Thomas Jachmann"]
8
- s.email = ["me@rubiii.com", "self@thomasjachmann.com"]
7
+ s.authors = ["Daniel Harrington", "Thomas Jachmann", "Frank Schumacher"]
8
+ s.email = ["me@rubiii.com", "self@thomasjachmann.com", "frank.schumacher.privat@gmail.com"]
9
9
  s.homepage = "http://github.com/blaulabs/snippr"
10
10
  s.summary = %q{File based content management}
11
11
  s.license = "MIT"
@@ -17,16 +17,16 @@ Gem::Specification.new do |s|
17
17
  s.add_runtime_dependency "activesupport"
18
18
 
19
19
  s.add_development_dependency "ci_reporter", "~> 1.6.5"
20
- s.add_development_dependency "rspec", "~> 2.8.0"
20
+ s.add_development_dependency "rspec", "~> 2.14.0"
21
21
  s.add_development_dependency "mocha", "= 0.11.4"
22
- s.add_development_dependency "rake", "~> 0.9.0"
22
+ s.add_development_dependency "rake", "~> 10.0"
23
23
 
24
24
  unless ENV["CI"]
25
25
  s.add_development_dependency "debugger"
26
26
  end
27
27
 
28
28
  s.files = `git ls-files`.split("\n").reject{ |a| a.start_with?("\"") }
29
- s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n").reject{ |a| a.start_with?("\"") }
29
+ s.test_files = `git ls-files -- spec/*`.split("\n").reject{ |a| a.start_with?("\"") }
30
30
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
31
31
  s.require_paths = ["lib"]
32
32
  end
@@ -47,4 +47,9 @@ describe Snippr::Processor::Dynamics do
47
47
  subject.process(tpl, :var => Klass.new).should == tpl
48
48
  end
49
49
 
50
+ it "calls a bang(!) method even if the receiver does not respond_to the method" do
51
+ tpl = "An instance {!var.method_not_exist()}"
52
+ lambda { subject.process(tpl, :var => Klass.new) }.should raise_error(NoMethodError)
53
+ end
54
+
50
55
  end
metadata CHANGED
@@ -1,15 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: snippr
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.15.7
4
+ version: 0.15.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Harrington
8
8
  - Thomas Jachmann
9
+ - Frank Schumacher
9
10
  autorequire:
10
11
  bindir: bin
11
12
  cert_chain: []
12
- date: 2013-05-27 00:00:00.000000000 Z
13
+ date: 2013-07-18 00:00:00.000000000 Z
13
14
  dependencies:
14
15
  - !ruby/object:Gem::Dependency
15
16
  name: i18n
@@ -59,14 +60,14 @@ dependencies:
59
60
  requirements:
60
61
  - - ~>
61
62
  - !ruby/object:Gem::Version
62
- version: 2.8.0
63
+ version: 2.14.0
63
64
  type: :development
64
65
  prerelease: false
65
66
  version_requirements: !ruby/object:Gem::Requirement
66
67
  requirements:
67
68
  - - ~>
68
69
  - !ruby/object:Gem::Version
69
- version: 2.8.0
70
+ version: 2.14.0
70
71
  - !ruby/object:Gem::Dependency
71
72
  name: mocha
72
73
  requirement: !ruby/object:Gem::Requirement
@@ -87,14 +88,14 @@ dependencies:
87
88
  requirements:
88
89
  - - ~>
89
90
  - !ruby/object:Gem::Version
90
- version: 0.9.0
91
+ version: '10.0'
91
92
  type: :development
92
93
  prerelease: false
93
94
  version_requirements: !ruby/object:Gem::Requirement
94
95
  requirements:
95
96
  - - ~>
96
97
  - !ruby/object:Gem::Version
97
- version: 0.9.0
98
+ version: '10.0'
98
99
  - !ruby/object:Gem::Dependency
99
100
  name: debugger
100
101
  requirement: !ruby/object:Gem::Requirement
@@ -114,6 +115,7 @@ description: This gem provides ways to access file based cms resources from a ra
114
115
  email:
115
116
  - me@rubiii.com
116
117
  - self@thomasjachmann.com
118
+ - frank.schumacher.privat@gmail.com
117
119
  executables: []
118
120
  extensions: []
119
121
  extra_rdoc_files: []
@@ -210,7 +212,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
210
212
  version: '0'
211
213
  requirements: []
212
214
  rubyforge_project: snippr
213
- rubygems_version: 2.0.3
215
+ rubygems_version: 2.0.4
214
216
  signing_key:
215
217
  specification_version: 4
216
218
  summary: File based content management