activeadmin_active_resource 0.2.0 → 0.2.4
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 +4 -4
- data/README.md +19 -11
- data/lib/activeadmin/active_resource/engine.rb +30 -4
- data/lib/activeadmin/active_resource/version.rb +1 -1
- metadata +128 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 90cbc4a293441580fae9b56c4ca2e5174df2c2e1db140a1e06be080e214af5e1
|
4
|
+
data.tar.gz: fffc4c46e2aa3c352d8d8e94fa0f6adb13b16ee2c094941484b5e7b4246c0981
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7d17626dfce7aec903b32dc299856397bc01cfb92ec93ca4d133e46c52224a2bbf4527da5f64c157e63c1c8cb8ac125ff8a0f8215caebc1fed085eac2be5eccd
|
7
|
+
data.tar.gz: 92638fb4870396b7824eeefb47035285517b4f689a9416e2cd5ada29b9ef7d58d45eadb99c36ce0cdcc7b78ea731ba4d2babc7abef02bae1cf5f57c3b719e7e7
|
data/README.md
CHANGED
@@ -1,18 +1,26 @@
|
|
1
|
-
#
|
1
|
+
# Active Admin + Active Resource
|
2
|
+
[](https://badge.fury.io/rb/activeadmin_active_resource) [](https://circleci.com/gh/blocknotes/activeadmin_active_resource)
|
2
3
|
|
3
|
-
An
|
4
|
+
An Active Admin plugin to use a REST API data source in place of a local database using [Active Resource](https://github.com/rails/activeresource).
|
4
5
|
|
5
|
-
|
6
|
+
NOTICE: currently some Active Admin features don't work as expected:
|
6
7
|
- Filters: partially supported (see example)
|
7
|
-
-
|
8
|
+
- Form fields: some fields must be configured explicitly
|
8
9
|
- Comments: not supported
|
9
10
|
|
10
11
|
## Install
|
11
|
-
- Add to your Gemfile: `gem 'activeadmin_active_resource'`
|
12
|
+
- Add to your project's Gemfile (with Active Admin installed): `gem 'activeadmin_active_resource'`
|
12
13
|
- Execute bundle
|
13
|
-
- Disable comments in
|
14
|
+
- Disable comments in Active Admin config initializer (`config.comments = false`)
|
14
15
|
|
15
|
-
##
|
16
|
+
## Examples
|
17
|
+
Please take a look at the examples folder:
|
18
|
+
- a Rails6 application with Active Admin and this component, see [here](examples/rails6-admin);
|
19
|
+
- a Rails6 API application used as data source, see [here](examples/rails6-api).
|
20
|
+
|
21
|
+
For another example check the [specs](spec).
|
22
|
+
|
23
|
+
Basic instructions:
|
16
24
|
- Post model:
|
17
25
|
```rb
|
18
26
|
class Post < ActiveResource::Base
|
@@ -72,15 +80,15 @@ end
|
|
72
80
|
```
|
73
81
|
|
74
82
|
## Notes
|
75
|
-
If you create a new rails project don't use *--skip-active-record
|
83
|
+
If you create a new rails project don't use *--skip-active-record*.
|
76
84
|
|
77
85
|
## Do you like it? Star it!
|
78
86
|
If you use this component just star it. A developer is more motivated to improve a project when there is some interest.
|
79
87
|
|
80
|
-
Take a look at [other
|
88
|
+
Take a look at [other Active Admin components](https://github.com/blocknotes?utf8=✓&tab=repositories&q=activeadmin&type=source) if you are curious.
|
81
89
|
|
82
90
|
## Contributors
|
83
|
-
[Mattia Roccoberton](http://blocknot.es): author
|
91
|
+
- [Mattia Roccoberton](http://blocknot.es): author
|
84
92
|
|
85
93
|
## License
|
86
|
-
[MIT](LICENSE.txt)
|
94
|
+
The gem is available as open-source under the terms of the [MIT](LICENSE.txt).
|
@@ -15,6 +15,13 @@ end
|
|
15
15
|
|
16
16
|
self.collection_parser = ActiveAdmin::ActiveResource::Results
|
17
17
|
|
18
|
+
# ref: https://api.rubyonrails.org/classes/ActiveRecord/AttributeMethods/ClassMethods.html#method-i-column_for_attribute
|
19
|
+
def column_for_attribute(name)
|
20
|
+
# => ActiveRecord::ConnectionAdapters::Column
|
21
|
+
col_name = name.to_s
|
22
|
+
send(:class).columns.find { |col| col.name == col_name }
|
23
|
+
end
|
24
|
+
|
18
25
|
class << self
|
19
26
|
prepend(FindExt = Module.new do
|
20
27
|
def find(*arguments)
|
@@ -35,14 +42,32 @@ end
|
|
35
42
|
{}
|
36
43
|
end
|
37
44
|
|
38
|
-
#
|
45
|
+
# ref: https://api.rubyonrails.org/classes/ActiveRecord/ModelSchema/ClassMethods.html#method-i-content_columns
|
46
|
+
def content_columns
|
47
|
+
@content_columns ||= columns.reject do |c|
|
48
|
+
# c.name == primary_key || # required to update enities
|
49
|
+
c.name == inheritance_column ||
|
50
|
+
c.name.end_with?("_id") ||
|
51
|
+
c.name.end_with?("_count")
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
# ref: http://api.rubyonrails.org/classes/ActiveRecord/ModelSchema/ClassMethods.html#method-i-column_names
|
39
56
|
def column_names
|
40
57
|
@column_names ||= columns.map(&:name)
|
41
58
|
end
|
42
59
|
|
43
|
-
#
|
60
|
+
# ref: http://api.rubyonrails.org/classes/ActiveRecord/ModelSchema/ClassMethods.html#method-i-columns
|
44
61
|
def columns
|
45
|
-
|
62
|
+
# => array of ActiveRecord::ConnectionAdapters::Column
|
63
|
+
@columns ||= begin
|
64
|
+
schema.map do |name, type|
|
65
|
+
col_name = name.to_s
|
66
|
+
col_type = type.to_sym
|
67
|
+
col_type = :hidden if col_name == 'id'
|
68
|
+
OpenStruct.new(name: col_name, type: col_type)
|
69
|
+
end
|
70
|
+
end
|
46
71
|
end
|
47
72
|
|
48
73
|
def find_all(options = {})
|
@@ -111,7 +136,8 @@ end
|
|
111
136
|
end
|
112
137
|
|
113
138
|
::ActiveResource::Connection.class_eval do
|
139
|
+
# ref: https://api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/Quoting.html#method-i-quote_column_name
|
114
140
|
def quote_column_name(column_name)
|
115
|
-
column_name
|
141
|
+
column_name.to_s
|
116
142
|
end
|
117
143
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: activeadmin_active_resource
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mattia Roccoberton
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-10-
|
11
|
+
date: 2020-10-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activeadmin
|
@@ -38,6 +38,34 @@ dependencies:
|
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: 5.1.1
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: activestorage
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 6.0.3.2
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 6.0.3.2
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: capybara
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 3.33.0
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 3.33.0
|
41
69
|
- !ruby/object:Gem::Dependency
|
42
70
|
name: pry
|
43
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -52,6 +80,48 @@ dependencies:
|
|
52
80
|
- - "~>"
|
53
81
|
- !ruby/object:Gem::Version
|
54
82
|
version: 0.13.1
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: puma
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 4.3.5
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: 4.3.5
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: rspec_junit_formatter
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 0.4.1
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 0.4.1
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: rspec-rails
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: 4.0.1
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: 4.0.1
|
55
125
|
- !ruby/object:Gem::Dependency
|
56
126
|
name: rubocop
|
57
127
|
requirement: !ruby/object:Gem::Requirement
|
@@ -66,6 +136,62 @@ dependencies:
|
|
66
136
|
- - "~>"
|
67
137
|
- !ruby/object:Gem::Version
|
68
138
|
version: 0.90.0
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: selenium-webdriver
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - "~>"
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: 3.142.7
|
146
|
+
type: :development
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - "~>"
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: 3.142.7
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: sqlite3
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - "~>"
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: 1.4.2
|
160
|
+
type: :development
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - "~>"
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: 1.4.2
|
167
|
+
- !ruby/object:Gem::Dependency
|
168
|
+
name: vcr
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - "~>"
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: 6.0.0
|
174
|
+
type: :development
|
175
|
+
prerelease: false
|
176
|
+
version_requirements: !ruby/object:Gem::Requirement
|
177
|
+
requirements:
|
178
|
+
- - "~>"
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: 6.0.0
|
181
|
+
- !ruby/object:Gem::Dependency
|
182
|
+
name: webmock
|
183
|
+
requirement: !ruby/object:Gem::Requirement
|
184
|
+
requirements:
|
185
|
+
- - "~>"
|
186
|
+
- !ruby/object:Gem::Version
|
187
|
+
version: 3.9.2
|
188
|
+
type: :development
|
189
|
+
prerelease: false
|
190
|
+
version_requirements: !ruby/object:Gem::Requirement
|
191
|
+
requirements:
|
192
|
+
- - "~>"
|
193
|
+
- !ruby/object:Gem::Version
|
194
|
+
version: 3.9.2
|
69
195
|
description: An Active Admin plugin to use Active Resource
|
70
196
|
email: mat@blocknot.es
|
71
197
|
executables: []
|