clj 0.0.7.1 → 0.0.7.2
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/ext/clj/parser.c +4 -16
- data/lib/clj/types.rb +5 -5
- metadata +5 -5
data/ext/clj/parser.c
CHANGED
@@ -113,33 +113,25 @@ static NodeType next_type (STATE)
|
|
113
113
|
static VALUE read_metadata (STATE)
|
114
114
|
{
|
115
115
|
VALUE result;
|
116
|
-
VALUE
|
117
|
-
size_t length = 0;
|
116
|
+
VALUE metadatas = rb_ary_new();
|
118
117
|
size_t i;
|
119
118
|
|
120
119
|
while (CURRENT == '^') {
|
121
|
-
metadatas = realloc(metadatas, ++length * sizeof(VALUE));
|
122
|
-
|
123
120
|
SEEK(1);
|
124
121
|
|
125
|
-
metadatas
|
122
|
+
rb_ary_push(metadatas, CALL(read_next));
|
126
123
|
}
|
127
124
|
|
128
125
|
result = CALL(read_next);
|
129
126
|
|
130
127
|
if (!rb_respond_to(result, rb_intern("metadata="))) {
|
131
|
-
free(metadatas);
|
132
|
-
|
133
128
|
rb_raise(rb_eSyntaxError, "the object cannot hold metadata");
|
134
129
|
}
|
135
130
|
|
136
|
-
|
137
|
-
|
138
|
-
rb_funcall(result, rb_intern("metadata="), 1, metadatas[i]);
|
131
|
+
for (i = 0; i < RARRAY_LEN(metadatas); i++) {
|
132
|
+
rb_funcall(result, rb_intern("metadata="), 1, RARRAY_PTR(metadatas)[i]);
|
139
133
|
}
|
140
134
|
|
141
|
-
free(metadatas);
|
142
|
-
|
143
135
|
return result;
|
144
136
|
}
|
145
137
|
|
@@ -536,8 +528,6 @@ static VALUE t_parse (VALUE self)
|
|
536
528
|
}
|
537
529
|
}
|
538
530
|
|
539
|
-
rb_gc_register_address(&source);
|
540
|
-
|
541
531
|
string = StringValueCStr(source);
|
542
532
|
result = read_next(self, string, &position);
|
543
533
|
|
@@ -547,8 +537,6 @@ static VALUE t_parse (VALUE self)
|
|
547
537
|
rb_raise(rb_eSyntaxError, "there is some unconsumed input");
|
548
538
|
}
|
549
539
|
|
550
|
-
rb_gc_unregister_address(&source);
|
551
|
-
|
552
540
|
return result;
|
553
541
|
}
|
554
542
|
|
data/lib/clj/types.rb
CHANGED
@@ -18,9 +18,9 @@ module Clojure
|
|
18
18
|
|
19
19
|
def metadata= (value)
|
20
20
|
metadata.merge! case value
|
21
|
-
when Hash then value
|
22
|
-
when Symbol then { value => true }
|
23
|
-
when String then { :tag => value }
|
21
|
+
when ::Hash then value
|
22
|
+
when ::Symbol then { value => true }
|
23
|
+
when ::String then { :tag => value }
|
24
24
|
else raise ArgumentError, 'the passed value is not suitable as metadata'
|
25
25
|
end
|
26
26
|
end
|
@@ -31,9 +31,9 @@ module Clojure
|
|
31
31
|
'^' + if @metadata.length == 1
|
32
32
|
piece = @metadata.first
|
33
33
|
|
34
|
-
if piece.first.is_a?(Symbol) && piece.last == true
|
34
|
+
if piece.first.is_a?(::Symbol) && piece.last == true
|
35
35
|
piece.first.to_clj(options)
|
36
|
-
elsif piece.first == :tag && piece.last.is_a?(String)
|
36
|
+
elsif piece.first == :tag && piece.last.is_a?(::String)
|
37
37
|
piece.last.to_clj(options)
|
38
38
|
else
|
39
39
|
@metadata.to_clj(options)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: clj
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.7.
|
4
|
+
version: 0.0.7.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2012-03-06 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|
16
|
-
requirement: &
|
16
|
+
requirement: &13297340 !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: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *13297340
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rspec
|
27
|
-
requirement: &
|
27
|
+
requirement: &13295740 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,7 +32,7 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *13295740
|
36
36
|
description:
|
37
37
|
email: meh@paranoici.org
|
38
38
|
executables: []
|