series_joiner 1.2.1 → 1.2.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,40 @@
1
+ module SeriesJoiner
2
+ module ArrayAdditions
3
+ # Joins items in an array together in a grammatically correct manner.
4
+ #
5
+ # Options:
6
+ # * `delimiter` - inserted between items, except for the final two (default: ', ')
7
+ # * `final_delimiter` - inserted between the final two items (if > 2), but before the conjunction (default: '')
8
+ # * `conjunction` - inserted between the final two items (default: ' and ')
9
+ def join_as_series(options = {})
10
+ if defined?(I18n)
11
+ default_delimiter = I18n.translate(:'series_joiner.default_delimiter', :locale => options[:locale])
12
+ default_final_delimiter = I18n.translate(:'series_joiner.default_final_delimiter', :locale => options[:locale])
13
+ default_conjunction = I18n.translate(:'series_joiner.default_conjunction', :locale => options[:locale])
14
+ else
15
+ default_delimiter = ', '
16
+ default_final_delimiter = ''
17
+ default_conjunction = ' and '
18
+ end
19
+
20
+ delimiter = options[:delimiter] || default_delimiter
21
+ final_delimiter = options[:final_delimiter] || default_final_delimiter
22
+ conjunction = options[:conjunction] || default_conjunction
23
+
24
+ sz = self.size
25
+ if sz > 0
26
+ r = self[0]
27
+ if sz > 1
28
+ if sz > 2
29
+ for i in 1..(sz - 2)
30
+ r += delimiter + self[i]
31
+ end
32
+ r += final_delimiter
33
+ end
34
+ r += conjunction + self[sz - 1]
35
+ end
36
+ end
37
+ return r
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,3 @@
1
+ module SeriesJoiner
2
+ VERSION = "1.2.2"
3
+ end
data/lib/series_joiner.rb CHANGED
@@ -1,42 +1,5 @@
1
- module SeriesJoiner
2
- # Joins items in an array together in a grammatically correct manner.
3
- #
4
- # Options:
5
- # * <tt>delimiter</tt> - inserted between items, except for the final two (default: ', ')
6
- # * <tt>final_delimiter</tt> - inserted between the final two items (if > 2), but before the conjunction (default: '')
7
- # * <tt>conjunction</tt> - inserted between the final two items (default: ' and ')
8
- def join_as_series(options = {})
9
- if defined?(I18n)
10
- default_delimiter = I18n.translate(:'series_joiner.default_delimiter', :locale => options[:locale])
11
- default_final_delimiter = I18n.translate(:'series_joiner.default_final_delimiter', :locale => options[:locale])
12
- default_conjunction = I18n.translate(:'series_joiner.default_conjunction', :locale => options[:locale])
13
- else
14
- default_delimiter = ', '
15
- default_final_delimiter = ''
16
- default_conjunction = ' and '
17
- end
18
-
19
- delimiter = options[:delimiter] || default_delimiter
20
- final_delimiter = options[:final_delimiter] || default_final_delimiter
21
- conjunction = options[:conjunction] || default_conjunction
22
-
23
- sz = self.size
24
- if sz > 0
25
- r = self[0]
26
- if sz > 1
27
- if sz > 2
28
- for i in 1..(sz - 2)
29
- r += delimiter + self[i]
30
- end
31
- r += final_delimiter
32
- end
33
- r += conjunction + self[sz - 1]
34
- end
35
- end
36
- return r
37
- end
38
- end
1
+ require "series_joiner/array_additions"
39
2
 
40
3
  class Array
41
- include SeriesJoiner
4
+ include SeriesJoiner::ArrayAdditions
42
5
  end
metadata CHANGED
@@ -1,138 +1,61 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: series_joiner
3
- version: !ruby/object:Gem::Version
4
- hash: 29
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.2.2
5
5
  prerelease:
