Skip to content

Commit 119d9fc

Browse files
Merge pull request activeadmin#150 from activeadmin/feature/mongoid-7
Mongoid 7 support
2 parents c7443d2 + 38c227a commit 119d9fc

File tree

9 files changed

+75
-63
lines changed

9 files changed

+75
-63
lines changed

Gemfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ gemspec
44

55
gem 'ransack-mongoid', git: 'https://github.com/activerecord-hackery/ransack-mongoid'
66

7-
gem 'rails', '~> 5.2'
7+
gem 'rails', '>= 5.2', '< 6.1'
88

99
gem 'devise'
1010

Gemfile.lock

Lines changed: 39 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@ GIT
77
PATH
88
remote: .
99
specs:
10-
activeadmin-mongoid (0.9.0)
10+
activeadmin-mongoid (1.0.0)
1111
activeadmin (>= 1.4.3)
1212
jquery-rails
1313
kaminari-mongoid
14-
mongoid (~> 6.0)
14+
mongoid (>= 6.0, < 8.a)
1515
sass-rails (>= 3.1.4)
1616

1717
GEM
@@ -40,18 +40,17 @@ GEM
4040
erubi (~> 1.4)
4141
rails-dom-testing (~> 2.0)
4242
rails-html-sanitizer (~> 1.0, >= 1.0.3)
43-
activeadmin (1.4.3)
44-
arbre (>= 1.1.1)
45-
coffee-rails
43+
activeadmin (2.6.0)
44+
arbre (~> 1.2, >= 1.2.1)
4645
formtastic (~> 3.1)
47-
formtastic_i18n
48-
inherited_resources (>= 1.9.0)
49-
jquery-rails (>= 4.2.0)
50-
kaminari (>= 0.15)
51-
railties (>= 4.2, < 5.3)
52-
ransack (>= 1.8.7)
53-
sass (~> 3.1)
54-
sprockets (< 4.1)
46+
formtastic_i18n (~> 0.4)
47+
inherited_resources (~> 1.7)
48+
jquery-rails (~> 4.2)
49+
kaminari (~> 1.0, >= 1.0.1)
50+
railties (>= 5.2, < 6.1)
51+
ransack (~> 2.1, >= 2.1.1)
52+
sassc-rails (~> 2.1)
53+
sprockets (>= 3.0, < 4.1)
5554
activejob (5.2.3)
5655
activesupport (= 5.2.3)
5756
globalid (>= 0.3.6)
@@ -76,7 +75,7 @@ GEM
7675
activesupport (>= 3.0.0)
7776
arel (9.0.0)
7877
bcrypt (3.1.13)
79-
bson (4.4.2)
78+
bson (4.7.1)
8079
builder (3.2.3)
8180
capybara (3.12.0)
8281
addressable
@@ -88,13 +87,6 @@ GEM
8887
xpath (~> 3.2)
8988
cliver (0.3.2)
9089
coderay (1.1.2)
91-
coffee-rails (4.2.2)
92-
coffee-script (>= 2.2.0)
93-
railties (>= 4.0.0)
94-
coffee-script (2.4.1)
95-
coffee-script-source
96-
execjs
97-
coffee-script-source (1.12.2)
9890
concurrent-ruby (1.1.5)
9991
crass (1.0.5)
10092
devise (4.7.1)
@@ -106,8 +98,7 @@ GEM
10698
diff-lcs (1.3)
10799
docile (1.3.1)
108100
erubi (1.8.0)
109-
execjs (2.7.0)
110-
ffi (1.10.0)
101+
ffi (1.12.1)
111102
formtastic (3.1.5)
112103
actionpack (>= 3.2.13)
113104
formtastic_i18n (0.6.0)
@@ -118,11 +109,11 @@ GEM
118109
activesupport (>= 4.1)
119110
i18n (1.6.0)
120111
concurrent-ruby (~> 1.0)
121-
inherited_resources (1.10.0)
122-
actionpack (>= 5.0, < 6.0)
112+
inherited_resources (1.11.0)
113+
actionpack (>= 5.0, < 6.1)
123114
has_scope (~> 0.6)
124-
railties (>= 5.0, < 6.0)
125-
responders (~> 2.0)
115+
railties (>= 5.0, < 6.1)
116+
responders (>= 2, < 4)
126117
jquery-rails (4.3.3)
127118
rails-dom-testing (>= 1, < 3)
128119
railties (>= 4.2.0)
@@ -161,10 +152,10 @@ GEM
161152
mini_mime (1.0.1)
162153
mini_portile2 (2.4.0)
163154
minitest (5.11.3)
164-
mongo (2.8.0)
155+
mongo (2.11.3)
165156
bson (>= 4.4.2, < 5.0.0)
166-
mongoid (6.4.2)
167-
activemodel (>= 5.1, < 6.0.0)
157+
mongoid (7.0.5)
158+
activemodel (>= 5.1, < 6.1)
168159
mongo (>= 2.5.1, < 3.0.0)
169160
nio4r (2.3.1)
170161
nokogiri (1.10.5)
@@ -174,6 +165,8 @@ GEM
174165
capybara (>= 2.1, < 4)
175166
cliver (~> 0.3.1)
176167
websocket-driver (>= 0.2.0)
168+
polyamorous (2.3.2)
169+
activerecord (>= 5.2.1)
177170
pry (0.12.2)
178171
coderay (~> 1.1.0)
179172
method_source (~> 0.9.0)
@@ -208,14 +201,11 @@ GEM
208201
rake (>= 0.8.7)
209202
thor (>= 0.19.0, < 2.0)
210203
rake (12.3.3)
211-
ransack (2.1.1)
212-
actionpack (>= 5.0)
213-
activerecord (>= 5.0)
214-
activesupport (>= 5.0)
204+
ransack (2.3.2)
205+
activerecord (>= 5.2.1)
206+
activesupport (>= 5.2.1)
215207
i18n
216-
rb-fsevent (0.10.3)
217-
rb-inotify (0.10.0)
218-
ffi (~> 1.0)
208+
polyamorous (= 2.3.2)
219209
regexp_parser (1.3.0)
220210
responders (2.4.1)
221211
actionpack (>= 4.2.0, < 6.0)
@@ -237,17 +227,16 @@ GEM
237227
rspec-mocks (~> 3.8.0)
238228
rspec-support (~> 3.8.0)
239229
rspec-support (3.8.0)
240-
sass (3.7.4)
241-
sass-listen (~> 4.0.0)
242-
sass-listen (4.0.0)
243-
rb-fsevent (~> 0.9, >= 0.9.4)
244-
rb-inotify (~> 0.9, >= 0.9.7)
245-
sass-rails (5.0.7)
246-
railties (>= 4.0.0, < 6)
247-
sass (~> 3.1)
248-
sprockets (>= 2.8, < 4.0)
249-
sprockets-rails (>= 2.0, < 4.0)
250-
tilt (>= 1.1, < 3)
230+
sass-rails (6.0.0)
231+
sassc-rails (~> 2.1, >= 2.1.1)
232+
sassc (2.2.1)
233+
ffi (~> 1.9)
234+
sassc-rails (2.1.2)
235+
railties (>= 4.0.0)
236+
sassc (>= 2.0)
237+
sprockets (> 3.0)
238+
sprockets-rails
239+
tilt
251240
simplecov (0.16.1)
252241
docile (~> 1.1)
253242
json (>= 1.8, < 3)
@@ -262,7 +251,7 @@ GEM
262251
sprockets (>= 3.0.0)
263252
thor (0.20.3)
264253
thread_safe (0.3.6)
265-
tilt (2.0.9)
254+
tilt (2.0.10)
266255
tzinfo (1.2.5)
267256
thread_safe (~> 0.1)
268257
warden (1.2.8)
@@ -286,7 +275,7 @@ DEPENDENCIES
286275
launchy
287276
poltergeist
288277
pry-rails
289-
rails (~> 5.2)
278+
rails (>= 5.2, < 6.1)
290279
ransack-mongoid!
291280
rspec-rails (~> 3.6)
292281
simplecov

