rom-mongodb 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 12377480e4dd3b615a6e28bcd18fbb21b0f79bcf4cb6984477c93ecd72e4f1e5
4
+ data.tar.gz: 775aeb292984d39d3133460d5556a4115b1676ed482ce367d1c8ca5db18f338d
5
+ SHA512:
6
+ metadata.gz: bde24f9012589a387df98cd5fffe66ba8dbacb80fef5c10330a17220a01a7b4aec6bbe1b23bf008f441faf13b68b3d3bf5efe3e7de9d31dbc395e7a7d3c17c43
7
+ data.tar.gz: 88afd8363aa754bc1e03ec525b3543324c720f94c37e53297ee73561c2667364c2b482d8d6e2eb99e718d35e6d391af43f297fe65abe706595bb3cc9e3495645
@@ -0,0 +1,141 @@
1
+ version: 2.1
2
+
3
+ defaults: &defaults
4
+ working_directory: ~/rom-mongo
5
+ docker:
6
+ - image: cimg/ruby:<< parameters.ruby-version >>
7
+ - image: circleci/mongo:5.0.6-focal-ram
8
+
9
+ orbs:
10
+ ruby: circleci/ruby@1.8.0
11
+
12
+ references:
13
+ restore_bundle_cache: &restore_bundle_cache
14
+ restore_cache:
15
+ keys:
16
+ - rom-mongo-{{ checksum "rom-mongodb.gemspec" }}
17
+
18
+ bundle_install: &bundle_install
19
+ run:
20
+ name: Installing gems
21
+ command: |
22
+ bundle config set --local path 'vendor/bundle'
23
+ bundle install
24
+
25
+ save_bundle_cache: &save_bundle_cache
26
+ save_cache:
27
+ key: rom-mongo-{{ checksum "rom-mongodb.gemspec" }}
28
+ paths:
29
+ - vendor/bundle
30
+
31
+ install_codeclimate_reporter: &install_codeclimate_reporter
32
+ run:
33
+ name: Installing CodeClimate test reporter
34
+ command: |
35
+ curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
36
+ chmod +x ./cc-test-reporter
37
+
38
+ use_latest_gemspec: &use_latest_gemspec
39
+ run:
40
+ name: Using latest gemspec
41
+ command: |
42
+ cp .circleci/gemspec_latest rom-mongodb.gemspec
43
+
44
+ use_compatible_gemspec: &use_compatible_gemspec
45
+ run:
46
+ name: Using compatible gemspec
47
+ command: |
48
+ cp .circleci/gemspec_compatible rom-mongodb.gemspec
49
+
50
+ jobs:
51
+ linters-ruby:
52
+ parameters:
53
+ ruby-version:
54
+ type: string
55
+
56
+ <<: *defaults
57
+
58
+ steps:
59
+ - checkout
60
+
61
+ - <<: *use_latest_gemspec
62
+ - <<: *restore_bundle_cache
63
+ - <<: *bundle_install
64
+ - <<: *save_bundle_cache
65
+
66
+ - run:
67
+ name: Running Overcommit
68
+ command: |
69
+ bundle exec overcommit -s
70
+ SKIP=AuthorEmail,AuthorName bundle exec overcommit -r
71
+
72
+ tests-ruby:
73
+ parameters:
74
+ ruby-version:
75
+ type: string
76
+
77
+ <<: *defaults
78
+
79
+ steps:
80
+ - checkout
81
+
82
+ - <<: *use_latest_gemspec
83
+ - <<: *restore_bundle_cache
84
+ - <<: *bundle_install
85
+ - <<: *save_bundle_cache
86
+ - <<: *install_codeclimate_reporter
87
+
88
+ - run:
89
+ name: Running RSpec
90
+ command: |
91
+ ./cc-test-reporter before-build
92
+ bundle exec rspec
93
+
94
+ - run:
95
+ name: Creating CodeClimate test coverage report
96
+ command: |
97
+ ./cc-test-reporter format-coverage -t simplecov -o "coverage/codeclimate.$CIRCLE_NODE_INDEX.json"
98
+
99
+ - store_artifacts:
100
+ name: Saving Simplecov coverage artifacts
101
+ path: ~/rom-mongo/coverage
102
+ destination: coverage
103
+
104
+ - deploy:
105
+ name: Uploading CodeClimate test coverage report
106
+ command: |
107
+ ./cc-test-reporter sum-coverage --output - --parts $CIRCLE_NODE_TOTAL coverage/codeclimate.*.json | ./cc-test-reporter upload-coverage --debug --input -
108
+
109
+ compatibility-ruby:
110
+ parameters:
111
+ ruby-version:
112
+ type: string
113
+ docker:
114
+ - image: cimg/ruby:<< parameters.ruby-version >>
115
+ - image: circleci/mongo:5.0.6-focal-ram
116
+ steps:
117
+ - checkout
118
+ - <<: *use_compatible_gemspec
119
+ - ruby/install-deps:
120
+ bundler-version: "2.3.16"
121
+ with-cache: false
122
+ path: './vendor/custom_bundle'
123
+ - run:
124
+ name: Running compatibility tests
125
+ command: bundle exec rspec
126
+
127
+ workflows:
128
+ build_and_test:
129
+ jobs:
130
+ - linters-ruby:
131
+ matrix:
132
+ parameters:
133
+ ruby-version: ["3.1"]
134
+ - tests-ruby:
135
+ matrix:
136
+ parameters:
137
+ ruby-version: ["3.1"]
138
+ - compatibility-ruby:
139
+ matrix:
140
+ parameters:
141
+ ruby-version: ["2.5", "2.6", "2.7", "3.0"]
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'lib/rom/mongo/version'
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = 'rom-mongodb'
7
+ spec.version = ROM::Mongo::VERSION
8
+ spec.authors = ['Vladislav Trotsenko']
9
+ spec.email = ['admin@bestweb.com.ua']
10
+
11
+ spec.summary = %(rom-mongodb)
12
+ spec.description = 'MongoDB adapter for Ruby Object Mapper'
13
+
14
+ spec.homepage = 'https://github.com/bestwebua/rom-mongo'
15
+ spec.license = 'MIT'
16
+
17
+ spec.metadata = {
18
+ 'homepage_uri' => 'https://rom-rb.org',
19
+ 'changelog_uri' => 'https://github.com/bestwebua/rom-mongo/blob/master/CHANGELOG.md',
20
+ 'source_code_uri' => 'https://github.com/bestwebua/rom-mongo',
21
+ 'documentation_uri' => 'https://github.com/bestwebua/rom-mongo/blob/master/README.md',
22
+ 'bug_tracker_uri' => 'https://github.com/bestwebua/rom-mongo/issues'
23
+ }
24
+
25
+ spec.required_ruby_version = '>= 2.5.0'
26
+
27
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
28
+ spec.bindir = 'exe'
29
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| ::File.basename(f) }
30
+ spec.require_paths = ['lib']
31
+
32
+ spec.add_runtime_dependency 'mongo', '~> 2.17', '>= 2.17.1'
33
+ spec.add_runtime_dependency 'rom-core', '~> 5.2', '>= 5.2.6'
34
+
35
+ spec.add_development_dependency 'ffaker', '~> 2.21'
36
+ spec.add_development_dependency 'rake', '~> 13.0', '>= 13.0.6'
37
+ spec.add_development_dependency 'rom-repository', '~> 5.2', '>= 5.2.2'
38
+ spec.add_development_dependency 'rspec', '~> 3.11'
39
+ end
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'lib/rom/mongo/version'
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = 'rom-mongodb'
7
+ spec.version = ROM::Mongo::VERSION
8
+ spec.authors = ['Vladislav Trotsenko']
9
+ spec.email = ['admin@bestweb.com.ua']
10
+
11
+ spec.summary = %(rom-mongodb)
12
+ spec.description = 'MongoDB adapter for Ruby Object Mapper'
13
+
14
+ spec.homepage = 'https://github.com/bestwebua/rom-mongo'
15
+ spec.license = 'MIT'
16
+
17
+ spec.metadata = {
18
+ 'homepage_uri' => 'https://rom-rb.org',
19
+ 'changelog_uri' => 'https://github.com/bestwebua/rom-mongo/blob/master/CHANGELOG.md',
20
+ 'source_code_uri' => 'https://github.com/bestwebua/rom-mongo',
21
+ 'documentation_uri' => 'https://github.com/bestwebua/rom-mongo/blob/master/README.md',
22
+ 'bug_tracker_uri' => 'https://github.com/bestwebua/rom-mongo/issues'
23
+ }
24
+
25
+ spec.required_ruby_version = '>= 2.5.0'
26
+
27
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
28
+ spec.bindir = 'exe'
29
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| ::File.basename(f) }
30
+ spec.require_paths = ['lib']
31
+
32
+ spec.add_runtime_dependency 'mongo', '~> 2.17', '>= 2.17.1'
33
+ spec.add_runtime_dependency 'rom-core', '~> 5.2', '>= 5.2.6'
34
+
35
+ spec.add_development_dependency 'bundler-audit', '~> 0.9.1'
36
+ spec.add_development_dependency 'fasterer', '~> 0.10.0'
37
+ spec.add_development_dependency 'ffaker', '~> 2.21'
38
+ spec.add_development_dependency 'overcommit', '~> 0.59.1'
39
+ spec.add_development_dependency 'pry-byebug', '~> 3.9'
40
+ spec.add_development_dependency 'rake', '~> 13.0', '>= 13.0.6'
41
+ spec.add_development_dependency 'reek', '~> 6.1', '>= 6.1.1'
42
+ spec.add_development_dependency 'rom-repository', '~> 5.2', '>= 5.2.2'
43
+ spec.add_development_dependency 'rspec', '~> 3.11'
44
+ spec.add_development_dependency 'rubocop', '~> 1.31'
45
+ spec.add_development_dependency 'rubocop-performance', '~> 1.14', '>= 1.14.2'
46
+ spec.add_development_dependency 'rubocop-rspec', '~> 2.11', '>= 2.11.1'
47
+ spec.add_development_dependency 'simplecov', '~> 0.21.2'
48
+ end
data/.codeclimate.yml ADDED
@@ -0,0 +1,13 @@
1
+ checks:
2
+ argument-count:
3
+ enabled: false
4
+ method-complexity:
5
+ enabled: false
6
+
7
+ plugins:
8
+ rubocop:
9
+ enabled: true
10
+ channel: rubocop-1-31
11
+
12
+ reek:
13
+ enabled: true
@@ -0,0 +1,36 @@
1
+ # Branch naming convention
2
+
3
+ ## Branch naming
4
+
5
+ > Please note for new pull requests create new branches from current `develop` branch only.
6
+
7
+ Branch name should include type of your contribution and context. Please follow next pattern for naming your branches:
8
+
9
+ ```bash
10
+ feature/add-some-feature
11
+ technical/some-technical-improvements
12
+ bugfix/fix-some-bug-name
13
+ ```
14
+
15
+ ## Before PR actions
16
+
17
+ ### Squash commits
18
+
19
+ Please squash all branch commits into the one before openning your PR from your fork. It's simple to do with the git:
20
+
21
+ ```bash
22
+ git rebase -i [hash your first commit of your branch]~1
23
+ git rebase -i 6467fe36232401fa740af067cfd8ac9ec932fed2~1 # example
24
+ ```
25
+
26
+ ### Add commit description
27
+
28
+ Please complete your commit description folowing next pattern:
29
+
30
+ ```
31
+ Technical/Add info files # should be the same name as your branch name
32
+
33
+ * Added license, changelog, contributing, code of conduct docs
34
+ * Added GitHub templates
35
+ * Updated project license link
36
+ ```
@@ -0,0 +1,26 @@
1
+ # Development environment guide
2
+
3
+ ## Preparing
4
+
5
+ Clone `rom-mongodb` repository:
6
+
7
+ ```bash
8
+ git clone https://github.com/bestwebua/rom-mongo.git
9
+ cd rom-mongo
10
+ ```
11
+
12
+ Configure latest Ruby environment:
13
+
14
+ ```bash
15
+ echo 'ruby-3.1.2' > .ruby-version
16
+ cp .circleci/gemspec_latest rom-mongodb.gemspec
17
+ ```
18
+
19
+ ## Commiting
20
+
21
+ Commit your changes excluding `.ruby-version`, `rom-mongodb.gemspec`
22
+
23
+ ```bash
24
+ git add . ':!.ruby-version' ':!rom-mongodb.gemspec'
25
+ git commit -m 'Your new awesome rom-mongodb feature'
26
+ ```
@@ -0,0 +1,28 @@
1
+ ---
2
+ name: Bug report
3
+ about: Create a report to help us improve
4
+ title: "[BUG] Your bug report title here"
5
+ labels: bug
6
+ assignees: bestwebua
7
+
8
+ ---
9
+
10
+ <!-- Thanks for helping to make rom-mongodb better! Before submit your bug, please make sure to check the following boxes by putting an x in the [ ] (don't: [x ], [ x], do: [x]) -->
11
+
12
+ ### New bug checklist
13
+
14
+ - [ ] I have updated `rom-mongodb` to the latest version
15
+ - [ ] I have read the [Contribution Guidelines](https://github.com/bestwebua/rom-mongo/blob/master/CONTRIBUTING.md)
16
+ - [ ] I have read the [documentation](https://github.com/bestwebua/rom-mongo/blob/master/README.md)
17
+ - [ ] I have searched for [existing GitHub issues](https://github.com/bestwebua/rom-mongo/issues)
18
+
19
+ <!-- Please use next pattern for your bug report title: [BUG] Your bug report title here -->
20
+
21
+ ### Bug description
22
+ <!-- Please include what's happening, expected behavior, and any relevant code samples -->
23
+
24
+ ##### Complete output when running rom-mongo, including the stack trace and command used
25
+
26
+ <details>
27
+ <pre>[INSERT OUTPUT HERE]</pre>
28
+ </details>
@@ -0,0 +1,27 @@
1
+ ---
2
+ name: Feature request
3
+ about: Suggest an idea for rom-mongodb
4
+ title: "[FEATURE] Your feature request title here"
5
+ labels: enhancement
6
+ assignees: bestwebua
7
+
8
+ ---
9
+
10
+ <!-- Thanks for helping to make rom-mongodb better! Before submit your new feature request, please make sure to check the following boxes by putting an x in the [ ] (don't: [x ], [ x], do: [x]) -->
11
+
12
+ ### New feature request checklist
13
+
14
+ - [ ] I have updated `rom-mongodb` to the latest version
15
+ - [ ] I have read the [Contribution Guidelines](https://github.com/bestwebua/rom-mongo/blob/master/CONTRIBUTING.md)
16
+ - [ ] I have read the [documentation](https://github.com/bestwebua/rom-mongo/blob/master/README.md)
17
+ - [ ] I have searched for [existing GitHub issues](https://github.com/bestwebua/rom-mongo/issues)
18
+
19
+ <!-- Please use next pattern for your feature request title: [FEATURE] Your feature request title here -->
20
+
21
+ ### Feature description
22
+
23
+ <!-- Is your feature request related to a problem? Please describe. A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
24
+
25
+ Describe the solution you'd like. A clear and concise description of what you want to happen.
26
+
27
+ Describe alternatives you've considered. A clear and concise description of any alternative solutions or features you've considered. -->
@@ -0,0 +1,28 @@
1
+ ---
2
+ name: Issue report
3
+ about: Create a report to help us improve
4
+ title: "[ISSUE] Your issue report title here"
5
+ labels: ''
6
+ assignees: bestwebua
7
+
8
+ ---
9
+
10
+ <!-- Thanks for helping to make rom-mongodb better! Before submit your issue, please make sure to check the following boxes by putting an x in the [ ] (don't: [x ], [ x], do: [x]) -->
11
+
12
+ ### New issue checklist
13
+
14
+ - [ ] I have updated `rom-mongodb` to the latest version
15
+ - [ ] I have read the [Contribution Guidelines](https://github.com/bestwebua/rom-mongo/blob/master/CONTRIBUTING.md)
16
+ - [ ] I have read the [documentation](https://github.com/bestwebua/rom-mongo/blob/master/README.md)
17
+ - [ ] I have searched for [existing GitHub issues](https://github.com/bestwebua/rom-mongo/issues)
18
+
19
+ <!-- Please use next pattern for your issue report title: [ISSUE] Your issue report title here -->
20
+
21
+ ### Issue description
22
+ <!-- Please include what's happening, expected behavior, and any relevant code samples -->
23
+
24
+ ##### Complete output when running rom-mongodb, including the stack trace and command used
25
+
26
+ <details>
27
+ <pre>[INSERT OUTPUT HERE]</pre>
28
+ </details>
@@ -0,0 +1,22 @@
1
+ ---
2
+ name: Question
3
+ about: Ask your question to rom-mongodb team
4
+ title: "[QUESTION] Your question title here"
5
+ labels: question
6
+ assignees: bestwebua
7
+
8
+ ---
9
+
10
+ <!-- Thanks for helping to make rom-mongodb better! Before submit your question, please make sure to check the following boxes by putting an x in the [ ] (don't: [x ], [ x], do: [x]) -->
11
+
12
+ ### New question checklist
13
+
14
+ - [ ] I have read the [Contribution Guidelines](https://github.com/bestwebua/rom-mongo/blob/master/CONTRIBUTING.md)
15
+ - [ ] I have read the [documentation](https://github.com/bestwebua/rom-mongo/blob/master/README.md)
16
+ - [ ] I have searched for [existing GitHub issues](https://github.com/bestwebua/rom-mongo/issues)
17
+
18
+ <!-- Please use next pattern for your question title: [QUESTION] Your question title here -->
19
+
20
+ ### Question
21
+
22
+ <!-- Your question context here -->
@@ -0,0 +1,49 @@
1
+ # PR Details
2
+
3
+ <!-- Provide a general summary of your changes in the Title above -->
4
+ <!-- PR name should the same name as your branch name, example: -->
5
+ <!-- Branch name is: feature/add-some-feature -->
6
+ <!-- PR name should be: Feature/Add some feature -->
7
+
8
+ ## Description
9
+
10
+ <!--- Describe your changes in detail -->
11
+
12
+ ## Related Issue
13
+
14
+ <!--- This project only accepts pull requests related to open issues -->
15
+ <!--- If suggesting a new feature or change, please discuss it in an issue first -->
16
+ <!--- If fixing a bug, there should be an issue describing it with steps to reproduce -->
17
+ <!--- Please link to the issue here: -->
18
+
19
+ ## Motivation and Context
20
+
21
+ <!--- Why is this change required? What problem does it solve? -->
22
+
23
+ ## How Has This Been Tested
24
+
25
+ <!--- Please describe in detail how you tested your changes. -->
26
+ <!--- Include details of your testing environment, and the tests you ran to -->
27
+ <!--- see how your change affects other areas of the code, etc. -->
28
+
29
+ ## Types of changes
30
+
31
+ <!--- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->
32
+
33
+ - [ ] Docs change / refactoring / dependency upgrade
34
+ - [ ] Bug fix (non-breaking change which fixes an issue)
35
+ - [ ] New feature (non-breaking change which adds functionality)
36
+ - [ ] Breaking change (fix or feature that would cause existing functionality to change)
37
+
38
+ ## Checklist
39
+
40
+ <!--- Go over all the following points, and put an `x` in all the boxes that apply. -->
41
+ <!--- If you're unsure about any of these, don't hesitate to ask. We're here to help! -->
42
+
43
+ - [ ] My code follows the code style of this project
44
+ - [ ] My change requires a change to the documentation
45
+ - [ ] I have updated the documentation accordingly
46
+ - [ ] I have read the [**CONTRIBUTING** document](https://github.com/bestwebua/rom-mongo/blob/master/CONTRIBUTING.md)
47
+ - [ ] I have added tests to cover my changes
48
+ - [ ] I have run `bundle exec rspec` from the root directory to see all new and existing tests pass
49
+ - [ ] I have run `rubocop` and `reek` to ensure the code style is valid
data/.gitignore ADDED
@@ -0,0 +1,11 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /_yardoc/
4
+ /coverage/
5
+ /doc/
6
+ /pkg/
7
+ /spec/reports/
8
+ /tmp/
9
+ .rspec_status
10
+ .DS_Store
11
+ Gemfile.lock
data/.overcommit.yml ADDED
@@ -0,0 +1,32 @@
1
+ PreCommit:
2
+ AuthorEmail:
3
+ enabled: true
4
+ required: false
5
+
6
+ AuthorName:
7
+ enabled: false
8
+
9
+ BundleAudit:
10
+ enabled: true
11
+
12
+ Fasterer:
13
+ enabled: true
14
+ include: '**/*.rb'
15
+
16
+ TrailingWhitespace:
17
+ enabled: true
18
+
19
+ RuboCop:
20
+ enabled: true
21
+ flags: ['--format=emacs', '--force-exclusion', '--display-cop-names']
22
+
23
+ Reek:
24
+ enabled: true
25
+ flags: ['--force-exclusion']
26
+
27
+ PostCheckout:
28
+ ALL:
29
+ quiet: true
30
+
31
+ IndexTags:
32
+ enabled: true
data/.reek.yml ADDED
@@ -0,0 +1,16 @@
1
+ detectors:
2
+ IrresponsibleModule:
3
+ enabled: false
4
+
5
+ FeatureEnvy:
6
+ exclude:
7
+ - ROM::Mongo::Dataset#insert
8
+ - ROM::Mongo::Schema#to_output_hash
9
+ - ROM::Mongo::Commands::Create#execute
10
+
11
+ ManualDispatch:
12
+ exclude:
13
+ - ROM::Mongo::Commands::Helper#pk
14
+
15
+ exclude_paths:
16
+ - spec/support/helpers
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --require spec_helper
2
+ --format documentation
3
+ --color