resource_renderer 1.1.1 → 1.2.0

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: 4e71b554764f33add56213232ba2b82b0aee2494
4
- data.tar.gz: 959dcd0dff1a0f96553e521aa4bf52ac064ed832
3
+ metadata.gz: d2d01cf0d5e32d365bbf31dc58a3c53bc21a613b
4
+ data.tar.gz: 4d83cb1d6b9bdaf677f697974ed2334903562f32
5
5
  SHA512:
6
- metadata.gz: c8f759b439f35102d81fc3352dd0159a8097b0c6e5d05462e7737c48b4ba486fafcdd57782b94ed0d7dde3469ce337fbd71b5177c82c4a68ca724c8a46d033a8
7
- data.tar.gz: 09bd534ca52329d09d167cda8f94db2687197431fd181259ec586c1cca0cd9eef0d3cdc4e5974520d7873aa35839e199dd4ae10e853f14526f6cd7eb95102c9b
6
+ metadata.gz: ee0fd6cc858bb4f9dfab9ed6d53bcdabd7456f5fca8a0cce8f2ea781d27c74aead4fa4fdbd5cc1b09a1ce93e0f9f99c1ae9314162bebdc7097ddded9d7783373
7
+ data.tar.gz: 4ea7b6497477f3d7aca6f8507eafc57841b44ddca98c39a89a720f0baeed18d6491cabd0da6279bb55c679e0337cbfb2f946b6d1a3af40ec71248b8e4b769a3c
@@ -0,0 +1,7 @@
1
+ class ArrayRenderer < ResourceRenderer::AttributeRenderer::Base
2
+ private
3
+
4
+ def value_for_attribute(attribute_name)
5
+ model.send(attribute_name).to_sentence
6
+ end
7
+ end
@@ -0,0 +1,2 @@
1
+ class FloatRenderer < ResourceRenderer::AttributeRenderer::Base
2
+ end
@@ -0,0 +1,7 @@
1
+ class GenericRenderer < ResourceRenderer::AttributeRenderer::Base
2
+ private
3
+
4
+ def value_for_attribute(attribute_name)
5
+ model.send(attribute_name).inspect
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ class HashRenderer < ResourceRenderer::AttributeRenderer::Base
2
+ private
3
+
4
+ def value_for_attribute(attribute_name)
5
+ model.send(attribute_name).inspect
6
+ end
7
+ end
@@ -8,6 +8,8 @@ class ThumbnailRenderer < ResourceRenderer::AttributeRenderer::Base
8
8
  return unless attachment.respond_to?(:url)
9
9
  source = attachment.url(style)
10
10
 
11
- helper.image_tag(source, image_tag_options)
11
+ helper.link_to(attachment.url, { data: { gallery: 'gallery' } }) do
12
+ helper.image_tag(source, image_tag_options)
13
+ end
12
14
  end
13
15
  end
@@ -0,0 +1,2 @@
1
+ class BootstrapMediaObjectCollectionRenderer < ResourceRenderer::CollectionRenderer::Base
2
+ end
@@ -6,6 +6,6 @@ class BootstrapTableCollectionRenderer < TableCollectionRenderer
6
6
  end
7
7
 
8
8
  def table_html_options
9
- { class: 'table table-responsive table-condensed table-striped table-hover' }
9
+ @table_html_options || { class: 'table table-responsive table-condensed table-striped table-hover' }
10
10
  end
11
11
  end
@@ -1,10 +1,10 @@
1
1
  module ResourceRenderer
2
2
  module CollectionRenderer
3
3
  class Base
4
- attr_accessor :helper, :collection, :resource_class
4
+ attr_accessor :helper, :collection, :resource_class, :options
5
5
 
6
- def initialize(collection, resource_class, helper)
7
- @collection, @resource_class, @helper = collection, resource_class, helper
6
+ def initialize(collection, resource_class, helper, options = {})
7
+ @collection, @resource_class, @helper, @options = collection, resource_class, helper, options
8
8
  end
9
9
 
10
10
  def render(&block)
@@ -29,7 +29,13 @@ class TableCollectionRenderer < ResourceRenderer::CollectionRenderer::Base
29
29
  else
30
30
  attribute_name
31
31
  end
32
- helper.content_tag(:th, label)
32
+ helper.content_tag(:th, label, id: "table-header-#{attribute_name}")
33
+ end
34
+
35
+ def columns
36
+ resource_class.attribute_names.collect do |name|
37
+ column name
38
+ end.join.html_safe
33
39
  end
34
40
 
35
41
  def timestamps
@@ -37,6 +43,10 @@ class TableCollectionRenderer < ResourceRenderer::CollectionRenderer::Base
37
43
  column(:updated_at, sortable: true)
38
44
  end
39
45
 
46
+ def userstamps
47
+ column(:creator, sortable: true) +
48
+ column(:updater, sortable: true)
49
+ end
40
50
  def acts_as_published_actions
41
51
  column(:acts_as_published_actions)
42
52
  end
@@ -63,7 +73,7 @@ class TableCollectionRenderer < ResourceRenderer::CollectionRenderer::Base
63
73
 
64
74
  sort_link = helper.sort_link(ransack_query, sort_by, label)
65
75
 
66
- helper.content_tag(:th, sort_link)
76
+ helper.content_tag(:th, sort_link, id: "table-header-#{attribute_name}")
67
77
  end
68
78
 
69
79
  def ransack_query
@@ -71,6 +81,14 @@ class TableCollectionRenderer < ResourceRenderer::CollectionRenderer::Base
71
81
  end
72
82
  end
73
83
 
84
+ attr_accessor :table_html_options
85
+
86
+ def initialize(*args)
87
+ super
88
+ options.reverse_merge(table_html_options: {})
89
+ self.table_html_options = options.delete(:table_html_options)
90
+ end
91
+
74
92
  def render(&block)
75
93
  helper.capture do
76
94
  helper.content_tag(:table, table_html_options) do
@@ -82,10 +100,6 @@ class TableCollectionRenderer < ResourceRenderer::CollectionRenderer::Base
82
100
 
83
101
  private
84
102
 
85
- def table_html_options
86
- nil
87
- end
88
-
89
103
  def render_header(&block)
90
104
  header_renderer.render(&block)
91
105
  end
@@ -11,7 +11,7 @@ module ResourceRenderer
11
11
  self.renderer_class = get_renderer_class(renderer_name)
12
12
  self.collection = collection
13
13
  self.helper = helper
14
- self.renderer = renderer_class.new(collection, resource_class, helper)
14
+ self.renderer = renderer_class.new(collection, resource_class, helper, options)
15
15
  self
16
16
  end
17
17
 
@@ -0,0 +1,21 @@
1
+ class BootstrapMediaObjectResourceRenderer < ResourceRenderer::ResourceRenderer::Base
2
+ def media_object(options = {})
3
+ options.reverse_merge!(title_method: :title, body_method: :body, image_method: :image, image_url_method: :url, body: nil, title: nil)
4
+ title = options.delete(:title)
5
+ title_method = options.delete(:title_method)
6
+ body_method = options.delete(:body_method)
7
+ body = options.delete(:body)
8
+ image_method = options.delete(:image_method)
9
+ image_url_method = options.delete(:image_url_method)
10
+ image_url = options.delete(:image_url)
11
+
12
+ locals = {
13
+ title: title || @resource.send(title_method),
14
+ body: body || @resource.send(body_method),
15
+ image_src: image_url || @resource.send(image_method).send(image_url_method),
16
+ link_href: helper.url_for(@resource)
17
+ }
18
+
19
+ helper.render partial: 'resource_renderers/bootstrap_media_object_resource_renderer', locals: locals
20
+ end
21
+ end
@@ -59,7 +59,17 @@ module ResourceRenderer
59
59
  resource.send(attribute_name).class.name.demodulize.underscore.to_sym
60
60
  end
61
61
  klass_name = "#{displayer_type}_renderer".camelize
62
- klass = Object.const_get(klass_name)
62
+ klass = begin
63
+ Object.const_get(klass_name) # rescue GenericRenderer
64
+ rescue NameError => e
65
+ Rails.logger.warn "Resource Renderer: #{e.message}. Using GenericRenderer instead"
66
+ GenericRenderer
67
+ end
68
+ # klass = if Object.const_defined?(klass_name)
69
+ # Object.const_get(klass_name)
70
+ # else
71
+ # GenericRenderer
72
+ # end
63
73
  unless klass.is_a?(Class)
64
74
  raise DisplayerNotDefinedException, "#{klass.to_s} not defined"
65
75
  end
@@ -3,6 +3,12 @@ class TableResourceRenderer < ResourceRenderer::ResourceRenderer::Base
3
3
  build_table_data(attribute_name, options, &block)
