font_awesome5_rails 0.2.0 → 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +15 -9
- data/app/helpers/font_awesome/rails/icon_helper.rb +7 -10
- data/lib/font_awesome5_rails/fa_icon_parser.rb +49 -0
- data/lib/font_awesome5_rails/version.rb +1 -1
- data/spec/font_awesome5_rails_spec.rb +27 -0
- metadata +2 -2
- data/spec/examples.txt +0 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 99d08e6a633a47779690afed02b22d8865588e75a5cbbb50e797d75fcdd3f0d0
|
4
|
+
data.tar.gz: 05bade9ea906385cb1d7ffc05376203f1be69c5a854eedb0aee361bbf90e8ba4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 197ca98e6d4e80b59b6f0228da1f2d03fb019bdef74280c269b9da9e9384b160f8dd6c4b121fabb0fa184507dc921c2e351219278768a34e9af4777a3aa6e142
|
7
|
+
data.tar.gz: 4fa1373007e09fad93942bc7fd7a48d488ece24bba69ee5df4cd7e7d3305f5ef624d2d21bad3fdc54d16e505f6d79271d165fa9226421f0feddfdc5864d2b164
|
data/README.md
CHANGED
@@ -1,4 +1,7 @@
|
|
1
1
|
# FontAwesome5Rails
|
2
|
+
[![Build Status](https://travis-ci.org/tomkra/font_awesome5_rails.svg?branch=master)](https://travis-ci.org/tomkra/font_awesome5_rails)
|
3
|
+
[![HitCount](http://hits.dwyl.io/tomkra/tomkra/font_awesome5_rails.svg)](http://hits.dwyl.io/tomkra/tomkra/font_awesome5_rails)
|
4
|
+
|
2
5
|
font_awesome5_rails provides the [Font-Awesome5](https://fontawesome.com/) web fonts, stylesheets and javascripts as a Rails engine for use with the asset pipeline and with backwards compatibility with [font-awesome-rails](https://github.com/bokmann/font-awesome-rails) gem.
|
3
6
|
|
4
7
|
This gem provides only Free icons from Font-Awesome.
|
@@ -44,24 +47,27 @@ fa_icon('camera-retro', class: 'my-class', text: 'Camera', size: '3x')
|
|
44
47
|
In Font Awesome 5 there are several different types of icons. In font_awesome5_rails gem default icon type is ```solid```.
|
45
48
|
If you want to use different icon style you can do this through ```type``` attribute.
|
46
49
|
|
47
|
-
| Style | type: |
|
48
|
-
| -------------
|
49
|
-
| Solid | :fas |
|
50
|
-
| Regular | :far |
|
51
|
-
| Light | :fal |
|
52
|
-
| Brand | :fab |
|
50
|
+
| Style | type: | type: |
|
51
|
+
| ------------- |-------|--------|
|
52
|
+
| Solid | :fas |:solid |
|
53
|
+
| Regular | :far |:regular|
|
54
|
+
| Light | :fal |:light |
|
55
|
+
| Brand | :fab |:brand |
|
53
56
|
|
54
57
|
|
55
58
|
```ruby
|
56
|
-
fa_icon('camera-retro', type: :
|
59
|
+
fa_icon('camera-retro', type: :solid) #Default
|
57
60
|
# => <i class="fas fa-camera-retro"></i>
|
58
61
|
|
59
|
-
fa_icon('camera-retro', type: :
|
62
|
+
fa_icon('camera-retro', type: :regular)
|
60
63
|
# => <i class="far fa-camera-retro"></i>
|
61
64
|
|
62
|
-
fa_icon('camera-retro', type: :
|
65
|
+
fa_icon('camera-retro', type: :light)
|
63
66
|
# => <i class="fal fa-camera-retro"></i>
|
64
67
|
|
68
|
+
fa_icon('camera-retro', type: :brand)
|
69
|
+
# => <i class="fab fa-camera-retro"></i>
|
70
|
+
|
65
71
|
fa_icon('camera-retro', type: :fab)
|
66
72
|
# => <i class="fab fa-camera-retro"></i>
|
67
73
|
|
@@ -1,21 +1,18 @@
|
|
1
|
+
require 'font_awesome5_rails/fa_icon_parser'
|
2
|
+
|
1
3
|
module FontAwesome
|
2
4
|
module Rails
|
3
5
|
module IconHelper
|
4
6
|
|
5
7
|
def fa_icon(icon, options = {})
|
6
|
-
|
7
|
-
classes << "fa-#{icon}"
|
8
|
-
classes += options[:class].split(" ") unless options[:class].nil?
|
9
|
-
classes += options[:size].split(" ").map{|s| "fa-#{s}"} unless options[:size].nil?
|
10
|
-
classes += options[:animation].split(" ").map{|s| "fa-#{s}"} unless options[:animation].nil?
|
11
|
-
classes = classes.uniq.join(" ")
|
8
|
+
parser = FaIconParser.new(icon, options)
|
12
9
|
tags = []
|
13
|
-
if
|
14
|
-
tags << content_tag(:i, nil, class: classes, style:
|
10
|
+
if parser.text.nil?
|
11
|
+
tags << content_tag(:i, nil, class: parser.classes, style: parser.style, data: parser.data)
|
15
12
|
else
|
16
13
|
content_tag :span do
|
17
|
-
tags << content_tag(:i, nil, class: classes, style:
|
18
|
-
tags << content_tag(:span,
|
14
|
+
tags << content_tag(:i, nil, class: parser.classes, style: parser.style, data: parser.data)
|
15
|
+
tags << content_tag(:span, parser.text, style: "padding-left: 5px;#{parser.style}")
|
19
16
|
end
|
20
17
|
end
|
21
18
|
tags.join.html_safe
|
@@ -0,0 +1,49 @@
|
|
1
|
+
class FaIconParser
|
2
|
+
attr_reader :icon, :options, :data, :style, :text
|
3
|
+
|
4
|
+
def initialize(icon, options)
|
5
|
+
@icon = icon
|
6
|
+
@options = options
|
7
|
+
@data = options[:data]
|
8
|
+
@style = options[:style]
|
9
|
+
@text = options[:text]
|
10
|
+
end
|
11
|
+
|
12
|
+
def classes
|
13
|
+
@classes ||= get_all_classes
|
14
|
+
end
|
15
|
+
|
16
|
+
def icon_type(type)
|
17
|
+
return "fas" if type.nil?
|
18
|
+
case type.to_s
|
19
|
+
when "far", "regular"
|
20
|
+
"far"
|
21
|
+
when "fal", "light"
|
22
|
+
"fal"
|
23
|
+
when "fab", "brand"
|
24
|
+
"fab"
|
25
|
+
else
|
26
|
+
"fas"
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def prepend_fa(string)
|
31
|
+
"fa-#{string}"
|
32
|
+
end
|
33
|
+
|
34
|
+
def arr_with_fa(array)
|
35
|
+
array.split(" ").map{ |s| prepend_fa(s) }
|
36
|
+
end
|
37
|
+
|
38
|
+
private
|
39
|
+
|
40
|
+
def get_all_classes
|
41
|
+
tmp = []
|
42
|
+
tmp << icon_type(@options[:type])
|
43
|
+
tmp << prepend_fa(@icon)
|
44
|
+
tmp += @options[:class].split(" ") unless @options[:class].nil?
|
45
|
+
tmp += arr_with_fa(@options[:size]) unless @options[:size].nil?
|
46
|
+
tmp += arr_with_fa(@options[:animation]) unless @options[:animation].nil?
|
47
|
+
tmp.uniq.join(" ")
|
48
|
+
end
|
49
|
+
end
|
@@ -4,6 +4,29 @@ describe FontAwesome5Rails do
|
|
4
4
|
include RSpecHtmlMatchers
|
5
5
|
include ActionView::Context
|
6
6
|
|
7
|
+
describe 'files' do
|
8
|
+
it 'should have correct dirs' do
|
9
|
+
expect(Dir.exists?('./app/assets/images')).to be_truthy
|
10
|
+
expect(Dir.exists?('./app/assets/javascripts')).to be_truthy
|
11
|
+
expect(Dir.exists?('./app/assets/stylesheets')).to be_truthy
|
12
|
+
expect(Dir.exists?('./app/helpers/font_awesome/rails')).to be_truthy
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'should have correct files' do
|
16
|
+
expect(File.exists?('./app/helpers/font_awesome/rails/icon_helper.rb')).to be_truthy
|
17
|
+
expect(File.exists?('./app/assets/images/fa-brands.svg')).to be_truthy
|
18
|
+
expect(File.exists?('./app/assets/images/fa-regular.svg')).to be_truthy
|
19
|
+
expect(File.exists?('./app/assets/images/fa-solid.svg')).to be_truthy
|
20
|
+
expect(File.exists?('./app/assets/javascripts/font_awesome5.js')).to be_truthy
|
21
|
+
expect(File.exists?('./app/assets/javascripts/fontawesome-all.min.js')).to be_truthy
|
22
|
+
expect(File.exists?('./app/assets/stylesheets/fa-svg-with-js.css')).to be_truthy
|
23
|
+
expect(File.exists?('./app/assets/stylesheets/font_awesome5.css')).to be_truthy
|
24
|
+
expect(File.exists?('./lib/font_awesome5_rails/engine.rb')).to be_truthy
|
25
|
+
expect(File.exists?('./lib/font_awesome5_rails/version.rb')).to be_truthy
|
26
|
+
expect(File.exists?('./lib/font_awesome5_rails/fa_icon_parser.rb')).to be_truthy
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
7
30
|
describe 'tags' do
|
8
31
|
it 'should return correct type tags' do
|
9
32
|
expect(fa_icon 'camera-retro').to eq '<i class="fas fa-camera-retro"></i>'
|
@@ -11,6 +34,10 @@ describe FontAwesome5Rails do
|
|
11
34
|
expect(fa_icon 'camera-retro', type: :far).to eq '<i class="far fa-camera-retro"></i>'
|
12
35
|
expect(fa_icon 'camera-retro', type: :fal).to eq '<i class="fal fa-camera-retro"></i>'
|
13
36
|
expect(fa_icon 'camera-retro', type: :fab).to eq '<i class="fab fa-camera-retro"></i>'
|
37
|
+
expect(fa_icon 'camera-retro', type: :solid).to eq '<i class="fas fa-camera-retro"></i>'
|
38
|
+
expect(fa_icon 'camera-retro', type: :regular).to eq '<i class="far fa-camera-retro"></i>'
|
39
|
+
expect(fa_icon 'camera-retro', type: :light).to eq '<i class="fal fa-camera-retro"></i>'
|
40
|
+
expect(fa_icon 'camera-retro', type: :brand).to eq '<i class="fab fa-camera-retro"></i>'
|
14
41
|
end
|
15
42
|
|
16
43
|
it 'should return correct class tags' do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: font_awesome5_rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- tomkra
|
@@ -79,6 +79,7 @@ files:
|
|
79
79
|
- bin/test
|
80
80
|
- lib/font_awesome5_rails.rb
|
81
81
|
- lib/font_awesome5_rails/engine.rb
|
82
|
+
- lib/font_awesome5_rails/fa_icon_parser.rb
|
82
83
|
- lib/font_awesome5_rails/version.rb
|
83
84
|
- lib/tasks/font_awesome5_rails_tasks.rake
|
84
85
|
- spec/dummy/Rakefile
|
@@ -132,7 +133,6 @@ files:
|
|
132
133
|
- spec/dummy/public/apple-touch-icon-precomposed.png
|
133
134
|
- spec/dummy/public/apple-touch-icon.png
|
134
135
|
- spec/dummy/public/favicon.ico
|
135
|
-
- spec/examples.txt
|
136
136
|
- spec/font_awesome5_rails_spec.rb
|
137
137
|
- spec/spec_helper.rb
|
138
138
|
homepage: https://github.com/tomkra/font_awesome5_rails
|
data/spec/examples.txt
DELETED