active_admin_simple_life 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +12 -0
- data/lib/active_admin_simple_life/version.rb +1 -1
- data/lib/generators/active_admin_simple_life/simple_config_generator.rb +30 -0
- data/lib/generators/active_admin_simple_life/templates/array.rb +11 -0
- data/lib/generators/active_admin_simple_life/templates/config_admin.rb +40 -0
- data/lib/generators/active_admin_simple_life/templates/config_model.rb +27 -0
- data/lib/generators/active_admin_simple_life/templates/require_lib.rb +2 -0
- metadata +6 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4dbb9fd0eac672fd2b9f57ca4243839719b16c7c
|
4
|
+
data.tar.gz: a6f3c276440b9b8a69294745b256d47d2b1b240a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b737608ba11584d5e318e575b0e8c1655c2d1a850589b66e834e4a2a8c4ee552e524757f8005e9bd8909e0c76a0df921fc7cc9876fdd9c9bc5ab825e1dc46fb5
|
7
|
+
data.tar.gz: 433b2308c7da1455bad83e00addb86a0e7b23e369ba1978c8f072015aeb2a91a42f4dd7a3ea09d86bc71b1fd2262e77a1aec21855c48c9b5a270dceaa8b5a358
|
data/README.md
CHANGED
@@ -56,6 +56,13 @@ Parts of `simple_menu_for` may be used for other purposes with:
|
|
56
56
|
Other feature is simple menu with 1 single nested klass. For it I made
|
57
57
|
* `nested_form_for_main_fields klass, nested_klass`
|
58
58
|
|
59
|
+
###Goodies
|
60
|
+
|
61
|
+
Added generator with simple settings model for future use. I find it reusable,
|
62
|
+
so, you may like it. For installation run
|
63
|
+
|
64
|
+
`rails g active_admin_simple_life:simple_config`
|
65
|
+
|
59
66
|
###I18n
|
60
67
|
|
61
68
|
For boolean data only
|
@@ -66,3 +73,8 @@ en:
|
|
66
73
|
active: 'Active'
|
67
74
|
not_active: 'Not active'
|
68
75
|
```
|
76
|
+
|
77
|
+
###PS:
|
78
|
+
After making this gem a found this
|
79
|
+
[article](http://tmichel.github.io/2015/02/22/sharing-code-between-activeadmin-resources/),
|
80
|
+
it may be useful.
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require "rails/generators"
|
3
|
+
module ActiveAdminSimpleLife
|
4
|
+
class SimpleConfigGenerator < Rails::Generators::Base
|
5
|
+
source_root File.expand_path("../templates", __FILE__)
|
6
|
+
|
7
|
+
desc "Generates simple configuration table for active_admin"
|
8
|
+
|
9
|
+
def generate_migration
|
10
|
+
run "rails g model config title:string internal_name:string:index configurable:references{polymorphic} primitive:string:true"
|
11
|
+
end
|
12
|
+
|
13
|
+
def copy_model_file
|
14
|
+
remove_file "app/models/config.rb"
|
15
|
+
copy_file "config_model.rb", "app/models/config.rb"
|
16
|
+
end
|
17
|
+
|
18
|
+
def copy_admin_file
|
19
|
+
copy_file "config_admin.rb", "app/admin/config.rb"
|
20
|
+
end
|
21
|
+
|
22
|
+
def add_lib_dir
|
23
|
+
copy_file "require_lib.rb", "config/initializers/require_lib.rb"
|
24
|
+
end
|
25
|
+
|
26
|
+
def extend_array_method
|
27
|
+
copy_file "array.rb", "lib/array.rb"
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
class Array
|
3
|
+
def fetch_all_objects_from_klasses
|
4
|
+
inject([]) do |a, klass|
|
5
|
+
a << klass.all.map do |object|
|
6
|
+
[I18n.t("activerecord.singular_models.#{klass.to_s.underscore}") + " - #{object}",
|
7
|
+
"#{object.class}##{object.id}"]
|
8
|
+
end
|
9
|
+
end.flatten(1)
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
ActiveAdmin.register Config do
|
3
|
+
menu priority: 10
|
4
|
+
permit_params(*(Config.main_fields + [:configurable_identifier]))
|
5
|
+
actions :all, except: [:show]
|
6
|
+
|
7
|
+
index do
|
8
|
+
selectable_column
|
9
|
+
id_column
|
10
|
+
[:title, :internal_name].each { |field| column field }
|
11
|
+
column :configurable do |c|
|
12
|
+
if c.configurable
|
13
|
+
link_to I18n.t("activerecord.models.#{c.configurable_type.underscore}") + " - #{c.configurable}",
|
14
|
+
[:admin, c.configurable]
|
15
|
+
else
|
16
|
+
c.primitive
|
17
|
+
end
|
18
|
+
end
|
19
|
+
actions
|
20
|
+
end
|
21
|
+
|
22
|
+
[:title, :internal_name].each { |f| filter f }
|
23
|
+
|
24
|
+
# Inject needed classes here, which will be listed in select
|
25
|
+
# object_list = [Foo, Bar, Baz]
|
26
|
+
object_list = []
|
27
|
+
|
28
|
+
form do |f|
|
29
|
+
f.semantic_errors(*f.object.errors.keys)
|
30
|
+
f.inputs do
|
31
|
+
f.input :title
|
32
|
+
f.input :internal_name
|
33
|
+
f.input :configurable_identifier,
|
34
|
+
collection: object_list.fetch_all_objects_from_klasses,
|
35
|
+
value: "#{resource.class}##{resource.id}"
|
36
|
+
f.input :primitive
|
37
|
+
end
|
38
|
+
f.actions
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
class Config < ActiveRecord::Base
|
3
|
+
belongs_to :configurable, polymorphic: true
|
4
|
+
validates :title, :internal_name, presence: true
|
5
|
+
validates :title, :internal_name, uniqueness: true
|
6
|
+
|
7
|
+
attr_accessor :configurable_identifier
|
8
|
+
|
9
|
+
def self.main_fields
|
10
|
+
[:title, :internal_name, :configurable, :primitive]
|
11
|
+
end
|
12
|
+
|
13
|
+
def configurable_identifier
|
14
|
+
"#{configurable_type}##{configurable_id}"
|
15
|
+
end
|
16
|
+
|
17
|
+
def configurable_identifier=(data)
|
18
|
+
if data.present?
|
19
|
+
config_data = data.split('#')
|
20
|
+
self.configurable_type = config_data[0]
|
21
|
+
self.configurable_id = config_data[1]
|
22
|
+
else
|
23
|
+
self.configurable_type = nil
|
24
|
+
self.configurable_id = nil
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: active_admin_simple_life
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kvokka
|
@@ -24,20 +24,6 @@ dependencies:
|
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 4.2.0
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: activeadmin
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - ">="
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: '0'
|
34
|
-
type: :runtime
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - ">="
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: '0'
|
41
27
|
description: This gem provide the ability to create ActiveAdmin resourceswith 1 line
|
42
28
|
and avoid code duplication.
|
43
29
|
email:
|
@@ -56,6 +42,11 @@ files:
|
|
56
42
|
- lib/active_admin_simple_life/menu_elements.rb
|
57
43
|
- lib/active_admin_simple_life/simple_menu.rb
|
58
44
|
- lib/active_admin_simple_life/version.rb
|
45
|
+
- lib/generators/active_admin_simple_life/simple_config_generator.rb
|
46
|
+
- lib/generators/active_admin_simple_life/templates/array.rb
|
47
|
+
- lib/generators/active_admin_simple_life/templates/config_admin.rb
|
48
|
+
- lib/generators/active_admin_simple_life/templates/config_model.rb
|
49
|
+
- lib/generators/active_admin_simple_life/templates/require_lib.rb
|
59
50
|
- lib/tasks/active_admin_simple_life_tasks.rake
|
60
51
|
homepage: https://github.com/kvokka/active_admin_simple_life
|
61
52
|
licenses:
|