4
4
  end
5
5
 
6
+ def columns
7
+ resource_class.attribute_names.collect do |name|
8
+ column name
9
+ end.join.html_safe
10
+ end
11
+
6
12
  def render(&block)
7
13
  helper.content_tag(:tr) do
8
14
  block.call(self)
@@ -14,6 +20,12 @@ class TableResourceRenderer < ResourceRenderer::ResourceRenderer::Base
14
20
  column(:updated_at)
15
21
  end
16
22
 
23
+
24
+ def userstamps
25
+ column(:creator) +
26
+ column(:updater)
27
+ end
28
+
17
29
  def acts_as_published_actions
18
30
  link_path = helper.controller.url_for(action: :toggle_published, id: resource.to_param)
19
31
  column(:published_actions) do |resource|
@@ -0,0 +1,7 @@
1
+ .media
2
+ .media-left
3
+ = link_to(link_href, class: 'col-lg-4') do
4
+ %img.media-object.thumbnail.img-responsive{alt: title, src: image_src}
5
+ .media-body
6
+ %h4.media-heading= title
7
+ = body
@@ -1,3 +1,3 @@
1
1
  module ResourceRenderer
2
- VERSION = '1.1.1'
2
+ VERSION = '1.2.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: resource_renderer
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Roberto Vasquez Angel
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-02-12 00:00:00.000000000 Z
11
+ date: 2016-02-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -175,6 +175,7 @@ files:
175
175
  - README.rdoc
176
176
  - Rakefile
177
177
  - app/attribute_renderers/acts_as_list_renderer.rb
178
+ - app/attribute_renderers/array_renderer.rb
178
179
  - app/attribute_renderers/association_renderer.rb
179
180
  - app/attribute_renderers/attachment_renderer.rb
180
181
  - app/attribute_renderers/big_decimal_renderer.rb
@@ -184,6 +185,9 @@ files:
184
185
  - app/attribute_renderers/email_renderer.rb
185
186
  - app/attribute_renderers/false_class_renderer.rb
186
187
  - app/attribute_renderers/fixnum_renderer.rb
188
+ - app/attribute_renderers/float_renderer.rb
189
+ - app/attribute_renderers/generic_renderer.rb
190
+ - app/attribute_renderers/hash_renderer.rb
187
191
  - app/attribute_renderers/image_renderer.rb
188
192
  - app/attribute_renderers/nil_class_renderer.rb
189
193
  - app/attribute_renderers/resource_renderer/attribute_renderer/base.rb
@@ -194,6 +198,7 @@ files:
194
198
  - app/attribute_renderers/time_renderer.rb
195
199
  - app/attribute_renderers/true_class_renderer.rb
196
200
  - app/attribute_renderers/youtube_video_renderer.rb
201
+ - app/collection_renderers/bootstrap_media_object_collection_renderer.rb
197
202
  - app/collection_renderers/bootstrap_table_collection_renderer.rb
198
203
  - app/collection_renderers/bootstrap_thumbnail_collection_renderer.rb
199
204
  - app/collection_renderers/resource_renderer/collection_renderer/base.rb
@@ -203,6 +208,7 @@ files:
203
208
  - app/helpers/resource_renderer/view_helper.rb
204
209
  - app/resource_renderers/attribute_table_resource_renderer.rb
205
210
  - app/resource_renderers/bootstrap_attribute_table_resource_renderer.rb
211
+ - app/resource_renderers/bootstrap_media_object_resource_renderer.rb
206
212
  - app/resource_renderers/bootstrap_thumbnail_resource_renderer.rb
207
213
  - app/resource_renderers/resource_renderer/resource_renderer/base.rb
208
214
  - app/resource_renderers/table_resource_renderer.rb
@@ -211,6 +217,7 @@ files:
211
217
  - app/resource_renderers/unordered_list_resource_renderer.rb
212
218
  - app/services/timeline/extract_events_service.rb
213
219
  - app/values/timeline/event.rb
220
+ - app/views/resource_renderers/_bootstrap_media_object_resource_renderer.haml
214
221
  - lib/resource_renderer.rb
215
222
  - lib/resource_renderer/engine.rb
216
223
  - lib/resource_renderer/version.rb
@@ -239,3 +246,4 @@ signing_key:
239
246
  specification_version: 4
240
247
  summary: A simple way to render resources.
241
248
  test_files: []
249
+ has_rdoc: