class_variants 0.0.1 → 0.0.3

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