Module: ActiveGraph::Node::IdProperty::ClassMethods

Defined in:
lib/active_graph/node/id_property.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#manual_id_propertyObject

Returns the value of attribute manual_id_property.



127
128
129
# File 'lib/active_graph/node/id_property.rb', line 127

def manual_id_property
  @manual_id_property
end

Instance Method Details

#ensure_id_property_info!Object

Since there’s no way to know when a class is done being described, we wait until the id_property information is requested and use that as the opportunity to set up the defaults if no others are specified



178
179
180
181
182
183
184
185
# File 'lib/active_graph/node/id_property.rb', line 178

def ensure_id_property_info!
  if !manual_id_property? && !@id_property_info
    name, type, value = id_property_name_type_value
    id_property(name, type => value)
  end

  handle_model_schema!
end

#find_by_id(id) ⇒ Object



133
134
135
# File 'lib/active_graph/node/id_property.rb', line 133

def find_by_id(id)
  all.where(id_property_name => id).first
end

#find_by_ids(ids) ⇒ Object



137
138
139
# File 'lib/active_graph/node/id_property.rb', line 137

def find_by_ids(ids)
  all.where(id_property_name => ids).to_a
end

#find_by_neo_id(id) ⇒ Object



129
130
131
# File 'lib/active_graph/node/id_property.rb', line 129

def find_by_neo_id(id)
  find_by(neo_id: id)
end

#has_id_property?Boolean

rubocop:disable Naming/PredicateName

Returns:



149
150
151
152
153
# File 'lib/active_graph/node/id_property.rb', line 149

def has_id_property?
  ActiveSupport::Deprecation.warn 'has_id_property? is deprecated and may be removed from future releases, use id_property? instead.', caller

  id_property?
end

#id_property(name, conf = {}, inherited = false) ⇒ Object



141
142
143
144
145
146
# File 'lib/active_graph/node/id_property.rb', line 141

def id_property(name, conf = {}, inherited = false)
  self.manual_id_property = true

  @id_property_info = {name: name, type: conf, inherited: inherited}
  TypeMethods.define_id_methods(self, name, conf)
end

#id_property?Boolean

rubocop:enable Naming/PredicateName

Returns:



156
157
158
# File 'lib/active_graph/node/id_property.rb', line 156

def id_property?
  id_property_info && !id_property_info.empty?
end

#id_property_infoObject



160
161
162
163
164
# File 'lib/active_graph/node/id_property.rb', line 160

def id_property_info
  ensure_id_property_info!

  @id_property_info ||= {}
end

#id_property_nameObject Also known as: primary_key



166
167
168
# File 'lib/active_graph/node/id_property.rb', line 166

def id_property_name
  id_property_info[:name]
end

#manual_id_property?Boolean

Returns:



170
171
172
# File 'lib/active_graph/node/id_property.rb', line 170

def manual_id_property?
  !!manual_id_property
end