ancestry 2.2.0 → 2.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1b34c7c664ec5c1a9ac92379c65d9ea196658a3e
4
- data.tar.gz: 2d9ff6493829ef26b6b8f3591404f7567139c717
3
+ metadata.gz: d611bf01715a442ecd16502afc11ad026f4bb40e
4
+ data.tar.gz: 8f35de80e537902979302f933d969f9809164368
5
5
  SHA512:
6
- metadata.gz: d4b6408a4e4582b8cb654e4d38560f1f7b0b743b55023ff6668449a75847874036975faf53c74c18e75fbc59c6eb6d8d1c3bd7d22b28ce97595bcd5d56bd1f49
7
- data.tar.gz: b06389bb0d03045bd0f9f82ab2dac3db63c8ca2996c87bcc4f46bb9b71d876090bc136b928cd5ac9d2c3c6b62ed48cd0ca2175e5c5e9a0f6c2e169a6ef24e005
6
+ metadata.gz: d42e2cb51ccbebc16babbdc96f735391b41c1a0269fd3974139acfbdd95a38ce68995fcfbb515dc901b42339008d6053a60d881c51cf09ee95f0e631c4f0fff9
7
+ data.tar.gz: 8309d979e01d4475b55aced74260db7829d09f81bcc567c7daac66d1b422bd63e77a8257b8e379651f309157a5d350bd7c00a80adfb7ad06d047d731314ceece
@@ -37,6 +37,7 @@ EOF
37
37
 
38
38
  s.required_ruby_version = '>= 1.8.7'
39
39
  s.add_runtime_dependency 'activerecord', '>= 3.0.0'
40
+ s.add_development_dependency 'yard'
40
41
  s.add_development_dependency 'rake', '~> 10.0'
41
42
  s.add_development_dependency 'test-unit'
42
43
  s.add_development_dependency 'minitest'
@@ -43,8 +43,13 @@ class << ActiveRecord::Base
43
43
  scope :descendants_of, lambda { |object| where(to_node(object).descendant_conditions) }
44
44
  scope :subtree_of, lambda { |object| where(to_node(object).subtree_conditions) }
45
45
  scope :siblings_of, lambda { |object| where(to_node(object).sibling_conditions) }
46
- scope :ordered_by_ancestry, lambda { reorder("(CASE WHEN #{connection.quote_table_name(table_name)}.#{connection.quote_column_name(ancestry_column)} IS NULL THEN 0 ELSE 1 END), #{connection.quote_table_name(table_name)}.#{connection.quote_column_name(ancestry_column)}") }
47
- scope :ordered_by_ancestry_and, lambda { |order| reorder("(CASE WHEN #{connection.quote_table_name(table_name)}.#{connection.quote_column_name(ancestry_column)} IS NULL THEN 0 ELSE 1 END), #{connection.quote_table_name(table_name)}.#{connection.quote_column_name(ancestry_column)}, #{order}") }
46
+ if %w(mysql mysql2 sqlite postgresql).include?(connection.adapter_name.downcase)
47
+ scope :ordered_by_ancestry, lambda { reorder("coalesce(#{connection.quote_table_name(table_name)}.#{connection.quote_column_name(ancestry_column)}, '')") }
48
+ scope :ordered_by_ancestry_and, lambda { |order| reorder("coalesce(#{connection.quote_table_name(table_name)}.#{connection.quote_column_name(ancestry_column)}, ''), #{order}") }
49
+ else
50
+ scope :ordered_by_ancestry, lambda { reorder("(CASE WHEN #{connection.quote_table_name(table_name)}.#{connection.quote_column_name(ancestry_column)} IS NULL THEN 0 ELSE 1 END), #{connection.quote_table_name(table_name)}.#{connection.quote_column_name(ancestry_column)}") }
51
+ scope :ordered_by_ancestry_and, lambda { |order| reorder("(CASE WHEN #{connection.quote_table_name(table_name)}.#{connection.quote_column_name(ancestry_column)} IS NULL THEN 0 ELSE 1 END), #{connection.quote_table_name(table_name)}.#{connection.quote_column_name(ancestry_column)}, #{order}") }
52
+ end
48
53
  scope :path_of, lambda { |object| to_node(object).path }
49
54
 
50
55
  # Update descendants with new ancestry before save
@@ -256,7 +256,12 @@ module Ancestry
256
256
 
257
257
  def descendant_conditions
258
258
  t = get_arel_table
259
- t[get_ancestry_column].matches("#{child_ancestry}/%").or(t[get_ancestry_column].eq(child_ancestry))
259
+ # rails has case sensitive matching.
260
+ if defined?(ActiveRecord.version) && ActiveRecord.version.to_s >= "5"
261
+ t[get_ancestry_column].matches("#{child_ancestry}/%", nil, true).or(t[get_ancestry_column].eq(child_ancestry))
262
+ else
263
+ t[get_ancestry_column].matches("#{child_ancestry}/%").or(t[get_ancestry_column].eq(child_ancestry))
264
+ end
260
265
  end
261
266
 
262
267
  def descendants depth_options = {}
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ancestry
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.0
4
+ version: 2.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stefan Kroes
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: 3.0.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: yard
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: rake
29
43
  requirement: !ruby/object:Gem::Requirement