effective_resources 1.8.1 → 1.8.2
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fc4db438688ecdd123360281ec6cfbe5b7aede01451615bcee92c566f186081c
|
4
|
+
data.tar.gz: fa9154d7b1942bd0e8023f8795b670313260bc0cb7c22b84f2cd9c8d993e8ee1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 80b67a72b7a4f700b788d906a4db3c7e6e58f758f1d8f64d31178875c11c8021df2c706b86763efeba151a44b62cd07d19b46b0c2d354a20dd0831ee04aef89f
|
7
|
+
data.tar.gz: 1f18e82c58fdae3ff884659c7166825727a19e90a28a55add1d952dea32e7ee3cdabe1bf251b7bbb83d8c72017c99df22defffedf8d9720092a24876c212175b
|
@@ -42,6 +42,11 @@ module ActsAsSlugged
|
|
42
42
|
|
43
43
|
where(slug: args.first).or(where(id: args.first)).first || raise(::ActiveRecord::RecordNotFound.new("Couldn't find #{name} with 'slug'=#{args.first}"))
|
44
44
|
end
|
45
|
+
|
46
|
+
def find_by_slug_or_id(*args)
|
47
|
+
where(slug: args.first).or(where(id: args.first)).first
|
48
|
+
end
|
49
|
+
|
45
50
|
end
|
46
51
|
|
47
52
|
# Instance Methods
|
@@ -0,0 +1,56 @@
|
|
1
|
+
# HasManyRichTexts
|
2
|
+
#
|
3
|
+
# Mark your model with 'has_many_rich_texts' and then any method missing is a rich text region
|
4
|
+
|
5
|
+
module HasManyRichTexts
|
6
|
+
extend ActiveSupport::Concern
|
7
|
+
|
8
|
+
module Base
|
9
|
+
def has_many_rich_texts(options = nil)
|
10
|
+
include ::HasManyRichTexts
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
included do
|
15
|
+
has_many :rich_texts, class_name: 'ActionText::RichText', as: :record, inverse_of: :record, dependent: :destroy
|
16
|
+
accepts_nested_attributes_for :rich_texts, allow_destroy: true
|
17
|
+
end
|
18
|
+
|
19
|
+
module ClassMethods
|
20
|
+
end
|
21
|
+
|
22
|
+
# Find or build
|
23
|
+
def rich_text(name)
|
24
|
+
name = name.to_s
|
25
|
+
rich_texts.find { |rt| rt.name == name } || rich_texts.build(name: name)
|
26
|
+
end
|
27
|
+
|
28
|
+
def rich_text_body=(name, body)
|
29
|
+
rich_text(name).assign_attributes(body: body)
|
30
|
+
end
|
31
|
+
|
32
|
+
# Prevents an ActiveModel::UnknownAttributeError
|
33
|
+
# https://github.com/rails/rails/blob/main/activemodel/lib/active_model/attribute_assignment.rb#L48
|
34
|
+
def respond_to?(*args)
|
35
|
+
method = args.first.to_s
|
36
|
+
return false if ['to_a', 'to_ary'].any? { |str| method == str }
|
37
|
+
return false if ['_by', '_at', '_id', '_by=', '_at=', 'id='].any? { |str| method.end_with?(str) }
|
38
|
+
true
|
39
|
+
end
|
40
|
+
|
41
|
+
def method_missing(method, *args, &block)
|
42
|
+
super if block_given?
|
43
|
+
super unless respond_to?(method)
|
44
|
+
|
45
|
+
method = method.to_s
|
46
|
+
|
47
|
+
if method.end_with?('=') && args.length == 1 && (args.first.kind_of?(String) || args.first.kind_of?(NilClass))
|
48
|
+
send(:rich_text_body=, method.chomp('='), *args)
|
49
|
+
elsif args.length == 0
|
50
|
+
send(:rich_text, method, *args)
|
51
|
+
else
|
52
|
+
super
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
end
|
@@ -27,6 +27,7 @@ module EffectiveResources
|
|
27
27
|
ActiveRecord::Base.extend(ActsAsSlugged::Base)
|
28
28
|
ActiveRecord::Base.extend(ActsAsStatused::Base)
|
29
29
|
ActiveRecord::Base.extend(ActsAsWizard::Base)
|
30
|
+
ActiveRecord::Base.extend(HasManyRichTexts::Base)
|
30
31
|
|
31
32
|
ActiveRecord::Base.extend(EffectiveDeviseUser::Base)
|
32
33
|
ActiveRecord::Base.extend(EffectiveResource::Base)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: effective_resources
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.8.
|
4
|
+
version: 1.8.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Code and Effect
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-03-
|
11
|
+
date: 2021-03-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -143,6 +143,7 @@ files:
|
|
143
143
|
- app/models/concerns/acts_as_wizard.rb
|
144
144
|
- app/models/concerns/effective_devise_user.rb
|
145
145
|
- app/models/concerns/effective_resource.rb
|
146
|
+
- app/models/concerns/has_many_rich_texts.rb
|
146
147
|
- app/models/effective/access_denied.rb
|
147
148
|
- app/models/effective/action_failed.rb
|
148
149
|
- app/models/effective/attribute.rb
|