lite-component 1.0.9 → 1.0.10

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: fb7847b78bc4df9d5b25648f75500cc44b25f618a3c94a7d9ef63f300b5895dd
4
- data.tar.gz: 92803d6916eaec8cea78e52ec90d3ff7fe9c8e84c28bb7c15cb9f6894e3c8d57
3
+ metadata.gz: f2e349c98dc9b50bbf5c354f02dedb88b628fe1b54bdaa70cf8b2b03526b1c7e
4
+ data.tar.gz: c0887f8f7bd44e9b05e98f55fe95a8e6758b671a190a4ad43117223847394d99
5
5
  SHA512:
6
- metadata.gz: ee11120c0cd193aacadfe3dfe67a4da98e92937c53cee918a8e84795acddeedc5b157aa7563262bdfa5dfdb14e9b170894e653b5839893e76ae3daaa00238ec9
7
- data.tar.gz: 4ab99d6a718dcafa47fdd390456a1b175d6a0d845f65b130caa0aab723f4b13a590f1da9bd7e6d483d0dacf2b2b08ab7939b1dd532b2ddb9af043441a42f9e58
6
+ metadata.gz: 2d64ba9b39cebe86641897b412eaf51c9ecd13a01b57d63a80dff6f995f26be1e88c73bd14e7b374eb1b99b6f3035e4a592adf21e0d7ece238a2c981bdac8d99
7
+ data.tar.gz: be52c6a40ca8f3c23f2b96ec8e60327a6b338c6426d6e78f3d59453f7f2837af39669f7aa5d07f4e8e90f4e9446b14755968babeeb0974359a275551d4d47988
data/.rubocop.yml CHANGED
@@ -14,6 +14,10 @@ Layout/EmptyLinesAroundModuleBody:
14
14
  EnforcedStyle: empty_lines_except_namespace
15
15
  Layout/LineLength:
16
16
  Max: 100
17
+ Lint/RaiseException:
18
+ Enabled: true
19
+ Lint/StructNewOverride:
20
+ Enabled: true
17
21
  Metrics/BlockLength:
18
22
  Enabled: false
19
23
  Metrics/ClassLength:
@@ -30,3 +34,9 @@ Style/Documentation:
30
34
  Enabled: false
31
35
  Style/ExpandPathArguments:
32
36
  Enabled: false
37
+ Style/HashEachMethods:
38
+ Enabled: true
39
+ Style/HashTransformKeys:
40
+ Enabled: true
41
+ Style/HashTransformValues:
42
+ Enabled: true
data/CHANGELOG.md CHANGED
@@ -6,6 +6,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [1.0.10] - 2020-04-06
10
+ ### Added
11
+ - Added `render?` method for checking complex logic
12
+
9
13
  ## [1.0.9] - 2020-01-08
10
14
  ### Added
11
15
  - Added block support to yield other components
data/Gemfile.lock CHANGED
@@ -1,26 +1,26 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- lite-component (1.0.9)
4
+ lite-component (1.0.10)
5
5
  actionview
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
- actionpack (6.0.2.1)
11
- actionview (= 6.0.2.1)
12
- activesupport (= 6.0.2.1)
10
+ actionpack (6.0.2.2)
11
+ actionview (= 6.0.2.2)
12
+ activesupport (= 6.0.2.2)
13
13
  rack (~> 2.0, >= 2.0.8)
14
14
  rack-test (>= 0.6.3)
15
15
  rails-dom-testing (~> 2.0)
16
16
  rails-html-sanitizer (~> 1.0, >= 1.2.0)
17
- actionview (6.0.2.1)
18
- activesupport (= 6.0.2.1)
17
+ actionview (6.0.2.2)
18
+ activesupport (= 6.0.2.2)
19
19
  builder (~> 3.1)
20
20
  erubi (~> 1.4)
21
21
  rails-dom-testing (~> 2.0)
22
22
  rails-html-sanitizer (~> 1.1, >= 1.2.0)
23
- activesupport (6.0.2.1)
23
+ activesupport (6.0.2.2)
24
24
  concurrent-ruby (~> 1.0, >= 1.0.2)
25
25
  i18n (>= 0.7, < 2)
26
26
  minitest (~> 5.1)
@@ -29,31 +29,31 @@ GEM
29
29
  ast (2.4.0)
30
30
  builder (3.2.4)
31
31
  colorize (0.8.1)
32
- concurrent-ruby (1.1.5)
33
- crass (1.0.5)
32
+ concurrent-ruby (1.1.6)
33
+ crass (1.0.6)
34
34
  diff-lcs (1.3)
35
35
  erubi (1.9.0)
36
- fasterer (0.8.1)
36
+ fasterer (0.8.3)
37
37
  colorize (~> 0.7)
38
38
  ruby_parser (>= 3.14.1)
39
39
  generator_spec (0.9.4)
40
40
  activesupport (>= 3.0.0)
41
41
  railties (>= 3.0.0)
42
- i18n (1.7.1)
42
+ i18n (1.8.2)
43
43
  concurrent-ruby (~> 1.0)
44
44
  jaro_winkler (1.5.4)
45
- loofah (2.4.0)
45
+ loofah (2.5.0)
46
46
  crass (~> 1.0.2)
47
47
  nokogiri (>= 1.5.9)
48
- method_source (0.9.2)
48
+ method_source (1.0.0)
49
49
  mini_portile2 (2.4.0)
50
- minitest (5.13.0)
51
- nokogiri (1.10.7)
50
+ minitest (5.14.0)
51
+ nokogiri (1.10.9)
52
52
  mini_portile2 (~> 2.4.0)
