mongoid-path_extension 0.1.3 → 0.2.0

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
  SHA256:
3
- metadata.gz: 31c9fc4ee3ce866ace65ef1f12787390c8bb421039c7f33651f6e93ad257d91b
4
- data.tar.gz: 4582aefeab9450ef02a137979d864010d226ea0b952c2b530398d7f4af87f845
3
+ metadata.gz: d546c233ca871e5a593b7b15258fac16b11b95e5437e9de723e4466637745152
4
+ data.tar.gz: 442abc2acd91f2891fead82ff9711739ded7f1f596b4e8a02b9189aac0082051
5
5
  SHA512:
6
- metadata.gz: a8f40e9981395a9fee0bbcf4a08f46a36fd426493febbe99c17059a6fef9f3157af152e2f3507ecf8e879b7674035986d9c97aaa482de7bbb88e04ecf99019c9
7
- data.tar.gz: 8b419ce91071324217edd1a30a8b7be13e076279059073f31e4fb5217d285feea17903fceb6c7e64546c93e4a35bf4d6d7eba3e293a924db8f763b03dc1731b2
6
+ metadata.gz: fe93b14e53bb80f2427e4831b885dfd8cce51b6286bd9666713b4fa57b494db1dc80856e6fab341e8b81f0a6105b4264d716fad5a82c53057aa4aa1a7a177a4e
7
+ data.tar.gz: 72724dcdaa0adae4cfa1483da7bbe5e76250ef270335c3565de5b1f52a22277ffee6a828fc2334170cfc3b4cf4f39ec8dedd07a288ff9c3746a0bbea0cfaefa8
@@ -0,0 +1,26 @@
1
+ name: Tests
2
+ on: [push, pull_request]
3
+ concurrency:
4
+ group: ${{ github.ref }}
5
+ cancel-in-progress: true
6
+ jobs:
7
+ test:
8
+ strategy:
9
+ fail-fast: false
10
+ matrix:
11
+ gemfile: ["6", "7", "8"]
12
+ ruby: ["2.7", "3.0", "3.1", "3.2"]
13
+ runs-on: ubuntu-latest
14
+ services:
15
+ mongodb:
16
+ image: mongo
17
+ ports: ["27017:27017"]
18
+ env:
19
+ BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/${{ matrix.gemfile }}.gemfile
20
+ steps:
21
+ - uses: actions/checkout@v3
22
+ - uses: ruby/setup-ruby@v1
23
+ with:
24
+ ruby-version: ${{ matrix.ruby }}
25
+ bundler-cache: true
26
+ - run: bundle exec rake
data/.gitignore CHANGED
@@ -7,3 +7,4 @@
7
7
  /pkg/
8
8
  /spec/reports/
9
9
  /tmp/
10
+ /gemfiles/*.gemfile.lock
data/Appraisals ADDED
@@ -0,0 +1,11 @@
1
+ appraise "6" do
2
+ gem "mongoid", "~> 6.0"
3
+ end
4
+
5
+ appraise "7" do
6
+ gem "mongoid", "~> 7.0"
7
+ end
8
+
9
+ appraise "8" do
10
+ gem "mongoid", "~> 8.0"
11
+ end
data/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 0.2.0
4
+
5
+ * Add permalink setter
6
+
7
+ ## 0.1.4
8
+
9
+ * Mongoid 8 compatibility
10
+
3
11
  ## 0.1.3
4
12
 
5
13
  * Adds `#ancestor_paths`, a simple getter which returns an array of the ancestor paths. Also cleans up the test suite, removing the deprecation warnings. (@asgerb)
data/README.md CHANGED
@@ -38,6 +38,9 @@ my_doc.path.permalink # => 'LevelThree'
38
38
  my_doc.path.parent_path # => 'LevelOne/LevelTwo'
39
39
  my_doc.path.parent_permalink # => 'LevelTwo'
40
40
  my_doc.path.has_parent? # => true
41
+
42
+ my_doc.path.permalink = 'NewPermalink'
43
+ puts my_doc.path.permalink # => 'NewPermalink'
41
44
  ```
42
45
 
43
46
  ## Development
@@ -0,0 +1,2 @@
1
+ ---
2
+ BUNDLE_RETRY: "1"
@@ -0,0 +1,7 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "mongoid", "~> 6.0"
6
+
7
+ gemspec path: "../"
@@ -0,0 +1,7 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "mongoid", "~> 7.0"
6
+
7
+ gemspec path: "../"
@@ -0,0 +1,7 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "mongoid", "~> 8.0"
6
+
7
+ gemspec path: "../"
@@ -1,5 +1,5 @@
1
1
  module Mongoid
2
2
  class PathExtension < String
3
- VERSION = '0.1.3'.freeze
3
+ VERSION = '0.2.0'.freeze
4
4
  end
5
5
  end
@@ -2,6 +2,8 @@ require 'mongoid'
2
2
 
3
3
  module Mongoid
4
4
  class PathExtension < String
5
+ delegate(:permalink, to: :parent, prefix: true)
6
+
5
7
  def initialize(str)
6
8
  super str.to_s
7
9
  @str = str.to_s
@@ -20,32 +22,31 @@ module Mongoid
20
22
  components.last
21
23
  end
22
24
 
25
+ def permalink=(value)
26
+ return if value.blank?
27
+ new_str = [parent.to_s, value].join('/')
28
+ @str.replace(new_str)
29
+ end
30
+
23
31
  def absolute
24
32
  ['/', @str].join
25
33
  end
26
34
 
27
35
  def has_parent?
28
- components.length > 1
36
+ parent.present?
29
37
  end
30
38
 
31
- def ancestor_paths
32
- return unless has_parent?
33
- res = []
34
- components[0..-2].each_with_index do |component, index|
35
- res << components[0..index].join('/')
36
- end
37
- res
39
+ def parent
40
+ ancestors.last
38
41
  end
42
+ alias_method :parent_path, :parent
39
43
 
40
- def parent_path
41
- return unless has_parent?
42
- components[0..-2].join('/')
43
- end
44
-
45
- def parent_permalink
46
- return unless has_parent?
47
- components[-2]
44
+ def ancestors
45
+ components[0..-2].each_with_index.map do |component, index|
46
+ Mongoid::PathExtension.new(components[0..index].join('/'))
47
+ end
48
48
  end
49
+ alias_method :ancestor_paths, :ancestors
49
50
 
50
51
  class << self
51
52
  def demongoize(value)
@@ -18,11 +18,12 @@ Gem::Specification.new do |spec|
18
18
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
19
19
  spec.require_paths = ['lib']
20
20
 
21
- spec.add_dependency 'mongoid', '>= 5', '< 8'
21
+ spec.add_dependency 'mongoid'
22
22
 
23
+ spec.add_development_dependency 'appraisal'
23
24
  spec.add_development_dependency 'bundler'
24
25
  spec.add_development_dependency 'guard'
25
26
  spec.add_development_dependency 'guard-minitest'
26
27
  spec.add_development_dependency 'minitest'
27
- spec.add_development_dependency 'rake', '~> 10.0'
28
+ spec.add_development_dependency 'rake'
28
29
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mongoid-path_extension
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tomas Celizna
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-08-10 00:00:00.000000000 Z
11
+ date: 2023-12-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mongoid
@@ -16,20 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '5'
20
- - - "<"
21
- - !ruby/object:Gem::Version
22
- version: '8'
19
+ version: '0'
23
20
  type: :runtime
24
21
  prerelease: false
25
22
  version_requirements: !ruby/object:Gem::Requirement
26
23
  requirements:
27
24
  - - ">="
28
25
  - !ruby/object:Gem::Version
29
- version: '5'
30
- - - "<"
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: appraisal
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
31
32
  - !ruby/object:Gem::Version
32
- version: '8'
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'
33
41
  - !ruby/object:Gem::Dependency
34
42
  name: bundler
35
43
  requirement: !ruby/object:Gem::Requirement
@@ -90,25 +98,26 @@ dependencies:
90
98
  name: rake
91
99
  requirement: !ruby/object:Gem::Requirement
92
100
  requirements:
93
- - - "~>"
101
+ - - ">="
94
102
  - !ruby/object:Gem::Version
95
- version: '10.0'
103
+ version: '0'
96
104
  type: :development
97
105
  prerelease: false
98
106
  version_requirements: !ruby/object:Gem::Requirement
99
107
  requirements:
100
- - - "~>"
108
+ - - ">="
101
109
  - !ruby/object:Gem::Version
102
- version: '10.0'
103
- description:
110
+ version: '0'
111
+ description:
104
112
  email:
105
113
  - tomas.celizna@gmail.com
106
114
  executables: []
107
115
  extensions: []
108
116
  extra_rdoc_files: []
109
117
  files:
118
+ - ".github/workflows/test.yml"
110
119
  - ".gitignore"
111
- - ".travis.yml"
120
+ - Appraisals
112
121
  - CHANGELOG.md
113
122
  - Gemfile
114
123
  - Guardfile
@@ -117,6 +126,10 @@ files:
117
126
  - Rakefile
118
127
  - bin/console
119
128
  - bin/setup
129
+ - gemfiles/.bundle/config
130
+ - gemfiles/6.gemfile
131
+ - gemfiles/7.gemfile
132
+ - gemfiles/8.gemfile
120
133
  - lib/mongoid-path_extension.rb
121
134
  - lib/mongoid/path_extension.rb
122
135
  - lib/mongoid/path_extension/version.rb
@@ -125,7 +138,7 @@ homepage: https://github.com/tomasc/mongoid-path_extension
125
138
  licenses:
126
139
  - MIT
127
140
  metadata: {}
128
- post_install_message:
141
+ post_install_message:
129
142
  rdoc_options: []
130
143
  require_paths:
131
144
  - lib
@@ -140,8 +153,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
140
153
  - !ruby/object:Gem::Version
141
154
  version: '0'
142
155
  requirements: []
143
- rubygems_version: 3.1.4
144
- signing_key:
156
+ rubygems_version: 3.3.14
157
+ signing_key:
145
158
  specification_version: 4
146
159
  summary: Mongoid field extension simplifying path parsing.
147
160
  test_files: []
data/.travis.yml DELETED
@@ -1,14 +0,0 @@
1
- sudo: false
2
- language: ruby
3
- rvm:
4
- - 2.2.5
5
- before_install: gem install bundler -v 1.12.5
6
-
7
- matrix:
8
- include:
9
- - rvm: 2.3.3
10
- env: MONGOID_VERSION=5
11
- - rvm: 2.3.3
12
- env: MONGOID_VERSION=6
13
- - rvm: 2.5.0
14
- env: MONGOID_VERSION=7