README.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ ActiveAdmin is holding off on pulling Mongoid support into the core ActiveAdmin
1010
* Ruby 2.4.0 or greater.
1111
* Tested working on Rails 5.2.3
1212
* Mongoid 6.x (**WARNING**:, using a Mongoid version >= 6.1.x has resulted in a fair amount of errors seen in the wild. Test your upgrade very carefully with any apps in which you're using this gem with Mongoid >= 6.1.x!)
13-
* ActiveAdmin 1.4.3
13+
* ActiveAdmin 1.4.3 or greater
1414
* `ransack-mongoid` - it needs to be explicitly declared in Gemfile, pointing to github's master since it has no releases on rubygems yet.
1515

1616
## Previous versions
@@ -38,7 +38,7 @@ For more on Mongoid support in ActiveAdmin see [this issue](https://github.com/g
3838
Add the following gems to your application's Gemfile, and lock the version:
3939

4040
```ruby
41-
gem 'activeadmin-mongoid', '0.9.0'
41+
gem 'activeadmin-mongoid', '1.0.0'
4242
gem 'ransack-mongoid', github: 'activerecord-hackery/ransack-mongoid'
4343
```
4444

@@ -61,6 +61,7 @@ with:
6161
require "action_controller/railtie"
6262
require "action_mailer/railtie"
6363
require "active_resource/railtie"
64+
require "action_view/railtie"
6465
require "sprockets/railtie"
6566
require "rails/test_unit/railtie"
6667
```

activeadmin-mongoid.gemspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ Gem::Specification.new do |gem|
2020

2121
gem.required_ruby_version = '>= 2.4'
2222

23-
gem.add_runtime_dependency 'mongoid', ['~> 6.0']
23+
gem.add_runtime_dependency 'mongoid', '>= 6.0', '< 8.a'
2424
gem.add_runtime_dependency 'activeadmin', '>= 1.4.3'
2525
gem.add_runtime_dependency 'kaminari-mongoid'
2626
gem.add_runtime_dependency 'jquery-rails'

lib/active_admin/mongoid.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
require 'active_admin/mongoid/helpers/collection'
1414
require 'active_admin/mongoid/criteria'
1515
require 'active_admin/mongoid/order_clause'
16+
require 'active_admin/mongoid/association/relatable'
1617

1718
require 'active_admin/mongoid/inputs/filters/check_boxes_input'
1819
require 'active_admin/mongoid/inputs/filters/select_input'
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
Mongoid::Association::Relatable.module_eval do
2+
def macro
3+
self.class.name.split('::').last.underscore.to_sym
4+
end
5+
6+
def embeds?
7+
[:embeds_one, :embeds_many].include?(macro)
8+
end
9+
10+
def foreign_key
11+
return if embeds?
12+
foreign_key.to_sym rescue nil
13+
end
14+
end

lib/active_admin/mongoid/filters/resource_extension.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@
33
module ActiveAdmin::Filters::ResourceExtension
44
def default_association_filters
55
if resource_class.respond_to?(:reflect_on_all_associations)
6-
without_embedded = resource_class.reflect_on_all_associations.reject { |e| [:embeds_many, :embeds_one].include? e.macro }
6+
without_embedded = resource_class.reflect_on_all_associations.reject { |e| e.embeds? }
77
poly, not_poly = without_embedded.partition{ |r| r.macro == :belongs_to && r.options[:polymorphic] }
88

9-
filters = poly.map(&:foreign_type) + not_poly.map(&:name)
9+
filters = poly.map(&:foreign_key) + not_poly.map(&:name)
1010
filters.map &:to_sym
1111
else
1212
[]

test_app/config/mongoid.6.yml

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,3 @@
1-
development:
2-
clients:
3-
default:
4-
database: activeadmin_mongoid_development
5-
hosts:
6-
- localhost:27017
7-
81
test:
92
clients:
103
default:

test_app/config/mongoid.7.yml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
development:
2+
clients:
3+
default:
4+
database: activeadmin_mongoid_development
5+
hosts:
6+
- localhost:27017
7+
8+
test:
9+
clients:
10+
default:
11+
database: activeadmin_mongoid_test
12+
hosts:
13+
- localhost:27017
14+
#scope_overwrite_exception: true

0 commit comments

Comments
 (0)