53
53
  parallel (1.19.1)
54
- parser (2.7.0.2)
54
+ parser (2.7.1.0)
55
55
  ast (~> 2.4.0)
56
- rack (2.0.8)
56
+ rack (2.2.2)
57
57
  rack-test (1.1.0)
58
58
  rack (>= 1.0, < 3)
59
59
  rails-dom-testing (2.0.3)
@@ -61,48 +61,50 @@ GEM
61
61
  nokogiri (>= 1.6)
62
62
  rails-html-sanitizer (1.3.0)
63
63
  loofah (~> 2.3)
64
- railties (6.0.2.1)
65
- actionpack (= 6.0.2.1)
66
- activesupport (= 6.0.2.1)
64
+ railties (6.0.2.2)
65
+ actionpack (= 6.0.2.2)
66
+ activesupport (= 6.0.2.2)
67
67
  method_source
68
68
  rake (>= 0.8.7)
69
69
  thor (>= 0.20.3, < 2.0)
70
70
  rainbow (3.0.0)
71
71
  rake (13.0.1)
72
+ rexml (3.2.4)
72
73
  rspec (3.9.0)
73
74
  rspec-core (~> 3.9.0)
74
75
  rspec-expectations (~> 3.9.0)
75
76
  rspec-mocks (~> 3.9.0)
76
77
  rspec-core (3.9.1)
77
78
  rspec-support (~> 3.9.1)
78
- rspec-expectations (3.9.0)
79
+ rspec-expectations (3.9.1)
79
80
  diff-lcs (>= 1.2.0, < 2.0)
80
81
  rspec-support (~> 3.9.0)
81
82
  rspec-mocks (3.9.1)
82
83
  diff-lcs (>= 1.2.0, < 2.0)
83
84
  rspec-support (~> 3.9.0)
84
85
  rspec-support (3.9.2)
85
- rubocop (0.79.0)
86
+ rubocop (0.81.0)
86
87
  jaro_winkler (~> 1.5.1)
87
88
  parallel (~> 1.10)
88
89
  parser (>= 2.7.0.1)
89
90
  rainbow (>= 2.2.2, < 4.0)
91
+ rexml
90
92
  ruby-progressbar (~> 1.7)
91
- unicode-display_width (>= 1.4.0, < 1.7)
93
+ unicode-display_width (>= 1.4.0, < 2.0)
92
94
  rubocop-performance (1.5.2)
93
95
  rubocop (>= 0.71.0)
94
- rubocop-rspec (1.37.1)
96
+ rubocop-rspec (1.38.1)
95
97
  rubocop (>= 0.68.1)
96
98
  ruby-progressbar (1.10.1)
97
- ruby_parser (3.14.1)
99
+ ruby_parser (3.14.2)
98
100
  sexp_processor (~> 4.9)
99
- sexp_processor (4.13.0)
101
+ sexp_processor (4.14.1)
100
102
  thor (1.0.1)
101
103
  thread_safe (0.3.6)
102
- tzinfo (1.2.6)
104
+ tzinfo (1.2.7)
103
105
  thread_safe (~> 0.1)
104
- unicode-display_width (1.6.0)
105
- zeitwerk (2.2.2)
106
+ unicode-display_width (1.7.0)
107
+ zeitwerk (2.3.0)
106
108
 
107
109
  PLATFORMS
108
110
  ruby
data/README.md CHANGED
@@ -104,6 +104,20 @@ Render collection of components just as you would render collections of partials
104
104
  <%= component("comment_card", collection: @comments, spacer_template: "components/spacer") %>
105
105
  ```
106
106
 
107
+ If you can skip rendering by evaluating complex logic in the `render?` method:
108
+
109
+ ```ruby
110
+ # app/components/alert_component.rb
111
+
112
+ class AlertComponent < Lite::Component::Base
113
+
114
+ def render?
115
+ object.some_complex_check?
116
+ end
117
+
118
+ end
119
+ ```
120
+
107
121
  ### Context
108
122
 
109
123
  All components include `ActionView::Context` which will give you access to request context such as
@@ -66,6 +66,8 @@ module Lite
66
66
  alias l locals
67
67
 
68
68
  def render
69
+ return unless render?
70
+
69
71
  collection = options.delete(:collection)
70
72
  return render_content if collection.nil? || !collection.respond_to?(:each)
71
73
 
@@ -76,6 +78,10 @@ module Lite
76
78
  )
77
79
  end
78
80
 
81
+ def render?
82
+ true
83
+ end
84
+
79
85
  def render_content
80
86
  context.render(options)
81
87
  end
@@ -44,8 +44,10 @@ module Lite
44
44
  collection.each_with_object([]).with_index do |(object, array), index|
45
45
  component.iteration = Lite::Component::Iteration.new(collection_size, index)
46
46
  component.options.deep_merge!(locals: { object: object, iteration: component.iteration })
47
+ content = component.render_content
48
+ next if content.nil?
47
49
 
48
- array << component.render_content
50
+ array << content
49
51
  next unless spacer_template && !component.iteration.last?
50
52
 
51
53
  array << component.context.render(spacer_template)
@@ -3,7 +3,7 @@
3
3
  module Lite
4
4
  module Component
5
5
 
6
- VERSION ||= '1.0.9'
6
+ VERSION ||= '1.0.10'
7
7
 
8
8
  end
9
9
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lite-component
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.9
4
+ version: 1.0.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Juan Gomez
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-01-08 00:00:00.000000000 Z
11
+ date: 2020-04-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: actionview