rails-rapido 0.3.2 → 0.3.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8d0cc71591ad6a2b6b8b2226f0c8c7a6a336599a
4
- data.tar.gz: 0560d78f59cdc2e438558dc83b8eaa4375f1534b
3
+ metadata.gz: ca32937003fab6959385c900d1fdc932944ec353
4
+ data.tar.gz: 5f3c3f531a06425f60450498f1901fc7408ebc57
5
5
  SHA512:
6
- metadata.gz: 39b81c33f1dbd7dfdbf72c2c0640698e4805df177d92916b447d954df1b922c8dd4861881d7f6a5546e80ec3f56aff728005d8229688510388046c2d72eaab0f
7
- data.tar.gz: cd4497effc05b8e1b62d8774065fec76c7b5332857896dc133be45b782e1250cbb4c46ce3cc287f9fbb925dedbd261ee3fa8d81e804d60e9335504addce236cc
6
+ metadata.gz: 98cde731a822eb1c3071f3c910d6ca73f0ab60263a65ce60f3c3dd98213a2a169825eb5fb511353ff2f78ce060f42105d5103e4fef331ad23c6e82cf1825d595
7
+ data.tar.gz: a139dd6fb0fe5a694433ba90afc432b813484c3988e6b2764bf19a000a3b1576ca9a59c0d1947db0f21f4d660d99cee2dda802f8b832819372587f1cdf249090
@@ -1,4 +1,4 @@
1
- h2= [@owner.name, @resource_class.name.capitalize.pluralize].compact.join(" ")
1
+ h2= [@owner&.name, @resource_class.name.capitalize.pluralize].compact.join(" ")
2
2
  = link_to "New #{@resource_class.name.capitalize}", @new_path
3
3
  table
4
4
  thead
@@ -11,4 +11,5 @@ table
11
11
  - if index == 0
12
12
  td= link_to resource.name, url_for([@owner, resource].compact)
13
13
  - else
14
+ - next if resource.name == resource[key]
14
15
  td= resource[key]
@@ -1,3 +1,4 @@
1
+ h1 New #{@resource.class.name}
1
2
  = simple_form_for([@owner, @resource].compact) do |f|
2
3
  - @resource_permitted_params.each do |param|
3
4
  = f.input param
@@ -8,3 +8,6 @@ dl
8
8
  - @resource.to_h.each do |key, value|
9
9
  dt= key
10
10
  dd= value
11
+
12
+ - owned_resources.each do |owned_resource|
13
+ = link_to "View #{owned_resource.to_s.pluralize.capitalize}", url_for([nil, @owner, @resource, owned_resource].compact)
@@ -11,6 +11,7 @@ module Rapido
11
11
  before_action do
12
12
  resource_permitted_params
13
13
  end
14
+ helper_method :owned_resources
14
15
  end
15
16
 
16
17
  def index
@@ -22,7 +23,7 @@ module Rapido
22
23
  end
23
24
 
24
25
  def new
25
- @resource = owner.send(resource_class_name.pluralize).new
26
+ @resource = resource_base.send(resource_class_name.pluralize).new
26
27
  end
27
28
 
28
29
  def create
@@ -36,7 +37,9 @@ module Rapido
36
37
  end
37
38
 
38
39
  def destroy
39
- resource.destroy
40
+ unless resource.destroy
41
+ flash[:error] = resource.errors.full_messages.join('. ')
42
+ end
40
43
  redirect_to after_delete_path(resource)
41
44
  end
42
45
 
@@ -13,6 +13,10 @@ module Rapido
13
13
  @authority_getter = sym.to_sym
14
14
  end
15
15
 
16
+ def belongs_to_nothing!
17
+ @belongs_to_nothing = true
18
+ end
19
+
16
20
  def belongs_to(sym, opts = {})
17
21
  @owner_class = sym.to_sym
18
22
  return @owner_getter = opts[:getter] if opts[:getter]
@@ -25,6 +29,11 @@ module Rapido
25
29
  end
26
30
  end
27
31
 
32
+ def has_many(sym)
33
+ @owned_resources ||= []
34
+ @owned_resources << sym
35
+ end
36
+
28
37
  def owner_lookup_defaults
29
38
  owner_lookup_param(@owner_class, :id)
30
39
  owner_lookup_field(:id)
@@ -67,7 +76,8 @@ module Rapido
67
76
  if setting(:free_from_authority)
68
77
  nil
69
78
  else
70
- send(setting(:authority_getter))
79
+ send(setting(:authority_getter) ||
80
+ self.class.superclass.instance_variable_get(:@authority_getter))
71
81
  end
72
82
  end
73
83
  end
@@ -87,13 +97,13 @@ module Rapido
87
97
  end
88
98
 
89
99
  def build_resource
90
- owner.send(resource_class_name.pluralize).new(resource_params)
100
+ resource_base.send(resource_class_name.pluralize).new(resource_params)
91
101
  end
92
102
 
93
103
  def resource_collection
94
104
  @resource_collection ||= begin
95
- raise RecordNotFound unless owner
96
- owner.send(resource_class_name.pluralize).page(params[:page])
105
+ raise RecordNotFound unless setting(:belongs_to_nothing) || owner
106
+ resource_base.send(resource_class_name.pluralize).page(params[:page])
97
107
  end
98
108
  end
99
109
 
@@ -122,7 +132,9 @@ module Rapido
122
132
 
123
133
  def owner
124
134
  @owner ||= begin
125
- if setting(:owner_getter)
135
+ if setting(:belongs_to_nothing)
136
+ nil
137
+ elsif setting(:owner_getter)
126
138
  send(setting(:owner_getter))
127
139
  else
128
140
  if setting(:free_from_authority)
@@ -137,13 +149,17 @@ module Rapido
137
149
  end
138
150
  end
139
151
 
152
+ def resource_base
153
+ setting(:belongs_to_nothing) ? authority : owner
154
+ end
155
+
140
156
  def resource
141
157
  @resource ||= begin
142
- owner
143
- .send(resource_class_name.pluralize)
144
- .find_by!(resource_lookup_param => params[resource_lookup_param])
145
- rescue ActiveRecord::RecordNotFound
146
- raise RecordNotFound
158
+ resource_base
159
+ .send(resource_class_name.pluralize)
160
+ .find_by!(resource_lookup_param => params[resource_lookup_param])
161
+ rescue ActiveRecord::RecordNotFound
162
+ raise RecordNotFound
147
163
  end
148
164
  end
149
165
 
@@ -166,6 +182,10 @@ module Rapido
166
182
  self.class.name.split('::')[-1].remove('Controller').singularize.underscore
167
183
  end
168
184
 
185
+ def owned_resources
186
+ @owned_resources ||= setting(:owned_resources) || []
187
+ end
188
+
169
189
  def setting(var)
170
190
  self.class.instance_variable_get("@#{var}")
171
191
  end
@@ -1,3 +1,3 @@
1
1
  module Rapido
2
- VERSION = '0.3.2'
2
+ VERSION = '0.3.3'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails-rapido
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jonathan Kirst
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-10-29 00:00:00.000000000 Z
11
+ date: 2017-11-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: kaminari