railsmdb 1.0.0.alpha1
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 +7 -0
- checksums.yaml.gz.sig +0 -0
- data/LICENSE +20 -0
- data/README.md +117 -0
- data/Rakefile +65 -0
- data/lib/railsmdb/cli.rb +16 -0
- data/lib/railsmdb/commands/dbconsole/dbconsole_command.rb +65 -0
- data/lib/railsmdb/commands/setup/setup_command.rb +20 -0
- data/lib/railsmdb/commands.rb +5 -0
- data/lib/railsmdb/crypt_shared/catalog.rb +123 -0
- data/lib/railsmdb/crypt_shared/listing.rb +71 -0
- data/lib/railsmdb/downloader.rb +55 -0
- data/lib/railsmdb/ext/rails/command/behavior.rb +55 -0
- data/lib/railsmdb/ext/rails/command.rb +21 -0
- data/lib/railsmdb/ext/rails/generators/rails/app/app_generator.rb +48 -0
- data/lib/railsmdb/ext/rails/generators.rb +21 -0
- data/lib/railsmdb/extractor.rb +94 -0
- data/lib/railsmdb/generators/mongoid/model/model_generator.rb +41 -0
- data/lib/railsmdb/generators/mongoid/model/templates/model.rb.tt +19 -0
- data/lib/railsmdb/generators/setup/concerns/setuppable.rb +545 -0
- data/lib/railsmdb/generators/setup/setup_generator.rb +123 -0
- data/lib/railsmdb/generators/setup/templates/README.md.tt +3 -0
- data/lib/railsmdb/generators/setup/templates/_bin/railsmdb.tt +3 -0
- data/lib/railsmdb/generators/setup/templates/_config/initializers/mongoid.rb.tt +26 -0
- data/lib/railsmdb/prioritizable.rb +97 -0
- data/lib/railsmdb/version.rb +12 -0
- data.tar.gz.sig +4 -0
- metadata +182 -0
- metadata.gz.sig +0 -0
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'mongoid'
|
2
|
+
|
3
|
+
Mongoid.configure do
|
4
|
+
target_version = "<%= Mongoid::VERSION[/^\d+\.\d+/] %>"
|
5
|
+
|
6
|
+
# Load Mongoid behavior defaults. This automatically sets
|
7
|
+
# feature flags (refer to documentation)
|
8
|
+
config.load_defaults target_version
|
9
|
+
|
10
|
+
# It is recommended to use config/mongoid.yml for most Mongoid-related
|
11
|
+
# configuration, whenever possible, but if you prefer, you can set
|
12
|
+
# configuration values here, instead:
|
13
|
+
#
|
14
|
+
# config.log_level = :debug
|
15
|
+
#
|
16
|
+
# Note that the settings in config/mongoid.yml always take precedence,
|
17
|
+
# whatever else is set here.
|
18
|
+
end
|
19
|
+
|
20
|
+
# Enable Mongo driver query cache for Rack
|
21
|
+
# Rails.application.config.middleware.use(Mongo::QueryCache::Middleware)
|
22
|
+
|
23
|
+
# Enable Mongo driver query cache for ActiveJob
|
24
|
+
# ActiveSupport.on_load(:active_job) do
|
25
|
+
# include Mongo::QueryCache::Middleware::ActiveJob
|
26
|
+
# end
|
@@ -0,0 +1,97 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'active_support/concern'
|
4
|
+
|
5
|
+
module Railsmdb
|
6
|
+
# Defines the behavior for extending the Thor framework to allow commands
|
7
|
+
# to be reprioritized--ensuring they run immediately before or after
|
8
|
+
# another command.
|
9
|
+
module Prioritizable
|
10
|
+
extend ActiveSupport::Concern
|
11
|
+
|
12
|
+
# rubocop:disable Metrics/BlockLength
|
13
|
+
class_methods do
|
14
|
+
# Override all_commands to return a new hash with the keys in priority
|
15
|
+
# order.
|
16
|
+
#
|
17
|
+
# @return [ Hash ] the commands in priority order
|
18
|
+
#
|
19
|
+
# rubocop:disable Naming/MemoizedInstanceVariableName
|
20
|
+
def all_commands
|
21
|
+
@prioritized_all_commands ||= begin
|
22
|
+
commands = super.dup
|
23
|
+
|
24
|
+
aside = priorities.keys
|
25
|
+
ordered = commands.slice!(*aside)
|
26
|
+
|
27
|
+
{}.tap do |prioritized|
|
28
|
+
ordered.each do |key, command|
|
29
|
+
add_prioritized_command(prioritized, key, command)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
# rubocop:enable Naming/MemoizedInstanceVariableName
|
35
|
+
|
36
|
+
# @return [ Hash<String, Array<Symbol, Command>> ] the declared priorities, with
|
37
|
+
# each task name referencing a 2-tuple of [priority, command].
|
38
|
+
#
|
39
|
+
# @api private
|
40
|
+
def priorities
|
41
|
+
@priorities ||= {}
|
42
|
+
end
|
43
|
+
|
44
|
+
# @return [ Hash<String, Hash<(:before|:after), Array>> ] the declared
|
45
|
+
# priorities, organized by the task they are relative to.
|
46
|
+
#
|
47
|
+
# @api private
|
48
|
+
def priorities_by_relative_task
|
49
|
+
@priorities_by_relative_task ||= {}
|
50
|
+
end
|
51
|
+
|
52
|
+
# Specify that `task` should run before or after another task.
|
53
|
+
#
|
54
|
+
# @param [ String | Symbol ] task the task to prioritize.
|
55
|
+
# @param [ :before | :after ] priority the priority to use
|
56
|
+
# @param [ String | Symbol ] other_task the task relative to which to prioritize `task`
|
57
|
+
def prioritize(task, priority, other_task)
|
58
|
+
raise ArgumentError, 'priority must be either of :before or :after' if priority != :before && priority != :after
|
59
|
+
|
60
|
+
task = task.to_s
|
61
|
+
other_task = other_task.to_s
|
62
|
+
|
63
|
+
priorities[task] = [ priority, other_task ]
|
64
|
+
priorities_by_relative_task[other_task] ||= { before: [], after: [] }
|
65
|
+
priorities_by_relative_task[other_task][priority].push task
|
66
|
+
|
67
|
+
@prioritized_all_commands = nil
|
68
|
+
end
|
69
|
+
|
70
|
+
private
|
71
|
+
|
72
|
+
# Adds the given [key, command] pair to the commands mapping, but
|
73
|
+
# first recursively considers if any other tasks need to be added
|
74
|
+
# before it. Then, after adding [key, command], it recursively
|
75
|
+
# considers if any other tasks need to be added after it.
|
76
|
+
#
|
77
|
+
# @param [ Hash ] commands the mapping of task names to command
|
78
|
+
# objects.
|
79
|
+
# @param [ String ] key the name of the task to add
|
80
|
+
# @param [ Object ] command the command object
|
81
|
+
def add_prioritized_command(commands, key, command)
|
82
|
+
priorities = priorities_by_relative_task[key] || {}
|
83
|
+
|
84
|
+
(priorities[:before] || []).each do |earlier|
|
85
|
+
add_prioritized_command(commands, earlier, all_tasks[earlier])
|
86
|
+
end
|
87
|
+
|
88
|
+
commands[key] = command
|
89
|
+
|
90
|
+
(priorities[:after] || []).each do |later|
|
91
|
+
add_prioritized_command(commands, later, all_tasks[later])
|
92
|
+
end
|
93
|
+
end
|
94
|
+
end
|
95
|
+
# rubocop:enable Metrics/BlockLength
|
96
|
+
end
|
97
|
+
end
|
data.tar.gz.sig
ADDED
metadata
ADDED
@@ -0,0 +1,182 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: railsmdb
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0.alpha1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- The MongoDB Ruby Team
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain:
|
11
|
+
- |
|
12
|
+
-----BEGIN CERTIFICATE-----
|
13
|
+
MIIEeDCCAuCgAwIBAgIBATANBgkqhkiG9w0BAQsFADBBMREwDwYDVQQDDAhkYngt
|
14
|
+
cnVieTEXMBUGCgmSJomT8ixkARkWB21vbmdvZGIxEzARBgoJkiaJk/IsZAEZFgNj
|
15
|
+
b20wHhcNMjMwMTMxMTE1NjM1WhcNMjQwMTMxMTE1NjM1WjBBMREwDwYDVQQDDAhk
|
16
|
+
YngtcnVieTEXMBUGCgmSJomT8ixkARkWB21vbmdvZGIxEzARBgoJkiaJk/IsZAEZ
|
17
|
+
FgNjb20wggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQC0/Veq9l47cTfX
|
18
|
+
tQ+kHq2NOCwJuJGt1iXWQ/vH/yp7pZ/bLej7gPDl2CfIngAXRjM7r1FkR9ya7VAm
|
19
|
+
IneBFcVU3HhpIXWi4ByXGjBOXFD1Dfbz4C4zedIWRk/hNzXa+rQY4KPwpOwG/hZg
|
20
|
+
id+rSXWSbNlkyN97XfonweVh7JsIa9X/2JY9ADYjhCfEZF+b0+Wl7+jgwzLWb46I
|
21
|
+
0WH0bZBIZ0BbKAwUXIgvq5mQf9PzukmMVYCwnkJ/P4wrHO22HuwnbMyvJuGjVwqi
|
22
|
+
j1NRp/2vjmKBFWxIfhlSXEIiqAmeEVNXzhPvTVeyo+rma+7R3Bo+4WHkcnPpXJJZ
|
23
|
+
Jd63qXMvTB0GplEcMJPztWhrJOmcxIOVoQyigEPSQT8JpzFVXby4SGioizv2eT7l
|
24
|
+
VYSiCHuc3yEDyq5M+98WGX2etbj6esYtzI3rDevpIAHPB6HQmtoJIA4dSl3gjFb+
|
25
|
+
D+YQSuB2qYu021FI9zeY9sbZyWysEXBxhwrmTk+XUV0qz+OQZkMCAwEAAaN7MHkw
|
26
|
+
CQYDVR0TBAIwADALBgNVHQ8EBAMCBLAwHQYDVR0OBBYEFH4nnr4tYlatU57RbExW
|
27
|
+
jG86YM5nMB8GA1UdEQQYMBaBFGRieC1ydWJ5QG1vbmdvZGIuY29tMB8GA1UdEgQY
|
28
|
+
MBaBFGRieC1ydWJ5QG1vbmdvZGIuY29tMA0GCSqGSIb3DQEBCwUAA4IBgQAVSlgM
|
29
|
+
nFDWCCNLOCqG5/Lj4U62XoALkdCI+OZ30+WrA8qiRLSL9ZEziVK9AV7ylez+sriQ
|
30
|
+
m8XKZKsCN5ON4+zXw1S+6Ftz/R4zDg7nTb9Wgw8ibzsoiP6e4pRW3Fls3ZdaG4pW
|
31
|
+
+qMTbae9OiSrgI2bxNTII+v+1FcbQjOlMu8HPZ3ZfXnurXPgN5GxSyyclZI1QONO
|
32
|
+
HbUoKHRirZu0F7JCvQQq4EkSuLWPplRJfYEeJIYm05zhhFeEyqea2B/TTlCtXa42
|
33
|
+
84vxXsxGzumuO8F2Q9m6/p95sNhqCp0B/SkKXIrRGJ7FBzupoORNRXHviS2OC3ty
|
34
|
+
4lwUzOlLTF/yO0wwYYfmtQOALQwKnW838vbYthMXvTjxB0EgVZ5PKto99WbjsXzy
|
35
|
+
wkeAWhd5b+5JS0zgDL4SvGB8/W2IY+y0zELkojBMgJPyrpAWHL/WSsSBMuhyI2Pv
|
36
|
+
xxaBVLklnJJ/qCCOZ3lG2MyVc/Nb0Mmq8ygWNsfwHmKKYuuWcviit0D0Tek=
|
37
|
+
-----END CERTIFICATE-----
|
38
|
+
date: 2023-09-14 00:00:00.000000000 Z
|
39
|
+
dependencies:
|
40
|
+
- !ruby/object:Gem::Dependency
|
41
|
+
name: rails
|
42
|
+
requirement: !ruby/object:Gem::Requirement
|
43
|
+
requirements:
|
44
|
+
- - "~>"
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '7.0'
|
47
|
+
type: :runtime
|
48
|
+
prerelease: false
|
49
|
+
version_requirements: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - "~>"
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '7.0'
|
54
|
+
- !ruby/object:Gem::Dependency
|
55
|
+
name: os
|
56
|
+
requirement: !ruby/object:Gem::Requirement
|
57
|
+
requirements:
|
58
|
+
- - "~>"
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: '1.1'
|
61
|
+
type: :runtime
|
62
|
+
prerelease: false
|
63
|
+
version_requirements: !ruby/object:Gem::Requirement
|
64
|
+
requirements:
|
65
|
+
- - "~>"
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: '1.1'
|
68
|
+
- !ruby/object:Gem::Dependency
|
69
|
+
name: faraday
|
70
|
+
requirement: !ruby/object:Gem::Requirement
|
71
|
+
requirements:
|
72
|
+
- - "~>"
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: '2.7'
|
75
|
+
type: :runtime
|
76
|
+
prerelease: false
|
77
|
+
version_requirements: !ruby/object:Gem::Requirement
|
78
|
+
requirements:
|
79
|
+
- - "~>"
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
version: '2.7'
|
82
|
+
- !ruby/object:Gem::Dependency
|
83
|
+
name: minitar
|
84
|
+
requirement: !ruby/object:Gem::Requirement
|
85
|
+
requirements:
|
86
|
+
- - "~>"
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: '0.9'
|
89
|
+
type: :runtime
|
90
|
+
prerelease: false
|
91
|
+
version_requirements: !ruby/object:Gem::Requirement
|
92
|
+
requirements:
|
93
|
+
- - "~>"
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
version: '0.9'
|
96
|
+
- !ruby/object:Gem::Dependency
|
97
|
+
name: rubyzip
|
98
|
+
requirement: !ruby/object:Gem::Requirement
|
99
|
+
requirements:
|
100
|
+
- - "~>"
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: '2.3'
|
103
|
+
type: :runtime
|
104
|
+
prerelease: false
|
105
|
+
version_requirements: !ruby/object:Gem::Requirement
|
106
|
+
requirements:
|
107
|
+
- - "~>"
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '2.3'
|
110
|
+
- !ruby/object:Gem::Dependency
|
111
|
+
name: mongoid
|
112
|
+
requirement: !ruby/object:Gem::Requirement
|
113
|
+
requirements:
|
114
|
+
- - ">="
|
115
|
+
- !ruby/object:Gem::Version
|
116
|
+
version: '8.0'
|
117
|
+
type: :runtime
|
118
|
+
prerelease: false
|
119
|
+
version_requirements: !ruby/object:Gem::Requirement
|
120
|
+
requirements:
|
121
|
+
- - ">="
|
122
|
+
- !ruby/object:Gem::Version
|
123
|
+
version: '8.0'
|
124
|
+
description: A CLI for assisting Rails programmers in creating and managing Rails
|
125
|
+
projects that use Mongoid and MongoDB as the datastore.
|
126
|
+
email: dbx-ruby@mongodb.com
|
127
|
+
executables: []
|
128
|
+
extensions: []
|
129
|
+
extra_rdoc_files: []
|
130
|
+
files:
|
131
|
+
- LICENSE
|
132
|
+
- README.md
|
133
|
+
- Rakefile
|
134
|
+
- lib/railsmdb/cli.rb
|
135
|
+
- lib/railsmdb/commands.rb
|
136
|
+
- lib/railsmdb/commands/dbconsole/dbconsole_command.rb
|
137
|
+
- lib/railsmdb/commands/setup/setup_command.rb
|
138
|
+
- lib/railsmdb/crypt_shared/catalog.rb
|
139
|
+
- lib/railsmdb/crypt_shared/listing.rb
|
140
|
+
- lib/railsmdb/downloader.rb
|
141
|
+
- lib/railsmdb/ext/rails/command.rb
|
142
|
+
- lib/railsmdb/ext/rails/command/behavior.rb
|
143
|
+
- lib/railsmdb/ext/rails/generators.rb
|
144
|
+
- lib/railsmdb/ext/rails/generators/rails/app/app_generator.rb
|
145
|
+
- lib/railsmdb/extractor.rb
|
146
|
+
- lib/railsmdb/generators/mongoid/model/model_generator.rb
|
147
|
+
- lib/railsmdb/generators/mongoid/model/templates/model.rb.tt
|
148
|
+
- lib/railsmdb/generators/setup/concerns/setuppable.rb
|
149
|
+
- lib/railsmdb/generators/setup/setup_generator.rb
|
150
|
+
- lib/railsmdb/generators/setup/templates/README.md.tt
|
151
|
+
- lib/railsmdb/generators/setup/templates/_bin/railsmdb.tt
|
152
|
+
- lib/railsmdb/generators/setup/templates/_config/initializers/mongoid.rb.tt
|
153
|
+
- lib/railsmdb/prioritizable.rb
|
154
|
+
- lib/railsmdb/version.rb
|
155
|
+
homepage: ''
|
156
|
+
licenses:
|
157
|
+
- Apache-2.0
|
158
|
+
metadata:
|
159
|
+
rubygems_mfa_required: 'true'
|
160
|
+
bug_tracker_uri: https://jira.mongodb.org/projects/MONGOID
|
161
|
+
changelog_uri: https://github.com/mongodb/mongoid-railsmdb/releases
|
162
|
+
source_code_uri: https://github.com/mongodb/mongoid-railsmdb
|
163
|
+
post_install_message:
|
164
|
+
rdoc_options: []
|
165
|
+
require_paths:
|
166
|
+
- lib
|
167
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
168
|
+
requirements:
|
169
|
+
- - ">="
|
170
|
+
- !ruby/object:Gem::Version
|
171
|
+
version: '3.0'
|
172
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
173
|
+
requirements:
|
174
|
+
- - ">"
|
175
|
+
- !ruby/object:Gem::Version
|
176
|
+
version: 1.3.1
|
177
|
+
requirements: []
|
178
|
+
rubygems_version: 3.4.19
|
179
|
+
signing_key:
|
180
|
+
specification_version: 4
|
181
|
+
summary: CLI for creating and managing Rails projects that use Mongoid
|
182
|
+
test_files: []
|
metadata.gz.sig
ADDED
Binary file
|