weather-icons-rails 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/stylesheets/weather-icons/_bootstrap.css.scss +87 -0
- data/app/assets/stylesheets/weather-icons/_bordered-pulled.css.scss +16 -0
- data/app/assets/stylesheets/weather-icons/_core.css.scss +13 -0
- data/app/assets/stylesheets/weather-icons/_extras.css.scss +44 -0
- data/app/assets/stylesheets/weather-icons/_fixed-width.css.scss +6 -0
- data/app/assets/stylesheets/weather-icons/_icons.css.scss +95 -0
- data/app/assets/stylesheets/weather-icons/_larger.css.scss +43 -0
- data/app/assets/stylesheets/weather-icons/_list.css.scss +19 -0
- data/app/assets/stylesheets/weather-icons/_mixins.css.scss +20 -0
- data/app/assets/stylesheets/weather-icons/_path.css.scss +13 -0
- data/app/assets/stylesheets/weather-icons/_rotated-flipped.css.scss +9 -0
- data/app/assets/stylesheets/weather-icons/_spinning.css.scss +27 -0
- data/app/assets/stylesheets/weather-icons/_stacked.css.scss +20 -0
- data/app/assets/stylesheets/weather-icons/_variables.css.scss +102 -0
- data/app/assets/stylesheets/weather-icons.css.scss +45 -0
- data/lib/weather-icons/rails/rails/engine.rb +13 -0
- data/lib/weather-icons/rails/rails/helpers.rb +94 -0
- data/lib/weather-icons/rails/rails/railtie.rb +13 -0
- data/lib/weather-icons/rails/version.rb +5 -0
- data/lib/weather-icons/rails.rb +58 -0
- data/lib/weather-icons-rails.rb +3 -4
- data/test/dummy/app/assets/stylesheets/sass-import.css.sass +1 -1
- data/test/dummy/app/assets/stylesheets/scss-import.css.scss +1 -1
- data/test/dummy/app/assets/stylesheets/sprockets-require.css +2 -2
- data/test/dummy/app/controllers/pages_controller.rb +2 -2
- data/test/dummy/app/views/pages/icons.html.erb +2 -2
- data/test/dummy/config/application.rb +18 -18
- data/test/dummy/config/boot.rb +10 -10
- data/test/dummy/config/environment.rb +5 -5
- data/test/dummy/config/initializers/secret_token.rb +8 -8
- data/test/dummy/config/routes.rb +3 -3
- data/test/dummy/config.ru +4 -4
- data/test/font_awesome_rails_test.rb +65 -65
- data/test/icon_helper_test.rb +113 -113
- data/test/test_helper.rb +7 -7
- metadata +80 -9
- data/app/assets/stylesheets/weather-icons.css +0 -327
- data/app/helpers/font_awesome/rails/icon_helper.rb +0 -92
- data/app/helpers/weather_icons/rails/icon_helper.rb +0 -92
- data/lib/weather-icons-rails/engine.rb +0 -4
- data/lib/weather-icons-rails/version.rb +0 -3
@@ -0,0 +1,94 @@
|
|
1
|
+
module WeatherIcons
|
2
|
+
module Rails
|
3
|
+
module Rails
|
4
|
+
module IconHelpers
|
5
|
+
# Creates an icon tag given an icon name and possible icon
|
6
|
+
# modifiers.
|
7
|
+
#
|
8
|
+
# Examples
|
9
|
+
#
|
10
|
+
# wi_icon "camera-retro"
|
11
|
+
# # => <i class="wi-camera-retro"></i>
|
12
|
+
#
|
13
|
+
# wi_icon "camera-retro", text: "Take a photo"
|
14
|
+
# # => <i class="wi-camera-retro"></i> Take a photo
|
15
|
+
#
|
16
|
+
# wi_icon "camera-retro 2x"
|
17
|
+
# # => <i class="wi-camera-retro wi-2x"></i>
|
18
|
+
# wi_icon ["camera-retro", "4x"]
|
19
|
+
# # => <i class="wi-camera-retro wi-4x"></i>
|
20
|
+
# wi_icon "spinner spin lg"
|
21
|
+
# # => <i class="wi-spinner wi-spin wi-lg">
|
22
|
+
#
|
23
|
+
# wi_icon "quote-left 4x", class: "pull-left"
|
24
|
+
# # => <i class="wi-quote-left wi-4x pull-left"></i>
|
25
|
+
#
|
26
|
+
# wi_icon "user", data: { id: 123 }
|
27
|
+
# # => <i class="wi-user" data-id="123"></i>
|
28
|
+
#
|
29
|
+
# content_tag(:li, wi_icon("check li", text: "Bulleted list item"))
|
30
|
+
# # => <li><i class="wi-check wi-li"></i> Bulleted list item</li>
|
31
|
+
def wi_icon(names = "flag", options = {})
|
32
|
+
classes = []
|
33
|
+
classes.concat Private.icon_names(names)
|
34
|
+
classes.concat Array(options.delete(:class))
|
35
|
+
text = options.delete(:text)
|
36
|
+
icon = content_tag(:i, nil, options.merge(:class => classes))
|
37
|
+
Private.icon_join(icon, text)
|
38
|
+
end
|
39
|
+
|
40
|
+
# Creates an stack set of icon tags given a base icon name, a main icon
|
41
|
+
# name, and possible icon modifiers.
|
42
|
+
#
|
43
|
+
# Examples
|
44
|
+
#
|
45
|
+
# wi_stacked_icon "twitter", base: "square-o"
|
46
|
+
# # => <span class="wi-stack">
|
47
|
+
# # => <i class="wi-square-o wi-stack-2x"></i>
|
48
|
+
# # => <i class="wi-twitter wi-stack-1x"></i>
|
49
|
+
# # => </span>
|
50
|
+
#
|
51
|
+
# wi_stacked_icon "terminal inverse", base: "square", class: "pull-right", text: "Hi!"
|
52
|
+
# # => <span class="wi-stack pull-right">
|
53
|
+
# # => <i class="wi-square wi-stack-2x"></i>
|
54
|
+
# # => <i class="wi-terminal wi-inverse wi-stack-1x"></i>
|
55
|
+
# # => </span> Hi!
|
56
|
+
#
|
57
|
+
# wi_stacked_icon "camera", base: "ban-circle", reverse: true
|
58
|
+
# # => <span class="wi-stack">
|
59
|
+
# # => <i class="wi-camera wi-stack-1x"></i>
|
60
|
+
# # => <i class="wi-ban-circle wi-stack-2x"></i>
|
61
|
+
# # => </span>
|
62
|
+
def wi_stacked_icon(names = "flag", options = {})
|
63
|
+
classes = Private.icon_names("stack").concat(Array(options.delete(:class)))
|
64
|
+
base_names = Private.array_value(options.delete(:base) || "square-o").push("stack-2x")
|
65
|
+
names = Private.array_value(names).push("stack-1x")
|
66
|
+
base = wi_icon(base_names, options.delete(:base_options) || {})
|
67
|
+
icon = wi_icon(names, options.delete(:icon_options) || {})
|
68
|
+
icons = [base, icon]
|
69
|
+
icons.reverse! if options.delete(:reverse)
|
70
|
+
text = options.delete(:text)
|
71
|
+
stacked_icon = content_tag(:span, safe_join(icons), options.merge(:class => classes))
|
72
|
+
Private.icon_join(stacked_icon, text)
|
73
|
+
end
|
74
|
+
|
75
|
+
module Private
|
76
|
+
extend ActionView::Helpers::OutputSafetyHelper
|
77
|
+
|
78
|
+
def self.icon_join(icon, text)
|
79
|
+
return icon if text.blank?
|
80
|
+
safe_join([icon, ERB::Util.html_escape(text)], " ")
|
81
|
+
end
|
82
|
+
|
83
|
+
def self.icon_names(names = [])
|
84
|
+
array_value(names).map { |n| "wi-#{n}" }
|
85
|
+
end
|
86
|
+
|
87
|
+
def self.array_value(value = [])
|
88
|
+
value.is_a?(Array) ? value : value.to_s.split(/\s+/)
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
94
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require "weather-icons/rails/rails/helpers"
|
2
|
+
|
3
|
+
module WeatherIcons
|
4
|
+
module Rails
|
5
|
+
module Rails
|
6
|
+
class Railtie < ::Rails::Railtie
|
7
|
+
initializer "weather-icons-rails.view_helpers" do
|
8
|
+
ActionView::Base.send :include, IconHelpers
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
module WeatherIcons
|
2
|
+
module Rails
|
3
|
+
class << self
|
4
|
+
def load!
|
5
|
+
if rails?
|
6
|
+
register_rails_engine
|
7
|
+
end
|
8
|
+
|
9
|
+
if compass?
|
10
|
+
register_compass_extension
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def gem_path
|
15
|
+
@gem_path ||= File.expand_path('..', File.dirname(__FILE__))
|
16
|
+
end
|
17
|
+
|
18
|
+
def stylesheets_path
|
19
|
+
File.join(assets_path, 'stylesheets')
|
20
|
+
end
|
21
|
+
|
22
|
+
def fonts_path
|
23
|
+
File.join(assets_path, 'fonts')
|
24
|
+
end
|
25
|
+
|
26
|
+
def assets_path
|
27
|
+
@assets_path ||= File.join(gem_path, 'vendor', 'assets')
|
28
|
+
end
|
29
|
+
|
30
|
+
def compass?
|
31
|
+
defined?(::Compass)
|
32
|
+
end
|
33
|
+
|
34
|
+
def rails?
|
35
|
+
defined?(::Rails)
|
36
|
+
end
|
37
|
+
|
38
|
+
private
|
39
|
+
|
40
|
+
def register_compass_extension
|
41
|
+
::Compass::Frameworks.register(
|
42
|
+
'weather-icons',
|
43
|
+
path: gem_path,
|
44
|
+
stylesheets_directory: stylesheets_path,
|
45
|
+
templates_directory: File.join(gem_path, 'templates')
|
46
|
+
)
|
47
|
+
end
|
48
|
+
|
49
|
+
def register_rails_engine
|
50
|
+
require 'sass-rails'
|
51
|
+
require 'weather-icons/rails/rails/engine'
|
52
|
+
require 'weather-icons/rails/rails/railtie'
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
WeatherIcons::Rails.load!
|
data/lib/weather-icons-rails.rb
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
require
|
2
|
-
require "weather-icons-rails/
|
3
|
-
|
4
|
-
end
|
1
|
+
require 'weather-icons/rails'
|
2
|
+
# require "weather-icons-rails/version"
|
3
|
+
# require "weather-icons-rails/engine" if defined?(::Rails)
|
@@ -1 +1 @@
|
|
1
|
-
@import font-awesome
|
1
|
+
// @import font-awesome
|
@@ -1 +1 @@
|
|
1
|
-
@import "font-awesome";
|
1
|
+
// @import "font-awesome";
|
@@ -1,3 +1,3 @@
|
|
1
1
|
/*
|
2
|
-
|
3
|
-
*/
|
2
|
+
**= require font-awesome
|
3
|
+
*/
|
@@ -1,2 +1,2 @@
|
|
1
|
-
class PagesController < ActionController::Base
|
2
|
-
end
|
1
|
+
# class PagesController < ActionController::Base
|
2
|
+
# end
|
@@ -1,3 +1,3 @@
|
|
1
|
-
<%= fa_icon "flag" %>
|
1
|
+
<!-- <%= fa_icon "flag" %>
|
2
2
|
|
3
|
-
<%= fa_stacked_icon "twitter", :base => "check-empty" %>
|
3
|
+
<%= fa_stacked_icon "twitter", :base => "check-empty" %> -->
|
@@ -1,18 +1,18 @@
|
|
1
|
-
require File.expand_path('../boot', __FILE__)
|
2
|
-
|
3
|
-
# require "rails/all"
|
4
|
-
require "sprockets/railtie"
|
5
|
-
|
6
|
-
Bundler.require(:default, :development)
|
7
|
-
|
8
|
-
module Dummy
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
end
|
1
|
+
# require File.expand_path('../boot', __FILE__)
|
2
|
+
#
|
3
|
+
# # require "rails/all"
|
4
|
+
# require "sprockets/railtie"
|
5
|
+
#
|
6
|
+
# Bundler.require(:default, :development)
|
7
|
+
#
|
8
|
+
# module Dummy
|
9
|
+
# class Application < Rails::Application
|
10
|
+
# config.encoding = "utf-8"
|
11
|
+
# config.assets.enabled = true
|
12
|
+
# config.assets.version = '1.0'
|
13
|
+
#
|
14
|
+
# # replacement for environments/*.rb
|
15
|
+
# config.active_support.deprecation = :stderr
|
16
|
+
# config.eager_load = false
|
17
|
+
# end
|
18
|
+
# end
|
data/test/dummy/config/boot.rb
CHANGED
@@ -1,10 +1,10 @@
|
|
1
|
-
require 'rubygems'
|
2
|
-
gemfile = File.expand_path('../../../../Gemfile', __FILE__)
|
3
|
-
|
4
|
-
if File.exist?(gemfile)
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
end
|
9
|
-
|
10
|
-
$:.unshift File.expand_path('../../../../lib', __FILE__)
|
1
|
+
# require 'rubygems'
|
2
|
+
# gemfile = File.expand_path('../../../../Gemfile', __FILE__)
|
3
|
+
#
|
4
|
+
# if File.exist?(gemfile)
|
5
|
+
# ENV['BUNDLE_GEMFILE'] = gemfile
|
6
|
+
# require 'bundler'
|
7
|
+
# Bundler.setup
|
8
|
+
# end
|
9
|
+
#
|
10
|
+
# $:.unshift File.expand_path('../../../../lib', __FILE__)
|
@@ -1,5 +1,5 @@
|
|
1
|
-
# Load the rails application
|
2
|
-
require File.expand_path('../application', __FILE__)
|
3
|
-
|
4
|
-
# Initialize the rails application
|
5
|
-
Dummy::Application.initialize!
|
1
|
+
# # Load the rails application
|
2
|
+
# require File.expand_path('../application', __FILE__)
|
3
|
+
#
|
4
|
+
# # Initialize the rails application
|
5
|
+
# Dummy::Application.initialize!
|
@@ -1,8 +1,8 @@
|
|
1
|
-
# Be sure to restart your server when you modify this file.
|
2
|
-
|
3
|
-
# Your secret key for verifying the integrity of signed cookies.
|
4
|
-
# If you change this key, all old signed cookies will become invalid!
|
5
|
-
# Make sure the secret is at least 30 characters and all random,
|
6
|
-
# no regular words or you'll be exposed to dictionary attacks.
|
7
|
-
Dummy::Application.config.secret_token = 'deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef'
|
8
|
-
Dummy::Application.config.secret_key_base = 'deadbeef' if Dummy::Application.config.respond_to?(:secret_key_base)
|
1
|
+
# # Be sure to restart your server when you modify this file.
|
2
|
+
#
|
3
|
+
# # Your secret key for verifying the integrity of signed cookies.
|
4
|
+
# # If you change this key, all old signed cookies will become invalid!
|
5
|
+
# # Make sure the secret is at least 30 characters and all random,
|
6
|
+
# # no regular words or you'll be exposed to dictionary attacks.
|
7
|
+
# Dummy::Application.config.secret_token = 'deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef'
|
8
|
+
# Dummy::Application.config.secret_key_base = 'deadbeef' if Dummy::Application.config.respond_to?(:secret_key_base)
|
data/test/dummy/config/routes.rb
CHANGED
@@ -1,3 +1,3 @@
|
|
1
|
-
Dummy::Application.routes.draw do
|
2
|
-
|
3
|
-
end
|
1
|
+
# Dummy::Application.routes.draw do
|
2
|
+
# get "/icons", :to => "pages#icons"
|
3
|
+
# end
|
data/test/dummy/config.ru
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# This file is used by Rack-based servers to start the application.
|
2
|
-
|
3
|
-
require ::File.expand_path('../config/environment', __FILE__)
|
4
|
-
run Dummy::Application
|
1
|
+
# # This file is used by Rack-based servers to start the application.
|
2
|
+
#
|
3
|
+
# require ::File.expand_path('../config/environment', __FILE__)
|
4
|
+
# run Dummy::Application
|
@@ -1,65 +1,65 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
|
3
|
-
class FontAwesomeRailsTest < ActionDispatch::IntegrationTest
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
end
|
1
|
+
# require 'test_helper'
|
2
|
+
#
|
3
|
+
# class FontAwesomeRailsTest < ActionDispatch::IntegrationTest
|
4
|
+
# teardown { clean_sprockets_cache }
|
5
|
+
#
|
6
|
+
# test "engine is loaded" do
|
7
|
+
# assert_equal ::Rails::Engine, FontAwesome::Rails::Engine.superclass
|
8
|
+
# end
|
9
|
+
#
|
10
|
+
# test "fonts are served" do
|
11
|
+
# get "/assets/fontawesome-webfont.eot"
|
12
|
+
# assert_response :success
|
13
|
+
# get "/assets/fontawesome-webfont.ttf"
|
14
|
+
# assert_response :success
|
15
|
+
# get "/assets/fontawesome-webfont.woff"
|
16
|
+
# assert_response :success
|
17
|
+
# end
|
18
|
+
#
|
19
|
+
# test "stylesheets are served" do
|
20
|
+
# get "/assets/font-awesome.css"
|
21
|
+
# assert_font_awesome(response)
|
22
|
+
# end
|
23
|
+
#
|
24
|
+
# test "stylesheets contain asset pipeline references to fonts" do
|
25
|
+
# get "/assets/font-awesome.css"
|
26
|
+
# assert_match "/assets/fontawesome-webfont.eot", response.body
|
27
|
+
# assert_match "/assets/fontawesome-webfont.eot?#iefix", response.body
|
28
|
+
# assert_match "/assets/fontawesome-webfont.woff", response.body
|
29
|
+
# assert_match "/assets/fontawesome-webfont.ttf", response.body
|
30
|
+
# assert_match "/assets/fontawesome-webfont.svg#fontawesomeregular", response.body
|
31
|
+
# end
|
32
|
+
#
|
33
|
+
# test "stylesheet is available in a css sprockets require" do
|
34
|
+
# get "/assets/sprockets-require.css"
|
35
|
+
# assert_font_awesome(response)
|
36
|
+
# end
|
37
|
+
#
|
38
|
+
# test "stylesheet is available in a sass import" do
|
39
|
+
# get "/assets/sass-import.css"
|
40
|
+
# assert_font_awesome(response)
|
41
|
+
# end
|
42
|
+
#
|
43
|
+
# test "stylesheet is available in a scss import" do
|
44
|
+
# get "/assets/scss-import.css"
|
45
|
+
# assert_font_awesome(response)
|
46
|
+
# end
|
47
|
+
#
|
48
|
+
# test "helpers should be available in the view" do
|
49
|
+
# get "/icons"
|
50
|
+
# assert_response :success
|
51
|
+
# assert_select "i.fa.fa-flag"
|
52
|
+
# assert_select "span.fa-stack"
|
53
|
+
# end
|
54
|
+
#
|
55
|
+
# private
|
56
|
+
#
|
57
|
+
# def clean_sprockets_cache
|
58
|
+
# FileUtils.rm_rf File.expand_path("../dummy/tmp", __FILE__)
|
59
|
+
# end
|
60
|
+
#
|
61
|
+
# def assert_font_awesome(response)
|
62
|
+
# assert_response :success
|
63
|
+
# assert_match(/font-family:\s*'FontAwesome';/, response.body)
|
64
|
+
# end
|
65
|
+
# end
|