6
- segments:
7
- - 1
8
- - 2
9
- - 1
10
- version: 1.2.1
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Dan Gebhardt
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2011-01-06 00:00:00 -05:00
19
- default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
22
- prerelease: false
23
- name: shoulda
24
- type: :development
25
- version_requirements: &id001 !ruby/object:Gem::Requirement
12
+ date: 2012-02-10 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rspec
16
+ requirement: &70182283182780 !ruby/object:Gem::Requirement
26
17
  none: false
27
- requirements:
28
- - - ">="
29
- - !ruby/object:Gem::Version
30
- hash: 3
31
- segments:
32
- - 0
33
- version: "0"
34
- requirement: *id001
35
- - !ruby/object:Gem::Dependency
36
- prerelease: false
37
- name: bundler
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
38
22
  type: :development
39
- version_requirements: &id002 !ruby/object:Gem::Requirement
40
- none: false
41
- requirements:
42
- - - ~>
43
- - !ruby/object:Gem::Version
44
- hash: 23
45
- segments:
46
- - 1
47
- - 0
48
- - 0
49
- version: 1.0.0
50
- requirement: *id002
51
- - !ruby/object:Gem::Dependency
52
23
  prerelease: false
53
- name: jeweler
54
- type: :development
55
- version_requirements: &id003 !ruby/object:Gem::Requirement
56
- none: false
57
- requirements:
58
- - - ~>
59
- - !ruby/object:Gem::Version
60
- hash: 7
61
- segments:
62
- - 1
63
- - 5
64
- - 2
65
- version: 1.5.2
66
- requirement: *id003
67
- - !ruby/object:Gem::Dependency
68
- prerelease: false
69
- name: rcov
70
- type: :development
71
- version_requirements: &id004 !ruby/object:Gem::Requirement
72
- none: false
73
- requirements:
74
- - - ">="
75
- - !ruby/object:Gem::Version
76
- hash: 3
77
- segments:
78
- - 0
79
- version: "0"
80
- requirement: *id004
81
- description: Extends Array with a join_as_series() method for joining arrays of items together into grammatically correct series. Useful for joining series like 'a, b and c'. Custom delimiters and conjunctions can be specified.
82
- email: contact@cerebris.com
24
+ version_requirements: *70182283182780
25
+ description: Extends Array with a join_as_series() method for joining arrays of items
26
+ together into grammatically correct series. Useful for joining series like 'a, b
27
+ and c'. Custom delimiters and conjunctions can be specified.
28
+ email: support@cerebris.com
83
29
  executables: []
84
-
85
30
  extensions: []
86
-
87
- extra_rdoc_files:
88
- - LICENSE.txt
89
- - README.rdoc
90
- files:
91
- - .document
92
- - Gemfile
93
- - Gemfile.lock
94
- - LICENSE.txt
95
- - README.rdoc
96
- - Rakefile
97
- - VERSION
31
+ extra_rdoc_files: []
32
+ files:
98
33
  - lib/series_joiner.rb
99
- - series_joiner.gemspec
100
- - test/helper.rb
101
- - test/test_series_joiner.rb
102
- has_rdoc: true
103
- homepage: http://github.com/cerebris/series_joiner
104
- licenses:
105
- - MIT
34
+ - lib/series_joiner/array_additions.rb
35
+ - lib/series_joiner/version.rb
36
+ homepage: https://github.com/cerebris/series_joiner
37
+ licenses: []
106
38
  post_install_message:
107
39
  rdoc_options: []
108
-
109
- require_paths:
40
+ require_paths:
110
41
  - lib
111
- required_ruby_version: !ruby/object:Gem::Requirement
42
+ required_ruby_version: !ruby/object:Gem::Requirement
112
43
  none: false
113
- requirements:
114
- - - ">="
115
- - !ruby/object:Gem::Version
116
- hash: 3
117
- segments:
118
- - 0
119
- version: "0"
120
- required_rubygems_version: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ! '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ required_rubygems_version: !ruby/object:Gem::Requirement
121
49
  none: false
122
- requirements:
123
- - - ">="
124
- - !ruby/object:Gem::Version
125
- hash: 3
126
- segments:
127
- - 0
128
- version: "0"
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
129
54
  requirements: []
130
-
131
55
  rubyforge_project:
132
- rubygems_version: 1.4.1
56
+ rubygems_version: 1.8.10
133
57
  signing_key:
134
58
  specification_version: 3
135
59
  summary: Join items in arrays together into grammatically correct series.
136
- test_files:
137
- - test/helper.rb
138
- - test/test_series_joiner.rb
60
+ test_files: []
61
+ has_rdoc:
data/.document DELETED
@@ -1,5 +0,0 @@
1
- lib/**/*.rb
2
- bin/*
3
- -
4
- features/**/*.feature
5
- LICENSE.txt
data/Gemfile DELETED
@@ -1,13 +0,0 @@
1
- source "http://rubygems.org"
2
- # Add dependencies required to use your gem here.
3
- # Example:
4
- # gem "activesupport", ">= 2.3.5"
5
-
6
- # Add dependencies to develop your gem here.
7
- # Include everything needed to run rake, tests, features, etc.
8
- group :development do
9
- gem "shoulda", ">= 0"
10
- gem "bundler", "~> 1.0.0"
11
- gem "jeweler", "~> 1.5.2"
12
- gem "rcov", ">= 0"
13
- end
data/Gemfile.lock DELETED
@@ -1,20 +0,0 @@
1
- GEM
2
- remote: http://rubygems.org/
3
- specs:
4
- git (1.2.5)
5
- jeweler (1.5.2)
6
- bundler (~> 1.0.0)
7
- git (>= 1.2.5)
8
- rake
9
- rake (0.8.7)
10
- rcov (0.9.9)
11
- shoulda (2.11.3)
12
-
13
- PLATFORMS
14
- ruby
15
-
16
- DEPENDENCIES
17
- bundler (~> 1.0.0)
18
- jeweler (~> 1.5.2)
19
- rcov
20
- shoulda
data/LICENSE.txt DELETED
@@ -1,20 +0,0 @@
1
- Copyright (c) 2011 Cerebris Corporation
2
-
3
- Permission is hereby granted, free of charge, to any person obtaining
4
- a copy of this software and associated documentation files (the
5
- "Software"), to deal in the Software without restriction, including
6
- without limitation the rights to use, copy, modify, merge, publish,
7
- distribute, sublicense, and/or sell copies of the Software, and to
8
- permit persons to whom the Software is furnished to do so, subject to
9
- the following conditions:
10
-
11
- The above copyright notice and this permission notice shall be
12
- included in all copies or substantial portions of the Software.
13
-
14
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.rdoc DELETED
@@ -1,74 +0,0 @@
1
- = SeriesJoiner
2
-
3
- A gem for joining items in arrays together into grammatically correct series, such as "a, b and c".
4
-
5
- SeriesJoiner extends the <tt>Array</tt> class with a <tt>join_as_series()</tt> method which is similar to the built-in <tt>join()</tt> method. However, <tt>join_as_series()</tt> allows for custom delimiters and conjunctions.
6
-
7
- == Installation
8
-
9
- Run the following (perhaps as sudo):
10
-
11
- gem install series_joiner
12
-
13
- == Bundler Configuration
14
-
15
- Add the following to your Gemfile:
16
-
17
- gem 'series_joiner'
18
-
19
- == Usage
20
-
21
- <tt>join_as_series()</tt> accepts the following options:
22
-
23
- :delimiter # inserted between items, except for the final two (default => ', ')
24
- :final_delimiter # inserted between the final two items (if > 2), but before the conjunction (default => '')
25
- :conjunction # inserted between the final two items (default => ' and ')
26
-
27
- By default, items are joined as follows:
28
-
29
- ['a'].join_as_series #=> 'a'
30
-
31
- ['a', 'b'].join_as_series #=> 'a and b'
32
-
33
- ['a', 'b', 'c'].join_as_series #=> 'a, b and c'
34
-
35
- ['a', 'b', 'c', 'd'].join_as_series #=> 'a, b, c and d'
36
-
37
- Here are some examples using custom delimiters and/or conjunctions:
38
-
39
- ['a', 'b', 'c'].join_as_series(:delimiter => '; ') #=> 'a; b and c'
40
-
41
- ['a', 'b', 'c'].join_as_series(:conjunction => ' or ') #=> 'a, b or c'
42
-
43
- ['a', 'b', 'c'].join_as_series(:delimiter => '; ', :conjunction => '; or, ') #=> 'a; b; or, c'
44
-
45
- The use of the serial comma (i.e. the final comma sometimes used before the conjunction) is much debated in grammar circles (http://en.wikipedia.org/wiki/Serial_comma). And who doesn't enjoy a rousing debate about grammar? Don't answer that. Anyway, SeriesJoiner does not use the serial comma by default. If you prefer to use it, just set the <tt>:final_delimiter</tt> option to <tt>','</tt>:
46
-
47
- ['a', 'b', 'c'].join_as_series(:final_delimiter => ',') #=> 'a, b, and c'
48
-
49
- == I18n Support
50
-
51
- If you're using SeriesJoiner in a project with I18n support, include the following translations for your locales:
52
-
53
- en:
54
- series_joiner:
55
- default_delimiter: ', '
56
- default_final_delimiter: ''
57
- default_conjunction: ' and '
58
-
59
- == Implementation
60
-
61
- This gem is generated with jeweler and uses shoulda for testing. To run tests:
62
-
63
- rake test
64
-
65
- == Notes
66
-
67
- This gem's <tt>join_as_series()</tt> method may be compared with the similar <tt>to_sentence()</tt> method implemented in ActiveSupport (https://github.com/rails/rails/blob/master/activesupport/lib/active_support/core_ext/array/conversions.rb). There are several differences:
68
- * <tt>to_sentence()</tt> is part of ActiveSupport, while <tt>join_as_series</tt> is independent;
69
- * <tt>to_sentence()</tt> implements the serial comma (see definition above) by default, while <tt>join_as_series()</tt> does not; and,
70
- * <tt>to_sentence()</tt> requires two options (<tt>:two_words_connector</tt> and <tt>:last_word_connector</tt>) to override a conjunction, instead of the one (<tt>:conjunction</tt>) required by <tt>join_as_series()</tt>.
71
-
72
- == License
73
-
74
- MIT License. Copyright (c) 2011 Cerebris Corporation. See LICENSE.txt for further details.
data/Rakefile DELETED
@@ -1,53 +0,0 @@
1
- require 'rubygems'
2
- require 'bundler'
3
- begin
4
- Bundler.setup(:default, :development)
5
- rescue Bundler::BundlerError => e
6
- $stderr.puts e.message
7
- $stderr.puts "Run `bundle install` to install missing gems"
8
- exit e.status_code
9
- end
10
- require 'rake'
11
-
12
- require 'jeweler'
13
- Jeweler::Tasks.new do |gem|
14
- # gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
15
- gem.name = "series_joiner"
16
- gem.homepage = "http://github.com/cerebris/series_joiner"
17
- gem.license = "MIT"
18
- gem.summary = "Join items in arrays together into grammatically correct series."
19
- gem.description = "Extends Array with a join_as_series() method for joining arrays of items together into grammatically correct series. Useful for joining series like 'a, b and c'. Custom delimiters and conjunctions can be specified."
20
- gem.email = "contact@cerebris.com"
21
- gem.authors = ["Dan Gebhardt"]
22
- # Include your dependencies below. Runtime dependencies are required when using your gem,
23
- # and development dependencies are only needed for development (ie running rake tasks, tests, etc)
24
- # gem.add_runtime_dependency 'jabber4r', '> 0.1'
25
- # gem.add_development_dependency 'rspec', '> 1.2.3'
26
- end
27
- Jeweler::RubygemsDotOrgTasks.new
28
-
29
- require 'rake/testtask'
30
- Rake::TestTask.new(:test) do |test|
31
- test.libs << 'lib' << 'test'
32
- test.pattern = 'test/**/test_*.rb'
33
- test.verbose = true
34
- end
35
-
36
- require 'rcov/rcovtask'
37
- Rcov::RcovTask.new do |test|
38
- test.libs << 'test'
39
- test.pattern = 'test/**/test_*.rb'
40
- test.verbose = true
41
- end
42
-
43
- task :default => :test
44
-
45
- require 'rake/rdoctask'
46
- Rake::RDocTask.new do |rdoc|
47
- version = File.exist?('VERSION') ? File.read('VERSION') : ""
48
-
49
- rdoc.rdoc_dir = 'rdoc'
50
- rdoc.title = "series_joiner #{version}"
51
- rdoc.rdoc_files.include('README*')
52
- rdoc.rdoc_files.include('lib/**/*.rb')
53
- end
data/VERSION DELETED
@@ -1 +0,0 @@
1
- 1.2.1
@@ -1,63 +0,0 @@
1
- # Generated by jeweler
2
- # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
- # -*- encoding: utf-8 -*-
5
-
6
- Gem::Specification.new do |s|
7
- s.name = %q{series_joiner}
8
- s.version = "1.2.1"
9
-
10
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["Dan Gebhardt"]
12
- s.date = %q{2011-01-06}
13
- s.description = %q{Extends Array with a join_as_series() method for joining arrays of items together into grammatically correct series. Useful for joining series like 'a, b and c'. Custom delimiters and conjunctions can be specified.}
14
- s.email = %q{contact@cerebris.com}
15
- s.extra_rdoc_files = [
16
- "LICENSE.txt",
17
- "README.rdoc"
18
- ]
19
- s.files = [
20
- ".document",
21
- "Gemfile",
22
- "Gemfile.lock",
23
- "LICENSE.txt",
24
- "README.rdoc",
25
- "Rakefile",
26
- "VERSION",
27
- "lib/series_joiner.rb",
28
- "series_joiner.gemspec",
29
- "test/helper.rb",
30
- "test/test_series_joiner.rb"
31
- ]
32
- s.homepage = %q{http://github.com/cerebris/series_joiner}
33
- s.licenses = ["MIT"]
34
- s.require_paths = ["lib"]
35
- s.rubygems_version = %q{1.4.1}
36
- s.summary = %q{Join items in arrays together into grammatically correct series.}
37
- s.test_files = [
38
- "test/helper.rb",
39
- "test/test_series_joiner.rb"
40
- ]
41
-
42
- if s.respond_to? :specification_version then
43
- s.specification_version = 3
44
-
45
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
46
- s.add_development_dependency(%q<shoulda>, [">= 0"])
47
- s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
48
- s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
49
- s.add_development_dependency(%q<rcov>, [">= 0"])
50
- else
51
- s.add_dependency(%q<shoulda>, [">= 0"])
52
- s.add_dependency(%q<bundler>, ["~> 1.0.0"])
53
- s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
54
- s.add_dependency(%q<rcov>, [">= 0"])
55
- end
56
- else
57
- s.add_dependency(%q<shoulda>, [">= 0"])
58
- s.add_dependency(%q<bundler>, ["~> 1.0.0"])
59
- s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
60
- s.add_dependency(%q<rcov>, [">= 0"])
61
- end
62
- end
63
-
data/test/helper.rb DELETED
@@ -1,18 +0,0 @@
1
- require 'rubygems'
2
- require 'bundler'
3
- begin
4
- Bundler.setup(:default, :development)
5
- rescue Bundler::BundlerError => e
6
- $stderr.puts e.message
7
- $stderr.puts "Run `bundle install` to install missing gems"
8
- exit e.status_code
9
- end
10
- require 'test/unit'
11
- require 'shoulda'
12
-
13
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
14
- $LOAD_PATH.unshift(File.dirname(__FILE__))
15
- require 'series_joiner'
16
-
17
- class Test::Unit::TestCase
18
- end
@@ -1,97 +0,0 @@
1
- require 'helper'
2
-
3
- class TestSeriesJoiner < Test::Unit::TestCase
4
- context "using default options" do
5
- should "join an empty array as nil" do
6
- assert_equal nil, [].join_as_series
7
- end
8
- should "join an array of one item" do
9
- assert_equal 'a', ['a'].join_as_series
10
- end
11
- should "join an array of two items" do
12
- assert_equal 'a and b', ['a', 'b'].join_as_series
13
- end
14
- should "join an array of three items" do
15
- assert_equal 'a, b and c', ['a', 'b', 'c'].join_as_series
16
- end
17
- should "join an array of four items" do
18
- assert_equal 'a, b, c and d', ['a', 'b', 'c', 'd'].join_as_series
19
- end
20
- end
21
-
22
- context "using an 'or' conjunction" do
23
- setup do
24
- @options = {:conjunction => ' or '}
25
- end
26
-
27
- should "join an array of one item" do
28
- assert_equal 'a', ['a'].join_as_series(@options)
29
- end
30
- should "join an array of two items" do
31
- assert_equal 'a or b', ['a', 'b'].join_as_series(@options)
32
- end
33
- should "join an array of three items" do
34
- assert_equal 'a, b or c', ['a', 'b', 'c'].join_as_series(@options)
35
- end
36
- should "join an array of four items" do
37
- assert_equal 'a, b, c or d', ['a', 'b', 'c', 'd'].join_as_series(@options)
38
- end
39
- end
40
-
41
- context "using a ';' delimiter" do
42
- setup do
43
- @options = {:delimiter => '; '}
44
- end
45
-
46
- should "join an array of one item" do
47
- assert_equal 'a', ['a'].join_as_series(@options)
48
- end
49
- should "join an array of two items" do
50
- assert_equal 'a and b', ['a', 'b'].join_as_series(@options)
51
- end
52
- should "join an array of three items" do
53
- assert_equal 'a; b and c', ['a', 'b', 'c'].join_as_series(@options)
54
- end
55
- should "join an array of four items" do
56
- assert_equal 'a; b; c and d', ['a', 'b', 'c', 'd'].join_as_series(@options)
57
- end
58
- end
59
-
60
- context "using a ';' delimiter properly" do
61
- setup do
62
- @options = {:delimiter => '; ', :conjunction => '; or, '}
63
- end
64
-
65
- should "join an array of one item" do
66
- assert_equal 'a', ['a'].join_as_series(@options)
67
- end
68
- should "join an array of two items" do
69
- assert_equal 'a; or, b', ['a', 'b'].join_as_series(@options)
70
- end
71
- should "join an array of three items" do
72
- assert_equal 'a; b; or, c', ['a', 'b', 'c'].join_as_series(@options)
73
- end
74
- should "join an array of four items" do
75
- assert_equal 'a; b; c; or, d', ['a', 'b', 'c', 'd'].join_as_series(@options)
76
- end
77
- end
78
-
79
- context "using a ',' final delimiter" do
80
- setup do
81
- @options = {:final_delimiter => ','}
82
- end
83
-
84
- should "join an array of one item" do
85
- assert_equal 'a', ['a'].join_as_series(@options)
86
- end
87
- should "join an array of two items" do
88
- assert_equal 'a and b', ['a', 'b'].join_as_series(@options)
89
- end
90
- should "join an array of three items" do
91
- assert_equal 'a, b, and c', ['a', 'b', 'c'].join_as_series(@options)
92
- end
93
- should "join an array of four items" do
94
- assert_equal 'a, b, c, and d', ['a', 'b', 'c', 'd'].join_as_series(@options)
95
- end
96
- end
97
- end