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: []
         |