font_awesome_rails 0.0.1
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.
- data/.gitignore +18 -0
- data/.rspec +2 -0
- data/Gemfile +2 -0
- data/LICENSE.md +26 -0
- data/README.md +69 -0
- data/Rakefile +6 -0
- data/app/assets/stylesheets/_font-awesome.scss +2 -0
- data/app/assets/stylesheets/font-awesome/_font.scss +13 -0
- data/app/assets/stylesheets/font-awesome/_icons.scss +210 -0
- data/app/assets/stylesheets/font-awesome/_mixins.scss +58 -0
- data/app/assets/stylesheets/font-awesome/_styles.scss +53 -0
- data/font_awesome_rails.gemspec +25 -0
- data/lib/font_awesome/font.rb +52 -0
- data/lib/font_awesome/hex_code.rb +39 -0
- data/lib/font_awesome/icon.rb +80 -0
- data/lib/font_awesome/nokogiri.rb +17 -0
- data/lib/font_awesome/sass_extensions/functions.rb +26 -0
- data/lib/font_awesome/sass_extensions.rb +6 -0
- data/lib/font_awesome.rb +10 -0
- data/lib/font_awesome_rails/engine.rb +4 -0
- data/lib/font_awesome_rails/version.rb +3 -0
- data/lib/font_awesome_rails.rb +10 -0
- data/spec/font_awesome/font_spec.rb +103 -0
- data/spec/font_awesome/hex_code_spec.rb +66 -0
- data/spec/font_awesome/icon_spec.rb +92 -0
- data/spec/font_awesome/sass_extensions/functions_spec.rb +69 -0
- data/spec/spec_helper.rb +14 -0
- data/spec/tasks/update_classic_sass_task_spec.rb +33 -0
- data/spec/tasks/update_hex_codes_task_spec.rb +44 -0
- data/spec/tasks/update_metrics_task_spec.rb +34 -0
- data/spec/tasks/update_sass_task_spec.rb +20 -0
- data/tasks/gem_dir.rb +12 -0
- data/tasks/spec.rake +3 -0
- data/tasks/task.rb +5 -0
- data/tasks/update/classic.rake +27 -0
- data/tasks/update/font.rake +13 -0
- data/tasks/update/font_awesome.rake +20 -0
- data/tasks/update/hex_codes.rake +9 -0
- data/tasks/update/metrics.rake +8 -0
- data/tasks/update/metrics.rb +62 -0
- data/tasks/update/sass.rake +6 -0
- data/tasks/update/update_classic_sass_task.rb +21 -0
- data/tasks/update/update_hex_codes_task.rb +34 -0
- data/tasks/update/update_metrics_task.rb +25 -0
- data/tasks/update/update_sass_task.rb +20 -0
- data/tasks/update.rake +8 -0
- data/vendor/assets/font/fontawesome-webfont.eot +0 -0
- data/vendor/assets/font/fontawesome-webfont.svg +255 -0
- data/vendor/assets/font/fontawesome-webfont.ttf +0 -0
- data/vendor/assets/font/fontawesome-webfont.woff +0 -0
- data/vendor/assets/stylesheets/font-awesome/_classic.scss +292 -0
- data/vendor/assets/stylesheets/font-awesome/ie7.css +645 -0
- metadata +225 -0
@@ -0,0 +1,62 @@
|
|
1
|
+
require "font_awesome"
|
2
|
+
require "RMagick"
|
3
|
+
|
4
|
+
module Metrics
|
5
|
+
extend self
|
6
|
+
|
7
|
+
def ascent
|
8
|
+
Ascent.new.actual_height
|
9
|
+
end
|
10
|
+
|
11
|
+
def descent
|
12
|
+
-Descent.new.actual_height
|
13
|
+
end
|
14
|
+
|
15
|
+
class Image < FontAwesome::Icon
|
16
|
+
def initialize
|
17
|
+
super(nil)
|
18
|
+
end
|
19
|
+
|
20
|
+
def actual_height
|
21
|
+
to_image.trim.rows
|
22
|
+
end
|
23
|
+
|
24
|
+
def to_image
|
25
|
+
Magick::Image.from_blob(to_svg){self.format = "svg"}.first
|
26
|
+
end
|
27
|
+
|
28
|
+
protected
|
29
|
+
|
30
|
+
def build_svg(xml)
|
31
|
+
xml.svg svg_attributes do
|
32
|
+
FontAwesome::Icon.all.each do |icon|
|
33
|
+
xml.path icon.path_attributes
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
def svg_attributes
|
39
|
+
super.merge(width:"2048px", height:"2048px")
|
40
|
+
end
|
41
|
+
|
42
|
+
def offset_x
|
43
|
+
0
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
class Ascent < Image
|
48
|
+
protected
|
49
|
+
|
50
|
+
def offset_y
|
51
|
+
2048
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
class Descent < Image
|
56
|
+
protected
|
57
|
+
|
58
|
+
def offset_y
|
59
|
+
0
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require_relative "../task"
|
2
|
+
|
3
|
+
class UpdateClassicSassTask < Task
|
4
|
+
def run
|
5
|
+
puts "* Updating #{path}"
|
6
|
+
|
7
|
+
open_file(path, "w") {|file| file.write styles }
|
8
|
+
end
|
9
|
+
|
10
|
+
def styles
|
11
|
+
contents.match(%r{/\* Font Awesome styles.*}m) {|matched| matched.to_s }
|
12
|
+
end
|
13
|
+
|
14
|
+
def contents
|
15
|
+
open_file("Font-Awesome/sass/font-awesome.scss") {|file| file.read }
|
16
|
+
end
|
17
|
+
|
18
|
+
def path
|
19
|
+
"vendor/assets/stylesheets/font-awesome/_classic.scss"
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
require_relative "../task"
|
2
|
+
|
3
|
+
class UpdateHexCodesTask < Task
|
4
|
+
def run
|
5
|
+
puts "* Updating #{hex_code_class_path}"
|
6
|
+
|
7
|
+
source = updated_hex_code_class
|
8
|
+
open_file(hex_code_class_path, "w") do |file|
|
9
|
+
file.write source
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
def hex_codes
|
14
|
+
css.scan(/\.icon-([-a-z]+):before.+content: "\\([a-f\d]+)";/).inject({}) do |result, (name, hex_code)|
|
15
|
+
result.merge name => hex_code
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
def updated_hex_code_class
|
20
|
+
hex_code_class.sub(/HEX_CODES = {[^}]*}/, "HEX_CODES = #{hex_codes}")
|
21
|
+
end
|
22
|
+
|
23
|
+
def hex_code_class
|
24
|
+
open_file(hex_code_class_path)
|
25
|
+
end
|
26
|
+
|
27
|
+
def hex_code_class_path
|
28
|
+
"lib/font_awesome/hex_code.rb"
|
29
|
+
end
|
30
|
+
|
31
|
+
def css
|
32
|
+
open_file("Font-Awesome/css/font-awesome.css")
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require_relative "../task"
|
2
|
+
require_relative "metrics"
|
3
|
+
|
4
|
+
class UpdateMetricsTask < Task
|
5
|
+
def run
|
6
|
+
puts "* Updating #{font_class_path}"
|
7
|
+
|
8
|
+
source = updated_font_class
|
9
|
+
open_file(font_class_path, "w") do |file|
|
10
|
+
file.write source
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def updated_font_class
|
15
|
+
font_class.sub(/ASCENT = \d+/, "ASCENT = #{Metrics.ascent}").sub(/DESCENT = -\d+/, "DESCENT = #{Metrics.descent}")
|
16
|
+
end
|
17
|
+
|
18
|
+
def font_class
|
19
|
+
open_file(font_class_path)
|
20
|
+
end
|
21
|
+
|
22
|
+
def font_class_path
|
23
|
+
"lib/font_awesome/font.rb"
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require_relative "../task"
|
2
|
+
require "font_awesome/icon"
|
3
|
+
|
4
|
+
class UpdateSassTask < Task
|
5
|
+
def run
|
6
|
+
puts "* Updating #{path}"
|
7
|
+
|
8
|
+
open_file(path, "w") {|file| file.write contents }
|
9
|
+
end
|
10
|
+
|
11
|
+
def contents
|
12
|
+
FontAwesome::Icon.all.map do |icon|
|
13
|
+
"%icon-#{icon.name} { content: '#{icon.hex_code.to_css}'; }\n"
|
14
|
+
end.join
|
15
|
+
end
|
16
|
+
|
17
|
+
def path
|
18
|
+
"app/assets/stylesheets/font-awesome/_icons.scss"
|
19
|
+
end
|
20
|
+
end
|
data/tasks/update.rake
ADDED
Binary file
|