css3-progress-bar-rails 0.2.2 → 0.3.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.
data/.travis.yml
CHANGED
@@ -3,13 +3,14 @@
|
|
3
3
|
module Css3ProgressBarsHelper
|
4
4
|
|
5
5
|
# Accepts a value between 0 and 100 that represents the percentage amount displayed
|
6
|
-
# as filled on the progress bar's div style.
|
6
|
+
# as filled on the progress bar's div style. Numbers greater than 100 will be
|
7
|
+
# returned as 100, likewise numbers less than 0 will be returned as 0.
|
7
8
|
#
|
8
9
|
# An options hash may also be passed to the method, with boolean options for
|
9
10
|
# :rounded and :tiny. Pass a string in the :color option from the available
|
10
11
|
# choices of 'green', 'orange', 'pink', 'blue', and 'purple'.
|
11
12
|
def progress_bar percentage, *opts
|
12
|
-
|
13
|
+
percentage = scrub_percentage(percentage)
|
13
14
|
options = opts.extract_options!
|
14
15
|
|
15
16
|
html_classes = setup_default_container_classes
|
@@ -17,7 +18,7 @@ module Css3ProgressBarsHelper
|
|
17
18
|
if options[:rounded] && options[:rounded] == true
|
18
19
|
handle_rounded_classes(html_classes)
|
19
20
|
end
|
20
|
-
|
21
|
+
|
21
22
|
if options[:tiny] && options[:tiny] == true
|
22
23
|
handle_tiny_classes(html_classes)
|
23
24
|
end
|
@@ -36,12 +37,14 @@ module Css3ProgressBarsHelper
|
|
36
37
|
# values. As there is a limit to the number of colors, only the first five
|
37
38
|
# elements of the array will be used.
|
38
39
|
#
|
40
|
+
# An error will be raised if the values passed in are greater than 100 when summed.
|
41
|
+
#
|
39
42
|
# An options hash may also be passed to the method, with a boolean option available for :tiny
|
40
43
|
def combo_progress_bar percentages, *opts
|
41
44
|
validate_percentages(percentages[0..4])
|
42
45
|
options = opts.extract_options!
|
43
46
|
html_classes = setup_default_container_classes
|
44
|
-
|
47
|
+
|
45
48
|
if options[:tiny] && options[:tiny] == true
|
46
49
|
handle_tiny_classes(html_classes)
|
47
50
|
end
|
@@ -56,15 +59,19 @@ module Css3ProgressBarsHelper
|
|
56
59
|
end
|
57
60
|
|
58
61
|
protected
|
59
|
-
|
60
|
-
#
|
61
|
-
#
|
62
|
-
def
|
63
|
-
|
62
|
+
# Raising errors was kind of stupid for single progress bars, so instead
|
63
|
+
# return the percentage amount if it's betwee 0 and 100. If it's > 100,
|
64
|
+
# return 100. If it's < 0, return 0.
|
65
|
+
def scrub_percentage percentage
|
66
|
+
p = percentage.to_i
|
67
|
+
return p if (0..100).to_a.include?(p)
|
68
|
+
p > 100 ? 100 : 0
|
64
69
|
end
|
65
70
|
|
66
71
|
def validate_percentages percentages
|
67
|
-
percentages.
|
72
|
+
if percentages.map(&:to_i).inject(:+) > 100
|
73
|
+
raise Css3ProgressBars::ComboBarError, "Values passed to combo bar exceed 100%"
|
74
|
+
end
|
68
75
|
end
|
69
76
|
|
70
77
|
def setup_default_container_classes
|
@@ -109,3 +116,6 @@ module Css3ProgressBarsHelper
|
|
109
116
|
content_tag :div, bar_html, :class => classes.join(' ')
|
110
117
|
end
|
111
118
|
end
|
119
|
+
module Css3ProgressBars
|
120
|
+
class ComboBarError < ArgumentError; end
|
121
|
+
end
|
@@ -5,9 +5,9 @@ require "css3-progress-bar-rails/version"
|
|
5
5
|
Gem::Specification.new do |s|
|
6
6
|
s.name = "css3-progress-bar-rails"
|
7
7
|
s.version = Css3::Progress::Bar::Rails::VERSION
|
8
|
-
s.authors = ["Nicholas Fine"]
|
9
|
-
s.email = ["nicholas.fine@gmail.com"]
|
10
|
-
s.homepage = ""
|
8
|
+
s.authors = ["Nicholas Fine", "Josh Sullivan"]
|
9
|
+
s.email = ["nicholas.fine@gmail.com", "josh@dipperstove.com"]
|
10
|
+
s.homepage = "http://ndfine.com/2012/01/03/css3-progress-bars-for-rails.html"
|
11
11
|
s.summary = %q{Integrates Josh Sullivan's CSS3 Progress Bars into Rails 3.1+ Projects.}
|
12
12
|
s.description = %q{Integrates Josh Sullivan's CSS3 Progress Bars into Rails and adds ActionView helpers for generation.}
|
13
13
|
|
@@ -18,8 +18,6 @@ Gem::Specification.new do |s|
|
|
18
18
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
19
19
|
s.require_paths = ["lib"]
|
20
20
|
|
21
|
-
# specify any dependencies here; for example:
|
22
|
-
# s.add_development_dependency "rspec"
|
23
21
|
s.add_runtime_dependency "rails"
|
24
22
|
s.add_development_dependency "minitest"
|
25
23
|
s.add_development_dependency "nokogiri"
|
@@ -10,8 +10,8 @@ describe Css3ProgressBarsHelper do
|
|
10
10
|
describe '#combo_progress_bar' do
|
11
11
|
describe 'given a collection that contains an invalid percentage value' do
|
12
12
|
it 'raises an ArgumentError' do
|
13
|
-
proc {combo_progress_bar([1,2,888])}.must_raise
|
14
|
-
proc {combo_progress_bar([1,2,'99999',4,5])}.must_raise
|
13
|
+
proc {combo_progress_bar([1,2,888])}.must_raise Css3ProgressBars::ComboBarError
|
14
|
+
proc {combo_progress_bar([1,2,'99999',4,5])}.must_raise Css3ProgressBars::ComboBarError
|
15
15
|
end
|
16
16
|
end
|
17
17
|
describe 'given a collection of valid percentage values' do
|
@@ -37,13 +37,19 @@ describe Css3ProgressBarsHelper do
|
|
37
37
|
|
38
38
|
describe '#progress_bar' do
|
39
39
|
describe 'given an invalid percentage value' do
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
40
|
+
describe 'greater than 100' do
|
41
|
+
it 'sets the progress div width to 100' do
|
42
|
+
Nokogiri::HTML(progress_bar(101)).search('div.progress').first.attributes["style"].value.must_equal "width: 100%;"
|
43
|
+
Nokogiri::HTML(progress_bar(10100)).search('div.progress').first.attributes["style"].value.must_equal "width: 100%;"
|
44
|
+
end
|
44
45
|
end
|
45
|
-
end
|
46
46
|
|
47
|
+
describe 'less than 0' do
|
48
|
+
it 'sets the progress div width to 0' do
|
49
|
+
Nokogiri::HTML(progress_bar(-203)).search('div.progress').first.attributes["style"].value.must_equal "width: 0%;"
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
47
53
|
describe 'given a valid percentage value' do
|
48
54
|
describe 'with the color option' do
|
49
55
|
describe 'set to an invalid color' do
|
metadata
CHANGED
@@ -1,16 +1,22 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: css3-progress-bar-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
+
hash: 19
|
4
5
|
prerelease:
|
5
|
-
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 3
|
9
|
+
- 0
|
10
|
+
version: 0.3.0
|
6
11
|
platform: ruby
|
7
12
|
authors:
|
8
13
|
- Nicholas Fine
|
14
|
+
- Josh Sullivan
|
9
15
|
autorequire:
|
10
16
|
bindir: bin
|
11
17
|
cert_chain: []
|
12
18
|
|
13
|
-
date: 2012-01-
|
19
|
+
date: 2012-01-13 00:00:00 -06:00
|
14
20
|
default_executable:
|
15
21
|
dependencies:
|
16
22
|
- !ruby/object:Gem::Dependency
|
@@ -21,6 +27,9 @@ dependencies:
|
|
21
27
|
requirements:
|
22
28
|
- - ">="
|
23
29
|
- !ruby/object:Gem::Version
|
30
|
+
hash: 3
|
31
|
+
segments:
|
32
|
+
- 0
|
24
33
|
version: "0"
|
25
34
|
type: :runtime
|
26
35
|
version_requirements: *id001
|
@@ -32,6 +41,9 @@ dependencies:
|
|
32
41
|
requirements:
|
33
42
|
- - ">="
|
34
43
|
- !ruby/object:Gem::Version
|
44
|
+
hash: 3
|
45
|
+
segments:
|
46
|
+
- 0
|
35
47
|
version: "0"
|
36
48
|
type: :development
|
37
49
|
version_requirements: *id002
|
@@ -43,12 +55,16 @@ dependencies:
|
|
43
55
|
requirements:
|
44
56
|
- - ">="
|
45
57
|
- !ruby/object:Gem::Version
|
58
|
+
hash: 3
|
59
|
+
segments:
|
60
|
+
- 0
|
46
61
|
version: "0"
|
47
62
|
type: :development
|
48
63
|
version_requirements: *id003
|
49
64
|
description: Integrates Josh Sullivan's CSS3 Progress Bars into Rails and adds ActionView helpers for generation.
|
50
65
|
email:
|
51
66
|
- nicholas.fine@gmail.com
|
67
|
+
- josh@dipperstove.com
|
52
68
|
executables: []
|
53
69
|
|
54
70
|
extensions: []
|
@@ -68,7 +84,7 @@ files:
|
|
68
84
|
- lib/css3-progress-bar-rails/version.rb
|
69
85
|
- test/css3_progress_bars_helper_test.rb
|
70
86
|
has_rdoc: true
|
71
|
-
homepage:
|
87
|
+
homepage: http://ndfine.com/2012/01/03/css3-progress-bars-for-rails.html
|
72
88
|
licenses: []
|
73
89
|
|
74
90
|
post_install_message:
|
@@ -81,17 +97,23 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
81
97
|
requirements:
|
82
98
|
- - ">="
|
83
99
|
- !ruby/object:Gem::Version
|
100
|
+
hash: 3
|
101
|
+
segments:
|
102
|
+
- 0
|
84
103
|
version: "0"
|
85
104
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
86
105
|
none: false
|
87
106
|
requirements:
|
88
107
|
- - ">="
|
89
108
|
- !ruby/object:Gem::Version
|
109
|
+
hash: 3
|
110
|
+
segments:
|
111
|
+
- 0
|
90
112
|
version: "0"
|
91
113
|
requirements: []
|
92
114
|
|
93
115
|
rubyforge_project: css3-progress-bar-rails
|
94
|
-
rubygems_version: 1.
|
116
|
+
rubygems_version: 1.4.2
|
95
117
|
signing_key:
|
96
118
|
specification_version: 3
|
97
119
|
summary: Integrates Josh Sullivan's CSS3 Progress Bars into Rails 3.1+ Projects.
|