nifty-utils 1.0.9 → 1.1.0

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
  SHA1:
3
- metadata.gz: 5830c82f749532ed226146ff4c5212b409d7dbf3
4
- data.tar.gz: f940f1e50c8a70acd8de64a3effd56554b5672e4
3
+ metadata.gz: f15c837b03926d9a2189ed66336f4efd74fb438c
4
+ data.tar.gz: 3266ae6faf062f9aceed51e34594f9f04a59aabe
5
5
  SHA512:
6
- metadata.gz: 771f362ad4217d746d21df368e8fbb1cd0a90242f0218893996e0b4da324f2a8db4cea526fde12f0ad32f3a0d510af630ed724b97224aa9a8308bfb5aa55f1ac
7
- data.tar.gz: 4de7a80c3bb90b5a5860dafefc93f508872298fae2a632d54d06f95e390f106437a02c56a7f880a36add83fff6f328b4954feb24ee5e3bec9be6eb7aea72fdfd
6
+ metadata.gz: 583eecdb5e6fdcadac895987036265b70e95b787aebf537f7808baac8a60d8178be6f7cfa80deb61363e94ca4cc24af7a19bcc372d08abc5008c744add855f62
7
+ data.tar.gz: 82bf84d00522374940cd09c64d0a4c5a10d75edf77079e92a18e586a8eb34d549f3e39e8e983c80190b4e117b4734c9ad6579bda0a6a525cfc0342bc74349e3f
@@ -2,7 +2,8 @@ module Nifty
2
2
  module Utils
3
3
  class Railtie < Rails::Railtie #:nodoc:
4
4
 
5
- initializer 'nifty.utils.initialize' do
5
+ initializer 'nifty.utils.initialize' do |app|
6
+ Rails.application.config.i18n.load_path << File.expand_path(File.join('..', '..', '..', '..', 'locales', 'en.yml'), __FILE__)
6
7
 
7
8
  # Load the Active Record extensions
8
9
  ActiveSupport.on_load(:active_record) do
@@ -1,5 +1,5 @@
1
1
  module Nifty
2
2
  module Utils
3
- VERSION = '1.0.9'
3
+ VERSION = '1.1.0'
4
4
  end
5
5
  end
@@ -6,10 +6,13 @@ module Nifty
6
6
  # element. The ID of the outputted div will be `flash-alert` where alert is the
7
7
  # type of flash.
8
8
  #
9
- # If there are multiple flashes set, they will all be displayed.
10
- def display_flash
11
- flashes = flash.collect do |key,msg|
12
- content_tag :div, content_tag(:p, h(msg)), :id => "flash-#{key}"
9
+ # * <tt>:types</tt>: the names of flash messages to display with this helper
10
+ def display_flash(options = {})
11
+ options[:types] ||= [:alert, :warning, :notice]
12
+ options[:types].map do |key|
13
+ if flash[key]
14
+ content_tag :div, content_tag(:p, h(flash[key])), :id => "flash-#{key}", :class => "flashMessage flashMessage--#{key}"
15
+ end
13
16
  end.join.html_safe
14
17
  end
15
18
 
@@ -47,6 +50,45 @@ module Nifty
47
50
  content_tag :span, (bool ? "<span class='true'>&#x2714;#{true_text}</span>" : "<span class='false'>&#x2718;#{false_text}</span>").html_safe, :class => "boolean", :title => tip
48
51
  end
49
52
 
53
+ # Returns a URL to share some content on Twitter
54
+ #
55
+ # * <tt>:text</tt> - the text you wish to tweet
56
+ # * <tt>:url</tt> - the URL you want to tweet
57
+ def twitter_share_url(options = {})
58
+ "https://twitter.com/share?text=#{CGI.escape(options[:text])}&url=#{CGI.escape(options[:url])}"
59
+ end
60
+
61
+ # Returns a length of time in works (no I18N)
62
+ #
63
+ def length_of_time_in_words(seconds, options = {})
64
+ days = (seconds / 60 / 60 / 24).floor
65
+ hours = ((seconds / 60 / 60) - (days * 24)).floor
66
+ minutes = ((seconds / 60) - (days * 24 * 60) - (hours * 60)).floor
67
+ seconds = (seconds - (days * 24 * 60 * 60) - (hours * 60 * 60) - (minutes * 60)).floor
68
+ Array.new.tap do |s|
69
+ if options[:short]
70
+ s << "#{days}d" if days > 0
71
+ s << "#{hours}h" if hours > 0
72
+ s << "#{minutes}m" if minutes > 0
73
+ s << "#{seconds}s" if seconds > 0
74
+ else
75
+ s << pluralize(days, 'day') if days > 0
76
+ s << pluralize(hours, 'hour') if hours > 0
77
+ s << pluralize(minutes, 'minute') if minutes > 0
78
+ s << pluralize(seconds, 'second') if seconds > 0
79
+ end
80
+ end.join(options[:short] ? ' ' : ', ')
81
+ end
82
+
83
+ # Return an image path for an RFC4226 QR code for a tiven RTP token
84
+ def rfc4226_qrcode(token)
85
+ data = "otpauth://totp/#{request.host}?secret=#{token}"
86
+ data = Rack::Utils.escape(data)
87
+ url = "https://chart.googleapis.com/chart?chs=200x200&chld=M|0&cht=qr&chl=#{data}"
88
+ image_tag(url, :alt => 'Google Authenticator QRCode', :width => 200, :height => 200)
89
+ end
90
+
91
+
50
92
  end
51
93
  end
52
94
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nifty-utils
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.9
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adam Cooke
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-02-12 00:00:00.000000000 Z
11
+ date: 2015-02-19 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: A set of useful utilties for Rails applications.
14
14
  email: