underscore_extensions 0.0.9 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -3,4 +3,4 @@ source "http://rubygems.org"
3
3
  # Specify your gem's dependencies in underscore_extensions.gemspec
4
4
  gemspec
5
5
 
6
- gem 'jasmine', :git => 'https://github.com/pivotal/jasmine-gem.git', :branch => '559658742421b00a7c48101375520d89199dba8a'
6
+ gem 'jasmine', :git => 'https://github.com/pivotal/jasmine-gem.git', :branch => 'ddeb56597c3507f068f9dfca4fd22d48e5a68253'
@@ -63,10 +63,17 @@
63
63
  }
64
64
  });
65
65
 
66
- if (this.hasOwnProperty('InflectionJS')) {
66
+ if (this.InflectionJS) {
67
67
  _.mixin({
68
- pluralize: function(obj, options) {
68
+ pluralize: function(obj, number, options) {
69
+ if (!_(number).isNumber()) {
70
+ options = number;
71
+ number = 0;
72
+ }
69
73
  options = options || {};
74
+ if (number === 1) {
75
+ options.skip = obj;
76
+ }
70
77
  options.skip = options.skip || '';
71
78
  return InflectionJS.apply_rules(obj, InflectionJS.plural_rules, options.skip);
72
79
  },
@@ -1,5 +1,5 @@
1
1
  module UnderscoreExtensions
2
- VERSION = '0.0.9'
2
+ VERSION = '0.1.0'
3
3
  UNDERSCORE_VERSION = '1.3.3'
4
4
  UNDERSCORE_STRING_VERSION = '2.0.0'
5
5
  end
@@ -96,18 +96,31 @@ describe('_', function() {
96
96
  expect(_('story').pluralize()).toEqual('stories');
97
97
  });
98
98
 
99
- it("should pass the skip option", function() {
99
+ it('should pass the skip option', function() {
100
100
  expect(_('foo').pluralize({skip: 'foo'})).toEqual('foo');
101
101
  });
102
+
103
+ describe('when a number is provided', function() {
104
+ it('should not pluralize when the number is 1', function() {
105
+ expect(_('foo').pluralize(0)).toEqual('foos');
106
+ expect(_('foo').pluralize(1)).toEqual('foo');
107
+ expect(_('foo').pluralize(2)).toEqual('foos');
108
+ });
109
+
110
+ it('should pass the skip option', function() {
111
+ expect(_('foo').pluralize(2, {skip: 'bar'})).toEqual('foos');
112
+ expect(_('foo').pluralize(2, {skip: 'foo'})).toEqual('foo');
113
+ });
114
+ });
102
115
  });
103
116
 
104
117
  describe('#singularize', function() {
105
- it("should singularize a model name", function() {
118
+ it('should singularize a model name', function() {
106
119
  expect(_('octopi').singularize()).toEqual('octopus');
107
120
  expect(_('stories').singularize()).toEqual('story');
108
121
  });
109
122
 
110
- it("should pass the skip option", function() {
123
+ it('should pass the skip option', function() {
111
124
  expect(_('foos').singularize({skip: 'foos'})).toEqual('foos');
112
125
  });
113
126
  });
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: underscore_extensions
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.9
4
+ version: 0.1.0
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: 2012-06-05 00:00:00.000000000 Z
12
+ date: 2012-07-07 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: fuubar
@@ -153,7 +153,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
153
153
  version: '0'
154
154
  requirements: []
155
155
  rubyforge_project: underscore_extensions
156
- rubygems_version: 1.8.21
156
+ rubygems_version: 1.8.19
157
157
  signing_key:
158
158
  specification_version: 3
159
159
  summary: Extensions to underscore javascript library as a rails engine