neo4j 1.1.0-java → 1.1.1-java
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/CHANGELOG +6 -1
 - data/README.rdoc +2 -1
 - data/lib/neo4j.rb +7 -0
 - data/lib/neo4j/algo/algo.rb +2 -1
 - data/lib/neo4j/config.rb +1 -1
 - data/lib/neo4j/core_ext/class/inheritable_attributes.rb +37 -0
 - data/lib/neo4j/node_mixin/node_mixin.rb +2 -2
 - data/lib/neo4j/rails/attributes.rb +2 -2
 - data/lib/neo4j/rails/callbacks.rb +6 -2
 - data/lib/neo4j/relationship_mixin/relationship_mixin.rb +1 -1
 - data/lib/neo4j/type_converters/type_converters.rb +10 -2
 - data/lib/neo4j/version.rb +1 -1
 - metadata +3 -2
 
    
        data/CHANGELOG
    CHANGED
    
    | 
         @@ -1,4 +1,9 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            == 1.1. 
     | 
| 
      
 1 
     | 
    
         
            +
            == 1.1.1 / 2011-06-26
         
     | 
| 
      
 2 
     | 
    
         
            +
            * Made neo4j compatible with rails 3.1.0.rc1 [#170]
         
     | 
| 
      
 3 
     | 
    
         
            +
            * Fix for neo4j-devise [#171]
         
     | 
| 
      
 4 
     | 
    
         
            +
            * BUG: Neo4j::GraphAlgo shortest path does raise exception if two nodes are not connected [#172]
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
             == 1.1.0 / 2011-05-13
         
     | 
| 
       2 
7 
     | 
    
         
             
            * Support for embedding neo4j.rb by providing an already running db instance (#168)
         
     | 
| 
       3 
8 
     | 
    
         
             
            * Neo4j::Rails::Relationships should be ActiveModel compliant (#156)
         
     | 
| 
       4 
9 
     | 
    
         
             
            * Support for incoming relationships in Neo4j::Rails::Model (#157)
         
     | 
    
        data/README.rdoc
    CHANGED
    
    | 
         @@ -92,6 +92,7 @@ Example of using Neo4j with Rails 3 (ActiveModel) 
     | 
|
| 
       92 
92 
     | 
    
         
             
            ==== Generate a Rails Application
         
     | 
| 
       93 
93 
     | 
    
         | 
| 
       94 
94 
     | 
    
         
             
            Example of creating an Neo4j Application from scratch:
         
     | 
| 
      
 95 
     | 
    
         
            +
            (make sure you have installed JRuby version >= 1.6.2)
         
     | 
| 
       95 
96 
     | 
    
         | 
| 
       96 
97 
     | 
    
         
             
             gem install rails
         
     | 
| 
       97 
98 
     | 
    
         
             
             rails new myapp -m http://andreasronge.github.com/rails3.rb
         
     | 
| 
         @@ -108,7 +109,7 @@ To run it with Tomcat instead of WEBrick 
     | 
|
| 
       108 
109 
     | 
    
         | 
| 
       109 
110 
     | 
    
         | 
| 
       110 
111 
     | 
    
         
             
            === Presentation Materials and other URLs
         
     | 
| 
       111 
     | 
    
         
            -
            * { 
     | 
| 
      
 112 
     | 
    
         
            +
            * {Presentation: RailsConf 2011}[http://andreasronge.github.com/neo4j-railsconf.pdf]
         
     | 
| 
       112 
113 
     | 
    
         
             
            * {Nordic Ruby 2010 May 21-23}[http://nordicruby.org/speakers#user_29]
         
     | 
| 
       113 
114 
     | 
    
         
             
            * {Neo4j wiki, check the guidelines and domain modeling gallery pages}[http://wiki.neo4j.org/content/Main_Page]
         
     | 
| 
       114 
115 
     | 
    
         | 
    
        data/lib/neo4j.rb
    CHANGED
    
    | 
         @@ -6,11 +6,18 @@ require 'tmpdir' 
     | 
|
| 
       6 
6 
     | 
    
         | 
| 
       7 
7 
     | 
    
         
             
            # Rails
         
     | 
| 
       8 
8 
     | 
    
         
             
            require 'rails/railtie'
         
     | 
| 
      
 9 
     | 
    
         
            +
            require 'active_support/core_ext/class/inheritable_attributes'
         
     | 
| 
      
 10 
     | 
    
         
            +
            require 'active_support/core_ext/hash/indifferent_access'
         
     | 
| 
       9 
11 
     | 
    
         
             
            require 'active_model'
         
     | 
| 
       10 
12 
     | 
    
         | 
| 
       11 
13 
     | 
    
         
             
            require 'will_paginate/collection'
         
     | 
| 
       12 
14 
     | 
    
         
             
            require 'will_paginate/finders/base'
         
     | 
| 
       13 
15 
     | 
    
         | 
| 
      
 16 
     | 
    
         
            +
            # core extensions
         
     | 
| 
      
 17 
     | 
    
         
            +
            require 'neo4j/core_ext/class/inheritable_attributes'
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
            # Jars
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
       14 
21 
     | 
    
         
             
            require 'neo4j/jars/core/geronimo-jta_1.1_spec-1.1.1.jar'
         
     | 
| 
       15 
22 
     | 
    
         
             
            require 'neo4j/jars/core/lucene-core-3.0.3.jar'
         
     | 
| 
       16 
23 
     | 
    
         
             
            require 'neo4j/jars/core/neo4j-lucene-index-1.3.jar'
         
     | 
    
        data/lib/neo4j/algo/algo.rb
    CHANGED
    
    
    
        data/lib/neo4j/config.rb
    CHANGED
    
    | 
         @@ -145,7 +145,7 @@ module Neo4j 
     | 
|
| 
       145 
145 
     | 
    
         
             
                  # The a new configuration using default values as a hash.
         
     | 
| 
       146 
146 
     | 
    
         
             
                  #
         
     | 
| 
       147 
147 
     | 
    
         
             
                  def setup()
         
     | 
| 
       148 
     | 
    
         
            -
                    @configuration =  
     | 
| 
      
 148 
     | 
    
         
            +
                    @configuration = defaults.with_indifferent_access #nested_under_indifferent_access
         
     | 
| 
       149 
149 
     | 
    
         
             
                    @configuration.merge!(defaults)
         
     | 
| 
       150 
150 
     | 
    
         
             
                    @configuration
         
     | 
| 
       151 
151 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -0,0 +1,37 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # This is copied from Rails Active Support since it has been depricated and I still need it
         
     | 
| 
      
 2 
     | 
    
         
            +
            class Class # :nodoc:
         
     | 
| 
      
 3 
     | 
    
         
            +
              def class_inheritable_reader(*syms)
         
     | 
| 
      
 4 
     | 
    
         
            +
                options = syms.extract_options!
         
     | 
| 
      
 5 
     | 
    
         
            +
                syms.each do |sym|
         
     | 
| 
      
 6 
     | 
    
         
            +
                  next if sym.is_a?(Hash)
         
     | 
| 
      
 7 
     | 
    
         
            +
                  class_eval(<<-EOS, __FILE__, __LINE__ + 1)
         
     | 
| 
      
 8 
     | 
    
         
            +
                    def self.#{sym}                                # def self.after_add
         
     | 
| 
      
 9 
     | 
    
         
            +
                      read_inheritable_attribute(:#{sym})          #   read_inheritable_attribute(:after_add)
         
     | 
| 
      
 10 
     | 
    
         
            +
                    end                                            # end
         
     | 
| 
      
 11 
     | 
    
         
            +
                                                                   #
         
     | 
| 
      
 12 
     | 
    
         
            +
                    #{"                                            #
         
     | 
| 
      
 13 
     | 
    
         
            +
                    def #{sym}                                     # def after_add
         
     | 
| 
      
 14 
     | 
    
         
            +
                      self.class.#{sym}                            #   self.class.after_add
         
     | 
| 
      
 15 
     | 
    
         
            +
                    end                                            # end
         
     | 
| 
      
 16 
     | 
    
         
            +
                    " unless options[:instance_reader] == false }  # # the reader above is generated unless options[:instance_reader] == false
         
     | 
| 
      
 17 
     | 
    
         
            +
                  EOS
         
     | 
| 
      
 18 
     | 
    
         
            +
                end
         
     | 
| 
      
 19 
     | 
    
         
            +
              end
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
              def class_inheritable_writer(*syms)
         
     | 
| 
      
 22 
     | 
    
         
            +
                options = syms.extract_options!
         
     | 
| 
      
 23 
     | 
    
         
            +
                syms.each do |sym|
         
     | 
| 
      
 24 
     | 
    
         
            +
                  class_eval(<<-EOS, __FILE__, __LINE__ + 1)
         
     | 
| 
      
 25 
     | 
    
         
            +
                    def self.#{sym}=(obj)                          # def self.color=(obj)
         
     | 
| 
      
 26 
     | 
    
         
            +
                      write_inheritable_attribute(:#{sym}, obj)    #   write_inheritable_attribute(:color, obj)
         
     | 
| 
      
 27 
     | 
    
         
            +
                    end                                            # end
         
     | 
| 
      
 28 
     | 
    
         
            +
                                                                   #
         
     | 
| 
      
 29 
     | 
    
         
            +
                    #{"                                            #
         
     | 
| 
      
 30 
     | 
    
         
            +
                    def #{sym}=(obj)                               # def color=(obj)
         
     | 
| 
      
 31 
     | 
    
         
            +
                      self.class.#{sym} = obj                      #   self.class.color = obj
         
     | 
| 
      
 32 
     | 
    
         
            +
                    end                                            # end
         
     | 
| 
      
 33 
     | 
    
         
            +
                    " unless options[:instance_writer] == false }  # # the writer above is generated unless options[:instance_writer] == false
         
     | 
| 
      
 34 
     | 
    
         
            +
                  EOS
         
     | 
| 
      
 35 
     | 
    
         
            +
                end
         
     | 
| 
      
 36 
     | 
    
         
            +
              end
         
     | 
| 
      
 37 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -107,10 +107,10 @@ module Neo4j 
     | 
|
| 
       107 
107 
     | 
    
         
             
                    end
         
     | 
| 
       108 
108 
     | 
    
         
             
                  end unless c.respond_to?(:orig_new)
         
     | 
| 
       109 
109 
     | 
    
         | 
| 
       110 
     | 
    
         
            -
                  c. 
     | 
| 
      
 110 
     | 
    
         
            +
                  c.class_inheritable_accessor :_decl_props
         
     | 
| 
       111 
111 
     | 
    
         
             
                  c._decl_props ||= {}
         
     | 
| 
       112 
112 
     | 
    
         | 
| 
       113 
     | 
    
         
            -
                  c. 
     | 
| 
      
 113 
     | 
    
         
            +
                  c.class_inheritable_accessor :_decl_rels
         
     | 
| 
       114 
114 
     | 
    
         
             
                  c._decl_rels ||= {}
         
     | 
| 
       115 
115 
     | 
    
         | 
| 
       116 
116 
     | 
    
         
             
                  c.extend ClassMethods
         
     | 
| 
         @@ -15,7 +15,7 @@ module Neo4j 
     | 
|
| 
       15 
15 
     | 
    
         
             
                    include ActiveModel::Dirty # track changes to attributes
         
     | 
| 
       16 
16 
     | 
    
         
             
                    include ActiveModel::MassAssignmentSecurity # handle attribute hash assignment
         
     | 
| 
       17 
17 
     | 
    
         | 
| 
       18 
     | 
    
         
            -
                     
     | 
| 
      
 18 
     | 
    
         
            +
                    class_inheritable_accessor :attribute_defaults
         
     | 
| 
       19 
19 
     | 
    
         
             
                    self.attribute_defaults ||= {}
         
     | 
| 
       20 
20 
     | 
    
         | 
| 
       21 
21 
     | 
    
         
             
                    # save the original [] and []= to use as read/write to Neo4j
         
     | 
| 
         @@ -36,7 +36,7 @@ module Neo4j 
     | 
|
| 
       36 
36 
     | 
    
         
             
                  # and callbacks are run to ensure correctness
         
     | 
| 
       37 
37 
     | 
    
         
             
                  def write_local_property(key, value)
         
     | 
| 
       38 
38 
     | 
    
         
             
                    key_s = key.to_s
         
     | 
| 
       39 
     | 
    
         
            -
                    if @properties[key_s] != value
         
     | 
| 
      
 39 
     | 
    
         
            +
                    if !@properties.has_key?(key_s) || @properties[key_s] != value
         
     | 
| 
       40 
40 
     | 
    
         
             
                      attribute_will_change!(key_s)
         
     | 
| 
       41 
41 
     | 
    
         
             
                      @properties[key_s] = value
         
     | 
| 
       42 
42 
     | 
    
         
             
                    end
         
     | 
| 
         @@ -4,13 +4,17 @@ module Neo4j 
     | 
|
| 
       4 
4 
     | 
    
         
             
            			extend ActiveSupport::Concern
         
     | 
| 
       5 
5 
     | 
    
         | 
| 
       6 
6 
     | 
    
         
             
            			included do
         
     | 
| 
       7 
     | 
    
         
            -
            				[:create_or_update, :create, :update, :destroy].each do |method|
         
     | 
| 
      
 7 
     | 
    
         
            +
            				[:valid?, :create_or_update, :create, :update, :destroy].each do |method|
         
     | 
| 
       8 
8 
     | 
    
         
             
            					alias_method_chain method, :callbacks
         
     | 
| 
       9 
9 
     | 
    
         
             
            				end
         
     | 
| 
       10 
10 
     | 
    
         | 
| 
       11 
11 
     | 
    
         
             
            				extend ActiveModel::Callbacks
         
     | 
| 
       12 
12 
     | 
    
         | 
| 
       13 
     | 
    
         
            -
            				define_model_callbacks :create, :save, :update, :destroy 
     | 
| 
      
 13 
     | 
    
         
            +
            				define_model_callbacks :validation, :create, :save, :update, :destroy
         
     | 
| 
      
 14 
     | 
    
         
            +
            			end
         
     | 
| 
      
 15 
     | 
    
         
            +
            			
         
     | 
| 
      
 16 
     | 
    
         
            +
            			def valid_with_callbacks?(*) #:nodoc:
         
     | 
| 
      
 17 
     | 
    
         
            +
            			  _run_validation_callbacks { valid_without_callbacks? }
         
     | 
| 
       14 
18 
     | 
    
         
             
            			end
         
     | 
| 
       15 
19 
     | 
    
         | 
| 
       16 
20 
     | 
    
         
             
            			def destroy_with_callbacks #:nodoc:
         
     | 
| 
         @@ -135,7 +135,11 @@ module Neo4j 
     | 
|
| 
       135 
135 
     | 
    
         
             
                    # Only utc times are supported !
         
     | 
| 
       136 
136 
     | 
    
         
             
                    def to_java(value)
         
     | 
| 
       137 
137 
     | 
    
         
             
                      return nil if value.nil?
         
     | 
| 
       138 
     | 
    
         
            -
                       
     | 
| 
      
 138 
     | 
    
         
            +
                      if value.class == Date
         
     | 
| 
      
 139 
     | 
    
         
            +
                        Time.utc(value.year, value.month, value.day, 0, 0, 0).to_i
         
     | 
| 
      
 140 
     | 
    
         
            +
                      else
         
     | 
| 
      
 141 
     | 
    
         
            +
                        Time.utc(value.year, value.month, value.day, value.hour, value.min, value.sec).to_i
         
     | 
| 
      
 142 
     | 
    
         
            +
                      end
         
     | 
| 
       139 
143 
     | 
    
         
             
                    end
         
     | 
| 
       140 
144 
     | 
    
         | 
| 
       141 
145 
     | 
    
         
             
                    def to_ruby(value)
         
     | 
| 
         @@ -157,7 +161,11 @@ module Neo4j 
     | 
|
| 
       157 
161 
     | 
    
         
             
                    # Only utc times are supported !
         
     | 
| 
       158 
162 
     | 
    
         
             
                    def to_java(value)
         
     | 
| 
       159 
163 
     | 
    
         
             
                      return nil if value.nil?
         
     | 
| 
       160 
     | 
    
         
            -
                      value. 
     | 
| 
      
 164 
     | 
    
         
            +
                      if value.class == Date
         
     | 
| 
      
 165 
     | 
    
         
            +
                        Time.utc(value.year, value.month, value.day, 0, 0, 0).to_i
         
     | 
| 
      
 166 
     | 
    
         
            +
                      else
         
     | 
| 
      
 167 
     | 
    
         
            +
                        value.utc.to_i
         
     | 
| 
      
 168 
     | 
    
         
            +
                      end
         
     | 
| 
       161 
169 
     | 
    
         
             
                    end
         
     | 
| 
       162 
170 
     | 
    
         | 
| 
       163 
171 
     | 
    
         
             
                    def to_ruby(value)
         
     | 
    
        data/lib/neo4j/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | 
         @@ -2,7 +2,7 @@ 
     | 
|
| 
       2 
2 
     | 
    
         
             
            name: neo4j
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version 
         
     | 
| 
       4 
4 
     | 
    
         
             
              prerelease: 
         
     | 
| 
       5 
     | 
    
         
            -
              version: 1.1. 
     | 
| 
      
 5 
     | 
    
         
            +
              version: 1.1.1
         
     | 
| 
       6 
6 
     | 
    
         
             
            platform: java
         
     | 
| 
       7 
7 
     | 
    
         
             
            authors: 
         
     | 
| 
       8 
8 
     | 
    
         
             
              - Andreas Ronge
         
     | 
| 
         @@ -10,7 +10,7 @@ autorequire: 
     | 
|
| 
       10 
10 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       11 
11 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       12 
12 
     | 
    
         | 
| 
       13 
     | 
    
         
            -
            date: 2011-05- 
     | 
| 
      
 13 
     | 
    
         
            +
            date: 2011-05-26 00:00:00 +02:00
         
     | 
| 
       14 
14 
     | 
    
         
             
            default_executable: 
         
     | 
| 
       15 
15 
     | 
    
         
             
            dependencies: 
         
     | 
| 
       16 
16 
     | 
    
         
             
              - !ruby/object:Gem::Dependency 
         
     | 
| 
         @@ -107,6 +107,7 @@ files: 
     | 
|
| 
       107 
107 
     | 
    
         
             
              - lib/neo4j/relationship_mixin/relationship_mixin.rb
         
     | 
| 
       108 
108 
     | 
    
         
             
              - lib/neo4j/relationship_mixin/class_methods.rb
         
     | 
| 
       109 
109 
     | 
    
         
             
              - lib/neo4j/type_converters/type_converters.rb
         
     | 
| 
      
 110 
     | 
    
         
            +
              - lib/neo4j/core_ext/class/inheritable_attributes.rb
         
     | 
| 
       110 
111 
     | 
    
         
             
              - lib/neo4j/migrations/migrations.rb
         
     | 
| 
       111 
112 
     | 
    
         
             
              - lib/neo4j/migrations/lazy_node_mixin.rb
         
     | 
| 
       112 
113 
     | 
    
         
             
              - lib/neo4j/migrations/extensions.rb
         
     |