orange 0.2.5 → 0.2.6
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.
@@ -6,7 +6,7 @@ module Orange
|
|
6
6
|
class Radius < Resource
|
7
7
|
call_me :radius
|
8
8
|
def afterLoad
|
9
|
-
@context = ::Radius::
|
9
|
+
@context = ::Radius::PacketContext.new
|
10
10
|
orange.fire(:radius_loaded, self)
|
11
11
|
end
|
12
12
|
|
@@ -18,10 +18,18 @@ module Orange
|
|
18
18
|
@context.define_tag(*args, &block)
|
19
19
|
end
|
20
20
|
|
21
|
+
def parse_text(packet, text = false)
|
22
|
+
content = text
|
23
|
+
unless content.blank?
|
24
|
+
parser = ::Radius::PacketParser.new(context, :tag_prefix => 'o')
|
25
|
+
parser.parse(content, packet)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
21
29
|
def parse(packet)
|
22
30
|
content = packet[:content, false]
|
23
31
|
unless content.blank?
|
24
|
-
parser = ::Radius::
|
32
|
+
parser = ::Radius::PacketParser.new(context, :tag_prefix => 'o')
|
25
33
|
packet[:content] = parser.parse(content, packet)
|
26
34
|
end
|
27
35
|
end
|
@@ -34,7 +42,7 @@ module Radius
|
|
34
42
|
# defines how tags should be expanded. See the QUICKSTART[link:files/QUICKSTART.html]
|
35
43
|
# for a detailed explaination of its usage.
|
36
44
|
#
|
37
|
-
class Parser
|
45
|
+
class PacketParser < Parser
|
38
46
|
def parse(string, packet = false)
|
39
47
|
@stack = [ParseContainerTag.new { |t| t.contents.to_s }]
|
40
48
|
tokenize(string)
|
@@ -69,7 +77,7 @@ module Radius
|
|
69
77
|
raise MissingEndTagError.new(@stack.last.name, @stack) if @stack.length != 1
|
70
78
|
end
|
71
79
|
end
|
72
|
-
class Context
|
80
|
+
class PacketContext < Context
|
73
81
|
|
74
82
|
# Returns the value of a rendered tag. Used internally by Parser#parse.
|
75
83
|
def render_tag(name, attributes = {}, packet = false, &block)
|
@@ -2,14 +2,14 @@ module Orange
|
|
2
2
|
class Slices < Orange::Resource
|
3
3
|
call_me :slices
|
4
4
|
def stack_init
|
5
|
-
orange[:radius].
|
5
|
+
orange[:radius].define_tag "slice" do |tag|
|
6
6
|
content = ''
|
7
7
|
resource = (tag.attr['resource'] || :slices).to_sym
|
8
8
|
id = tag.attr['id'] || nil
|
9
9
|
mode = (tag.attr['mode'] || tag.attr['chunk'] || (id ? :show : :index )).to_sym
|
10
10
|
if orange.loaded?(resource)
|
11
11
|
if orange[resource].respond_to?(mode) || resource == :slices
|
12
|
-
content << (id ? orange[resource].__send__(mode, tag.locals.packet, :id => id) : orange[resource].__send__(mode, tag.locals.packet))
|
12
|
+
content << (id ? orange[resource].__send__(mode, tag.locals.packet, :id => id) : orange[resource].__send__(mode, tag.locals.packet, {:attrs => tag.attr}))
|
13
13
|
else
|
14
14
|
content << "resource #{resource} doesn't respond to #{mode}"
|
15
15
|
end
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 2
|
8
|
-
-
|
9
|
-
version: 0.2.
|
8
|
+
- 6
|
9
|
+
version: 0.2.6
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- David Haslem
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-05-
|
17
|
+
date: 2010-05-09 00:00:00 -04:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|