class_variants 0.0.1 → 0.0.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
  SHA256:
3
- metadata.gz: 6a0d49412628b8d47161a0687b06d95d11728e15d2ac3f311b68e91023c29d3e
4
- data.tar.gz: c4e984bbfa5d0378d918acc7e4fc188957933a49d109788ec5affb54f8681194
3
+ metadata.gz: 0b60f4147746cf609f268e92a4ed0a0835b6e89f5a2fb7e0cc10b210e3a35565
4
+ data.tar.gz: d308f7f0deddd82ca3ed03080308be226ab8c9ef53dfc26ecfc8d9298c9e631b
5
5
  SHA512:
6
- metadata.gz: f37d9c9e5e03405fd9eb6e559fb5b9c70e5cf97aa1d74d51029b9ac1d816cff544c4c576920e42dd28e5a5fd661420025a3cea24095a51ee4f3dc09f576938ed
7
- data.tar.gz: 46fb46e7b181571f94118530e6181ebf906e0643d875200a0125319c27c242723db11977f135a5e3467e248c9ed314d2a48ee5e5d99c17bceb9ba03ce6b7647a
6
+ metadata.gz: b82570da933a7323038ad487f5055b5c2e8d04c50174a9cd6feeb42beac9304dd1592f0db5eac531c83c5de86f949dd1e0a69548eb1947e835cd032aa77017b4
7
+ data.tar.gz: 6d02b21c6813ae0ca41a8a069a05d370c6f5acfc6ef32427c04383c4fbcf4a01d78e7c3728c2eb6cee3878c7471f161fe2951cbd15679c17254005f020659dff
@@ -0,0 +1,9 @@
1
+ module ClassVariants
2
+ module ActionView
3
+ module Helpers
4
+ def class_variants(classes, **args)
5
+ ClassVariants::Instance.new classes, **args
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,39 @@
1
+ class ClassVariants::Instance
2
+ attr_reader :classes
3
+ attr_reader :variants
4
+ attr_reader :defaults
5
+
6
+ def initialize(classes = "", variants: {}, defaults: {})
7
+ @classes = classes
8
+ @variants = variants
9
+ @defaults = defaults
10
+ end
11
+
12
+ def render(**settings)
13
+ result = []
14
+
15
+ # Add the default classes if any provided
16
+ result << classes if classes
17
+
18
+ # Keep the applied variants so we can later apply the defaults
19
+ applied_options = []
20
+
21
+ # Go through each keys provided
22
+ settings.each do |key, value|
23
+ if variants.keys.include? key
24
+ applied_options << key
25
+ result << variants[key][value]
26
+ end
27
+ end
28
+
29
+ if defaults.present?
30
+ defaults.each do |key, key_to_use|
31
+ unless applied_options.include? key
32
+ result << @variants[key][key_to_use] if @variants[key].present?
33
+ end
34
+ end
35
+ end
36
+
37
+ result.join " "
38
+ end
39
+ end
@@ -0,0 +1,12 @@
1
+ require 'rails/railtie'
2
+
3
+ module ClassVariants
4
+ class Railtie < ::Rails::Railtie
5
+ initializer "class_variants.action_view" do |app|
6
+ ActiveSupport.on_load :action_view do
7
+ require "class_variants/action_view/helpers"
8
+ include ClassVariants::ActionView::Helpers
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,3 @@
1
+ module ClassVariants
2
+ VERSION = "0.0.3" unless const_defined?(:VERSION)
3
+ end
@@ -1,39 +1,7 @@
1
- class ClassVariants
2
- attr_reader :classes
3
- attr_reader :variants
4
- attr_reader :defaults
1
+ require "class_variants/version"
2
+ require "class_variants/action_view/helpers"
3
+ require "class_variants/instance"
4
+ require "class_variants/railtie" if defined?(Rails)
5
5
 
6
- def initialize(classes = "", variants: {}, defaults: {})
7
- @classes = classes
8
- @variants = variants
9
- @defaults = defaults
10
- end
11
-
12
- def render(**settings)
13
- result = []
14
-
15
- # Add the default classes if any provided
16
- result << classes if classes
17
-
18
- # Keep the applied variants so we can later apply the defaults
19
- applied_options = []
20
-
21
- # Go through each keys provided
22
- settings.each do |key, value|
23
- if variants.keys.include? key
24
- applied_options << key
25
- result << variants[key][value]
26
- end
27
- end
28
-
29
- if defaults.present?
30
- defaults.each do |key, key_to_use|
31
- unless applied_options.include? key
32
- result << @variants[key][key_to_use] if @variants[key].present?
33
- end
34
- end
35
- end
36
-
37
- result.join " "
38
- end
6
+ module ClassVariants
39
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: class_variants
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adrian Marin
@@ -17,6 +17,10 @@ extensions: []
17
17
  extra_rdoc_files: []
18
18
  files:
19
19
  - lib/class_variants.rb
20
+ - lib/class_variants/action_view/helpers.rb
21
+ - lib/class_variants/instance.rb
22
+ - lib/class_variants/railtie.rb
23
+ - lib/class_variants/version.rb
20
24
  homepage: https://github.com/avo-hq/class_variants
21
25
  licenses:
22
26
  - MIT