resource_renderer 1.1.1 → 1.2.0

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
  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: