skates 0.3.4 → 0.3.5

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.
data/Rakefile CHANGED
@@ -12,7 +12,7 @@ begin
12
12
 
13
13
  gem.add_dependency('eventmachine', ">= 0.12.10")
14
14
  gem.add_dependency('log4r')
15
- gem.add_dependency('nokogiri', ">= 1.4.1")
15
+ gem.add_dependency('nokogiri', "= 1.4.2")
16
16
  gem.add_dependency('utf8cleaner')
17
17
  gem.requirements = ["eventmachine", "yaml", "fileutils", "log4r", "nokogiri", "optparse", "digest/sha1", "base64", "resolv", "utf8cleaner"]
18
18
  gem.executables = "skates"
@@ -17,6 +17,7 @@ module Skates
17
17
  def render(xml, options = {})
18
18
  # First, we need to identify the partial file path, based on the @view_template path.
19
19
  partial_path = (@view_template.split("/")[0..-2] + options[:partial].split("/")).join("/").gsub(".xml.builder", "") + ".xml.builder"
20
+ partial_path = Pathname.new(partial_path).cleanpath.to_s
20
21
  raise ViewFileNotFound, "No such file #{partial_path}" unless Skates.views[partial_path]
21
22
  saved_locals = @locals
22
23
  @locals = options[:locals]
data/lib/skates.rb CHANGED
@@ -11,6 +11,7 @@ require 'base64'
11
11
  require 'resolv'
12
12
  require 'cgi'
13
13
  require 'utf8cleaner'
14
+ require 'pathname'
14
15
 
15
16
  require 'skates/ext/array.rb'
16
17
  require 'skates/xmpp_connection'
@@ -1,14 +1,14 @@
1
1
  require File.dirname(__FILE__) + '/../../../spec_helper'
2
2
 
3
3
  describe Skates::Base::View do
4
- describe ".initialize" do
4
+ describe :initialize do
5
5
 
6
6
  before(:each) do
7
- @view = Skates::Base::View.new("/a/path/to/a/view/file", {:a => "a", :b => 123, :c => {:d => "d", :e => "123"}})
7
+ @view = Skates::Base::View.new("/a/path/to/views/file", {:a => "a", :b => 123, :c => {:d => "d", :e => "123"}})
8
8
  end
9
9
 
10
10
  it "should assign @view_template to path" do
11
- @view.view_template == "/a/path/to/a/view/file"
11
+ @view.view_template == "/a/path/to/views/file"
12
12
  end
13
13
 
14
14
  it "should assign any variable passed in hash" do
@@ -18,9 +18,9 @@ describe Skates::Base::View do
18
18
  end
19
19
  end
20
20
 
21
- describe ".evaluate" do
21
+ describe :evaluate do
22
22
  before(:each) do
23
- @view_template = "/a/path/to/a/view/file"
23
+ @view_template = "/a/path/to/views/file"
24
24
  @view = Skates::Base::View.new(@view_template, {:a => "a", :b => 123, :c => {:d => "d", :e => "123"}})
25
25
  @xml_string = <<-eoxml
26
26
  xml.message(:to => "you", :from => "me", :type => :chat) do
@@ -54,29 +54,38 @@ describe Skates::Base::View do
54
54
  end
55
55
 
56
56
  it "should be able to access context's variables" do
57
- @view = Skates::Base::View.new("/a/path/to/a/view/file", {:a => "a", :b => 123, :c => {:d => "d", :e => "123"}})
57
+ @view = Skates::Base::View.new("/a/path/to/views/file", {:a => "a", :b => 123, :c => {:d => "d", :e => "123"}})
58
58
  @view.instance_variable_get("@a").should == "a"
59
59
  @view.instance_variable_get("@b").should == 123
60
60
  @view.instance_variable_get("@c").should == {:e=>"123", :d=>"d"}
61
61
  end
62
62
  end
63
63
 
64
- describe "render" do
64
+ describe :render do
65
65
  before(:each) do
66
- @view_template = "/a/path/to/a/view/file"
66
+ @view_template = "/a/path/to/views/file"
67
67
  @view = Skates::Base::View.new(@view_template, {:a => "a", :b => 123, :c => {:d => "d", :e => "123"}})
68
+
68
69
  @xml_string = <<-eoxml
69
70
  xml.message(:to => "you", :from => "me", :type => :chat) do |message|
70
71
  message.body("salut")
71
72
  render(message, {:partial => "partial", :locals => {:subtitle => "bonjour monde"}})
73
+ render(message, {:partial => "../other_views/partial", :locals => {:subtitle => "bonjour monde", :name => "Joe"}})
72
74
  end
73
75
  eoxml
76
+
74
77
  @partial_string = <<-eoxml
75
78
  xml.title("hello word")
76
79
  xml.subtitle(subtitle)
77
80
  eoxml
81
+
82
+ @partial_in_annother_controller_string = <<-eoxml
83
+ xml.name(name)
84
+ eoxml
85
+
78
86
  Skates.views.stub!(:[]).with(@view_template).and_return(@xml_string)
79
- Skates.views.stub!(:[]).with("/a/path/to/a/view/partial.xml.builder").and_return(@partial_string)
87
+ Skates.views.stub!(:[]).with("/a/path/to/views/partial.xml.builder").and_return(@partial_string)
88
+ Skates.views.stub!(:[]).with("/a/path/to/other_views/partial.xml.builder").and_return(@partial_in_annother_controller_string)
80
89
  end
81
90
 
82
91
  it "should render the partial in the right context" do
@@ -87,6 +96,10 @@ describe Skates::Base::View do
87
96
  @view.evaluate.xpath("//message/subtitle").text.should == "bonjour monde"
88
97
  end
89
98
 
99
+ it "should cleanup the path so only canonical paths are used" do
100
+ @view.evaluate.xpath("//message/name").text.should == "Joe"
101
+ end
102
+
90
103
  end
91
104
 
92
105
  end
metadata CHANGED
@@ -1,12 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: skates
3
3
  version: !ruby/object:Gem::Version
4
+ hash: 25
4
5
  prerelease: false
5
6
  segments:
6
7
  - 0
7
8
  - 3
8
- - 4
9
- version: 0.3.4
9
+ - 5
10
+ version: 0.3.5
10
11
  platform: ruby
11
12
  authors:
12
13
  - julien Genestoux
@@ -14,16 +15,18 @@ autorequire:
14
15
  bindir: bin
15
16
  cert_chain: []
16
17
 
17
- date: 2010-05-03 00:00:00 +02:00
18
+ date: 2010-08-17 00:00:00 +02:00
18
19
  default_executable: skates
19
20
  dependencies:
20
21
  - !ruby/object:Gem::Dependency
21
22
  name: eventmachine
22
23
  prerelease: false
23
24
  requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
24
26
  requirements:
25
27
  - - ">="
26
28
  - !ruby/object:Gem::Version
29
+ hash: 59
27
30
  segments:
28
31
  - 0
29
32
  - 12
@@ -35,9 +38,11 @@ dependencies:
35
38
  name: log4r
36
39
  prerelease: false
37
40
  requirement: &id002 !ruby/object:Gem::Requirement
41
+ none: false
38
42
  requirements:
39
43
  - - ">="
40
44
  - !ruby/object:Gem::Version
45
+ hash: 3
41
46
  segments:
42
47
  - 0
43
48
  version: "0"
@@ -47,23 +52,27 @@ dependencies:
47
52
  name: nokogiri
48
53
  prerelease: false
49
54
  requirement: &id003 !ruby/object:Gem::Requirement
55
+ none: false
50
56
  requirements:
51
- - - ">="
57
+ - - "="
52
58
  - !ruby/object:Gem::Version
59
+ hash: 3
53
60
  segments:
54
61
  - 1
55
62
  - 4
56
- - 1
57
- version: 1.4.1
63
+ - 2
64
+ version: 1.4.2
58
65
  type: :runtime
59
66
  version_requirements: *id003
60
67
  - !ruby/object:Gem::Dependency
61
68
  name: utf8cleaner
62
69
  prerelease: false
63
70
  requirement: &id004 !ruby/object:Gem::Requirement
71
+ none: false
64
72
  requirements:
65
73
  - - ">="
66
74
  - !ruby/object:Gem::Version
75
+ hash: 3
67
76
  segments:
68
77
  - 0
69
78
  version: "0"
@@ -108,6 +117,22 @@ files:
108
117
  - templates/skates/log/test.log
109
118
  - templates/skates/script/component
110
119
  - templates/skates/tmp/pids/README
120
+ - spec/bin/skates_spec.rb
121
+ - spec/em_mock.rb
122
+ - spec/lib/skates/base/controller_spec.rb
123
+ - spec/lib/skates/base/stanza_spec.rb
124
+ - spec/lib/skates/base/view_spec.rb
125
+ - spec/lib/skates/client_connection_spec.rb
126
+ - spec/lib/skates/component_connection_spec.rb
127
+ - spec/lib/skates/generator_spec.rb
128
+ - spec/lib/skates/router/dsl_spec.rb
129
+ - spec/lib/skates/router_spec.rb
130
+ - spec/lib/skates/runner_spec.rb
131
+ - spec/lib/skates/xmpp_connection_spec.rb
132
+ - spec/lib/skates/xmpp_parser_spec.rb
133
+ - spec/spec_helper.rb
134
+ - test/skates_test.rb
135
+ - test/test_helper.rb
111
136
  has_rdoc: true
112
137
  homepage: http://github.com/julien51/skates
113
138
  licenses: []
@@ -118,16 +143,20 @@ rdoc_options:
118
143
  require_paths:
119
144
  - lib
120
145
  required_ruby_version: !ruby/object:Gem::Requirement
146
+ none: false
121
147
  requirements:
122
148
  - - ">="
123
149
  - !ruby/object:Gem::Version
150
+ hash: 3
124
151
  segments:
125
152
  - 0
126
153
  version: "0"
127
154
  required_rubygems_version: !ruby/object:Gem::Requirement
155
+ none: false
128
156
  requirements:
129
157
  - - ">="
130
158
  - !ruby/object:Gem::Version
159
+ hash: 3
131
160
  segments:
132
161
  - 0
133
162
  version: "0"
@@ -143,7 +172,7 @@ requirements:
143
172
  - resolv
144
173
  - utf8cleaner
145
174
  rubyforge_project: skates
146
- rubygems_version: 1.3.6
175
+ rubygems_version: 1.3.7
147
176
  signing_key:
148
177
  specification_version: 3
149
178
  summary: Skates is a framework to create EventMachine based XMPP External Components in Ruby.