underglow 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,14 @@
1
+ class Array
2
+ def bucketize(count)
3
+ raise ArgumentError unless count.kind_of? Fixnum
4
+
5
+ count = count.to_i
6
+
7
+ return self if count <= 0
8
+
9
+ j = length / count.to_f
10
+ result = each_with_index.chunk { |_, i| (i / j).floor }.map { |_, v| v.map(&:first) }
11
+ result << [] until result.length == count
12
+ result
13
+ end
14
+ end
@@ -1,3 +1,3 @@
1
1
  module Underglow
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
data/lib/underglow.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  require "underglow/version"
2
+ require 'underglow/extensions/array'
2
3
  require 'underglow/extensions/string'
3
4
  require 'underglow/extensions/symbol'
4
5
 
@@ -0,0 +1,34 @@
1
+ require 'spec_helper'
2
+
3
+ describe "Array" do
4
+ describe '#bucketize' do
5
+ it "splits array into number of buckets" do
6
+ bucketized = [4, 5, 6, 7].bucketize(2)
7
+ bucketized.should == [[4, 5], [6, 7]]
8
+ end
9
+
10
+ it "splits array into buckets with uneven counts if necessary" do
11
+ bucketized = [4, 5, 6, 7, 8].bucketize(3)
12
+ bucketized.should == [[4, 5], [6, 7], [8]]
13
+ end
14
+
15
+ it "works with just one bucket" do
16
+ bucketized = [4, 5, 6, 7].bucketize(1)
17
+ bucketized.should == [[4, 5, 6, 7]]
18
+ end
19
+
20
+ it "can handles empty buckets" do
21
+ bucketized = [4, 5, 6, 7].bucketize(5)
22
+ bucketized.should == [[4], [5], [6], [7], []]
23
+ end
24
+
25
+ it "returns array if no buckets" do
26
+ bucketized = [4, 5, 6, 7].bucketize(0)
27
+ bucketized.should == [4, 5, 6, 7]
28
+ end
29
+
30
+ it "raises argument error if not given an integer" do
31
+ lambda { [4, 5, 6].bucketize("foo") }.should raise_error(ArgumentError)
32
+ end
33
+ end
34
+ end
data/underglow.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "underglow"
8
- s.version = "0.1.0"
8
+ s.version = "0.1.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["James Hu"]
12
- s.date = "2013-06-29"
12
+ s.date = "2013-07-13"
13
13
  s.description = "A library that makes life easier."
14
14
  s.email = "axsuul@gmail.com"
15
15
  s.extra_rdoc_files = [
@@ -31,6 +31,7 @@ Gem::Specification.new do |s|
31
31
  "lib/underglow/capistrano/deploy/rake.rb",
32
32
  "lib/underglow/capistrano/deploy/unicorn.rb",
33
33
  "lib/underglow/capistrano/helpers.rb",
34
+ "lib/underglow/extensions/array.rb",
34
35
  "lib/underglow/extensions/string.rb",
35
36
  "lib/underglow/extensions/symbol.rb",
36
37
  "lib/underglow/rails/environment.rb",
@@ -38,6 +39,7 @@ Gem::Specification.new do |s|
38
39
  "lib/underglow/tasks/system.rake",
39
40
  "lib/underglow/tasks/thin.rake",
40
41
  "lib/underglow/version.rb",
42
+ "spec/extensions/array_spec.rb",
41
43
  "spec/extensions/string_spec.rb",
42
44
  "spec/extensions/symbol_spec.rb",
43
45
  "spec/spec_helper.rb",
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: underglow
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-06-29 00:00:00.000000000 Z
12
+ date: 2013-07-13 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
@@ -97,6 +97,7 @@ files:
97
97
  - lib/underglow/capistrano/deploy/rake.rb
98
98
  - lib/underglow/capistrano/deploy/unicorn.rb
99
99
  - lib/underglow/capistrano/helpers.rb
100
+ - lib/underglow/extensions/array.rb
100
101
  - lib/underglow/extensions/string.rb
101
102
  - lib/underglow/extensions/symbol.rb
102
103
  - lib/underglow/rails/environment.rb
@@ -104,6 +105,7 @@ files:
104
105
  - lib/underglow/tasks/system.rake
105
106
  - lib/underglow/tasks/thin.rake
106
107
  - lib/underglow/version.rb
108
+ - spec/extensions/array_spec.rb
107
109
  - spec/extensions/string_spec.rb
108
110
  - spec/extensions/symbol_spec.rb
109
111
  - spec/spec_helper.rb
@@ -123,7 +125,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
123
125
  version: '0'
124
126
  segments:
125
127
  - 0
126
- hash: 4569539885811564498
128
+ hash: 4594569153630898161
127
129
  required_rubygems_version: !ruby/object:Gem::Requirement
128
130
  none: false
129
131
  requirements: