neo4j 9.1.7 → 9.1.8

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 629a77a4c318a7b47878d92f72053bc34714092b
4
- data.tar.gz: 61dccf00f3e329d4ce1e4a9a7cd9074508068b97
3
+ metadata.gz: 842191c44b13a4617ba19ce62e6b5d3179678c1e
4
+ data.tar.gz: 43f5f578a72409ee07c739331212c72b0a4996be
5
5
  SHA512:
6
- metadata.gz: 4153c3488109fc16d8001e5f53d416baf0646e5790f16deb51f6e2eacf535ef52914b2c71929d39a2d7ce61847c3fce148ad04d3437e786f80836db314bcbeae
7
- data.tar.gz: 351b07006b2055702e5272c9bb9baaf88d99add95533f012afa6422a9114e64b6904e6b5d188026896a777a64c346b980cf7cecd449719af4aa0431394d78e9f
6
+ metadata.gz: c0f44c117c92a7ab2851d58ac0a515a3f72e63826fae0939088681832cce66022da8f3b6ea93319d413d3f80015e0ae2224435ab7f817ee1265e2ecf7557f586
7
+ data.tar.gz: 75ce59a03daf27109d80013780109b05c8573552631cc7ae26cb9f748e3ffe0d8ba1c2ae1d3d67d0450e04b216d0f04d78c4508a3439c53c4575af9467240e98
data/CHANGELOG.md CHANGED
@@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file.
3
3
  This file should follow the standards specified on [http://keepachangelog.com/]
4
4
  This project adheres to [Semantic Versioning](http://semver.org/).
5
5
 
6
+ ## [9.1.8] 2018-03-27
7
+
8
+ ## Fixed
9
+
10
+ - Micro-optimizations which help when dealing with a lot of data (thanks @jgaskins / see #1490)
11
+
6
12
  ## [9.1.7] 2018-03-27
7
13
 
8
14
  ## Fixed
@@ -7,13 +7,17 @@ module Neo4j::Shared
7
7
  include Neo4j::Shared::DeclaredProperty::Index
8
8
 
9
9
  ILLEGAL_PROPS = %w(from_node to_node start_node end_node)
10
- attr_reader :name, :name_string, :name_sym, :options, :magic_typecaster
10
+ attr_reader :name, :name_string, :name_sym, :options, :magic_typecaster, :type, :typecaster, :default_value
11
+ alias default default_value
11
12
 
12
13
  def initialize(name, options = {})
13
14
  fail IllegalPropertyError, "#{name} is an illegal property" if ILLEGAL_PROPS.include?(name.to_s)
14
15
  fail TypeError, "can't convert #{name.class} into Symbol" unless name.respond_to?(:to_sym)
15
16
  @name = @name_sym = name.to_sym
16
17
  @name_string = name.to_s
18
+ @type = options[:type]
19
+ @typecaster = options[:typecaster]
20
+ @default_value = options[:default]
17
21
  @options = options
18
22
  fail_invalid_options!
19
23
  end
@@ -55,19 +59,6 @@ module Neo4j::Shared
55
59
  register_magic_properties
56
60
  end
57
61
 
58
- def type
59
- options[:type]
60
- end
61
-
62
- def typecaster
63
- options[:typecaster]
64
- end
65
-
66
- def default_value
67
- options[:default]
68
- end
69
- alias default default_value
70
-
71
62
  def fail_invalid_options!
72
63
  case
73
64
  when index?(:exact) && constraint?(:unique)
@@ -89,7 +80,7 @@ module Neo4j::Shared
89
80
 
90
81
  # Tweaks properties
91
82
  def register_magic_properties
92
- options[:type] ||= Neo4j::Config.timestamp_type if timestamp_prop?
83
+ @type ||= Neo4j::Config.timestamp_type if timestamp_prop?
93
84
 
94
85
  register_magic_typecaster
95
86
  register_type_converter
@@ -100,18 +91,18 @@ module Neo4j::Shared
100
91
  end
101
92
 
102
93
  def register_magic_typecaster
103
- found_typecaster = Neo4j::Shared::TypeConverters.typecaster_for(options[:type])
94
+ found_typecaster = Neo4j::Shared::TypeConverters.typecaster_for(type)
104
95
  return unless found_typecaster && found_typecaster.respond_to?(:primitive_type)
105
- options[:typecaster] = found_typecaster
106
- @magic_typecaster = options[:type]
107
- options[:type] = found_typecaster.primitive_type
96
+ @typecaster = found_typecaster
97
+ @magic_typecaster = type
98
+ @type = found_typecaster.primitive_type
108
99
  end
109
100
 
110
101
  def register_type_converter
111
102
  converter = options[:serializer]
112
103
  return unless converter
113
- options[:type] = converter.convert_type
114
- options[:typecaster] = Neo4j::Shared::TypeConverters::ObjectConverter
104
+ @type = converter.convert_type
105
+ @typecaster = Neo4j::Shared::TypeConverters::ObjectConverter
115
106
  Neo4j::Shared::TypeConverters.register_converter(converter)
116
107
  end
117
108
  end
@@ -101,7 +101,7 @@ module Neo4j::Shared
101
101
  end
102
102
 
103
103
  class BooleanConverter < BaseConverter
104
- FALSE_VALUES = %w(n N no No NO false False FALSE off Off OFF f F)
104
+ FALSE_VALUES = %w(n N no No NO false False FALSE off Off OFF f F).to_set
105
105
 
106
106
  class << self
107
107
  def converted?(value)
@@ -362,24 +362,24 @@ module Neo4j::Shared
362
362
 
363
363
  def converted_property(type, value, direction)
364
364
  return nil if value.nil?
365
- type.respond_to?(:db_type) || TypeConverters::CONVERTERS[type] ? TypeConverters.to_other(direction, value, type) : value
365
+ CONVERTERS[type] || type.respond_to?(:db_type) ? TypeConverters.to_other(direction, value, type) : value
366
366
  end
367
367
 
368
368
  # If the attribute is to be typecast using a custom converter, which converter should it use? If no, returns the type to find a native serializer.
369
369
  def primitive_type(attr)
370
370
  case
371
- when self.serialized_properties_keys.include?(attr)
371
+ when serialized_properties.include?(attr)
372
372
  serialized_properties[attr]
373
- when self.magic_typecast_properties_keys.include?(attr)
374
- self.magic_typecast_properties[attr]
373
+ when magic_typecast_properties.include?(attr)
374
+ magic_typecast_properties[attr]
375
375
  else
376
- self.fetch_upstream_primitive(attr)
376
+ fetch_upstream_primitive(attr)
377
377
  end
378
378
  end
379
379
 
380
380
  # Returns true if the property isn't defined in the model or if it is nil
381
381
  def skip_conversion?(obj, attr, value)
382
- !obj.class.attributes[attr] || value.nil?
382
+ value.nil? || !obj.class.attributes.key?(attr)
383
383
  end
384
384
 
385
385
  class << self
data/lib/neo4j/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Neo4j
2
- VERSION = '9.1.7'
2
+ VERSION = '9.1.8'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: neo4j
3
3
  version: !ruby/object:Gem::Version
4
- version: 9.1.7
4
+ version: 9.1.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andreas Ronge, Brian Underwood, Chris Grigg