fa_rails 0.1.22 → 0.1.27

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: 626bd595bc9a79f241571cc01ea6c2b17f926f4a98b37678f2ab0f78046de28d
4
- data.tar.gz: 9b2374e43b36b5f304496de28e2a876014875e5d1615e20a1d853fe8fe271e8b
3
+ metadata.gz: 79592033f8cde3a69b9c151928289df8ea5564c6657c3c32aba9464ea5a80014
4
+ data.tar.gz: 5e30a6766b53e7563dd1759656ab04e50720fb270e72509196fbdb1045bf9813
5
5
  SHA512:
6
- metadata.gz: 9a20e551e982f87d8e3c81df3a4dbd5d15e3933ecebcef9b62978a0174879a389379189f93ed4a985672de8ebbab15fbb124f4c074a914dcb1da9ac1cab30d1f
7
- data.tar.gz: 685fb1c6945497270fd48526f8d481bad0b48cf1f408164fabe2a3f23b51827448fb68be0dca9c496a440bbe6cdbe8b108f45f40b4f1fa08cc53b39d9b9a2e16
6
+ metadata.gz: a43c475dd94f739d326a2f855f69bd525d47935113eb77a193787eded0879bee3985548da66fa99a1628b9fc9afe04ceba9ee63e450cc2b94d03b3f855a42b8d
7
+ data.tar.gz: 45338d64be37baddb0ef1802a0b13a8338d304104305e262ec2f201dbb5009bea8f2c3f5afdfbf3ccd9f561a66c182cd8923a3b768e5e16a00103d4039f396c6
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 2.5.1
data/Gemfile.lock CHANGED
@@ -1,15 +1,15 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- fa_rails (0.1.22)
4
+ fa_rails (0.1.27)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
8
8
  specs:
9
9
  diff-lcs (1.3)
10
10
  docile (1.3.1)
11
- json (2.1.0)
12
- rake (12.3.1)
11
+ json (2.3.1)
12
+ rake (12.3.3)
13
13
  rspec (3.7.0)
14
14
  rspec-core (~> 3.7.0)
15
15
  rspec-expectations (~> 3.7.0)
data/README.md CHANGED
@@ -29,29 +29,41 @@ corresponding locations in your app, and ensure you correctly include all files.
29
29
 
30
30
  ### FontAwesome CDN
31
31
 
32
- Go to the FontAwesome
33
- [How to Use](https://fontawesome.com/how-to-use/on-the-web/setup/getting-started?using=web-fonts-with-css)
34
- page and copy the appropriate CDN link tag.
32
+ You can also link into the FontAwesome CDN, in either of two ways:
35
33
 
36
- You can also `include FA`, then use the built-in helper method in your layout:
34
+ #### Version-Specific Link
35
+
36
+ You can use this helper method in your layout:
37
37
 
38
38
  ```ruby
39
39
  FA::Link.new(version: 'v5.3.1', integrity: 'sha384-some-key-here').safe
40
40
  ```
41
41
 
42
- #### Free
42
+ Or, go to the FontAwesome
43
+ [How to Use](https://fontawesome.com/how-to-use/on-the-web/setup/getting-started?using=web-fonts-with-css)
44
+ page and copy the appropriate CDN link tag.
45
+
46
+ **Be sure to also register each domain that will use this CDN link.**
47
+
48
+ ##### Free
43
49
 
44
50
  ```html
45
51
  <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.3.1/css/all.css" integrity="sha384-some-key-here" crossorigin="anonymous">
46
52
  ```
47
53
 
48
- #### Pro
54
+ ##### Pro
49
55
 
50
56
  ```html
51
57
  <link rel="stylesheet" href="https://pro.fontawesome.com/releases/v5.3.1/css/all.css" integrity="sha384-some-key-here" crossorigin="anonymous">
52
58
  ```
53
59
 
54
- **Be sure to also register each domain that will use this CDN link.**
60
+ #### Kit Link
61
+
62
+ Use this helper method in your layout:
63
+
64
+ ```ruby
65
+ FA::Link.kit('kit-id')
66
+ ```
55
67
 
56
68
  ## Usage
57
69
 
@@ -147,6 +159,10 @@ css #=> String – arbitrary CSS classes, space-delimited, applied to the layer
147
159
  FA::Icon.p('lock', fa: 'fw')
148
160
  #=> "<i class='fas fa-fw fa-lock fa-1x' style='' data-fa-transform='' title=''></i>"
149
161
 
162
+ # Duotone fire-alt icon with swapped opacity
163
+ FA::Icon.p('fire-alt', fa: 'swap-opacity')
164
+ #=> "<i class='fas fa-swap-opacity fa-fire-alt fa-1x' style='' data-fa-transform='' title=''></i>"
165
+
150
166
  # Duotone fire-alt icon with specified opacities
151
167
  FA::Icon.p('fire-alt', style: :duotone, raw_css: { '--fa-primary-opacity' => '0.6', '--fa-secondary-opacity' => '0.4' })
152
168
  #=> "<i class='fad fa-fire-alt fa-1x' style='--fa-primary-opacity: 0.4; --fa-secondary-opacity: 0.6;' data-fa-transform='' title=''></i>"
data/fa_rails.gemspec CHANGED
@@ -1,7 +1,7 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'fa_rails'
3
- s.version = '0.1.22'
4
- s.date = '2019-08-09'
3
+ s.version = '0.1.27'
4
+ s.date = '2021-05-26'
5
5
  s.summary = 'FontAwesome helper for Rails'
6
6
  s.description = 'A helper module for using FontAwesome icons in Rails.'
7
7
  s.homepage = 'http://rubygems.org/gems/fa_rails'
data/lib/fa/base.rb CHANGED
@@ -3,6 +3,11 @@
3
3
  module FA
4
4
  # FontAwesome 5 (Pro) Helper core class for inheritance
5
5
  class Base
6
+ STYLES = {
7
+ solid: 's', regular: 'r', light: 'l', thin: 't',
8
+ duotone: 'd', brands: 'b', kit_upload: 'k'
9
+ }.freeze
10
+
6
11
  # Outputs the formatted string directly.
7
12
  def raw
8
13
  #
@@ -101,8 +106,13 @@ module FA
101
106
  def parse_classes(options)
102
107
  @classes = []
103
108
  @classes << parse_style(options)
104
- @classes << options[:fa].to_s.split(' ').map { |c| "fa-#{c}" }
105
- @classes << options[:css].to_s.split(' ')
109
+ @classes << format_classes(options[:fa], prefix: 'fa-')
110
+ @classes << format_classes(options[:css])
111
+ end
112
+
113
+ def format_classes(classes, prefix: nil)
114
+ classes = classes.to_s.split(' ') unless classes.is_a?(Array)
115
+ classes.map { |c| "#{prefix}#{c}" }
106
116
  end
107
117
 
108
118
  def merge_fa_styles(options)
@@ -130,10 +140,10 @@ module FA
130
140
  end
131
141
 
132
142
  def parse_style(options)
133
- return if options[:css].to_s.match?(/fa[srldb]/)
134
- return 'fas' unless %i[solid regular light duotone brands].include?(options[:style])
143
+ return if options[:css].to_s.match?(/\bfa[#{STYLES.values.join}]\b/)
144
+ return 'fas' unless STYLES.keys.include?(options[:style])
135
145
 
136
- 'fa' + { solid: 's', regular: 'r', light: 'l', duotone: 'd', brands: 'b' }[options[:style]]
146
+ 'fa' + STYLES[options[:style]]
137
147
  end
138
148
  end
139
149
  end
data/spec/lib/fa_spec.rb CHANGED
@@ -47,6 +47,36 @@ RSpec.describe FA do
47
47
  )
48
48
  end
49
49
 
50
+ it 'should correctly handle a string fa option' do
51
+ expect(FA::Icon.p(:help, fa: 'fw 2x')).to eql(
52
+ "<i class='fas fa-fw fa-2x fa-help fa-1x' style='' data-fa-transform='' title=''></i>"
53
+ )
54
+ end
55
+
56
+ it 'should correctly handle an array fa option' do
57
+ expect(FA::Icon.p(:help, fa: %i[fw 2x])).to eql(
58
+ "<i class='fas fa-fw fa-2x fa-help fa-1x' style='' data-fa-transform='' title=''></i>"
59
+ )
60
+ end
61
+
62
+ it 'should correctly handle a string css option' do
63
+ expect(FA::Icon.p(:help, css: 'green big')).to eql(
64
+ "<i class='fas green big fa-help fa-1x' style='' data-fa-transform='' title=''></i>"
65
+ )
66
+ end
67
+
68
+ it 'should correctly handle an array css option' do
69
+ expect(FA::Icon.p(:help, css: %i[green big])).to eql(
70
+ "<i class='fas green big fa-help fa-1x' style='' data-fa-transform='' title=''></i>"
71
+ )
72
+ end
73
+
74
+ it 'should correctly handle a nil css option' do
75
+ expect(FA::Icon.p(:help, css: nil)).to eql(
76
+ "<i class='fas fa-help fa-1x' style='' data-fa-transform='' title=''></i>"
77
+ )
78
+ end
79
+
50
80
  it 'should raise ArgumentError for other input types' do
51
81
  [nil, [], 0].each do |fa|
52
82
  expect { FA::Icon.p(fa) }.to raise_error(
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fa_rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.22
4
+ version: 0.1.27
5
5
  platform: ruby
6
6
  authors:
7
7
  - Julian Fiander
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-08-09 00:00:00.000000000 Z
11
+ date: 2021-05-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -77,6 +77,7 @@ extensions: []
77
77
  extra_rdoc_files: []
78
78
  files:
79
79
  - ".gitignore"
80
+ - ".ruby-version"
80
81
  - ".travis.yml"
81
82
  - Gemfile
82
83
  - Gemfile.lock