sentencify 0.1.0 → 0.2.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.
@@ -0,0 +1 @@
1
+ service_name: travis-ci
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+ --format progress
@@ -0,0 +1,6 @@
1
+ env:
2
+ - DB=mysql
3
+ language: ruby
4
+ rvm:
5
+ - 1.9.3
6
+ script: 'bundle exec rspec'
@@ -1,3 +1,7 @@
1
+ ## 0.2.0 (11/07/13)
2
+
3
+ * Add specs
4
+
1
5
  ## 0.1.0 (01/07/13)
2
6
 
3
7
  * Add images support
data/Gemfile CHANGED
@@ -1,4 +1,3 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- # Specify your gem's dependencies in sentencify.gemspec
4
3
  gemspec
data/README.md CHANGED
@@ -1,5 +1,8 @@
1
1
  # Sentencify
2
2
 
3
+ [![Build Status](https://travis-ci.org/baptistelecocq/sentencify.png?branch=develop)](https://travis-ci.org/baptistelecocq/sentencify)
4
+ [![Coverage Status](https://coveralls.io/repos/baptistelecocq/sentencify/badge.png?branch=develop)](https://coveralls.io/r/baptistelecocq/sentencify?branch=develop)
5
+
3
6
  With Sentencify, you can create sentences with array of Active Record objects.
4
7
  It supports `I18n`.
5
8
 
@@ -41,8 +44,10 @@ In your `index.html.erb` view:
41
44
  ```
42
45
 
43
46
  It will display all your users by login with a default limit of 5.
47
+
44
48
  You can change this value by passing a limit parameter as following: `limit: 10`
45
- ** Extra **: You can display images by turning the image option to true.
49
+
50
+ **Extra**: You can display images by turning the image option to true.
46
51
 
47
52
  ### Advanced
48
53
  #### Parameters
data/Rakefile CHANGED
@@ -1 +1 @@
1
- require "bundler/gem_tasks"
1
+ require 'bundler/gem_tasks'
@@ -23,7 +23,7 @@ class Array
23
23
 
24
24
  options = default_connectors.merge!(options)
25
25
 
26
- will_sentencized = self.map(&options[:on])
26
+ will_sentencized = self.map { |o| o[options[:on]] }
27
27
  will_sentencized.map! { |s| "<img src='#{s}' />" } if options[:image]
28
28
 
29
29
  case length
@@ -1,3 +1,3 @@
1
1
  module Sentencify
2
- VERSION = '0.1.0'
2
+ VERSION = '0.2.0'
3
3
  end
@@ -20,6 +20,8 @@ Gem::Specification.new do |spec|
20
20
 
21
21
  spec.add_dependency 'activesupport'
22
22
 
23
- spec.add_development_dependency 'bundler', '~> 1.3'
23
+ spec.add_development_dependency 'bundler'
24
+ spec.add_development_dependency 'coveralls'
24
25
  spec.add_development_dependency 'rake'
26
+ spec.add_development_dependency 'rspec'
25
27
  end
@@ -0,0 +1,99 @@
1
+ require 'spec_helper'
2
+ require 'sentencify'
3
+
4
+ describe Array do
5
+ let(:to_sentence) { [] }
6
+
7
+ describe '#sentencize' do
8
+ it 'allows :on option' do
9
+ expect { to_sentence.sentencize(on: :field) }.to_not raise_error
10
+ end
11
+
12
+ it 'allows :image option' do
13
+ expect { to_sentence.sentencize(image: :field) }.to_not raise_error
14
+ end
15
+
16
+ it 'allows :limit option' do
17
+ expect { to_sentence.sentencize(limit: :field) }.to_not raise_error
18
+ end
19
+
20
+ it 'allows :empty option' do
21
+ expect { to_sentence.sentencize(empty: :field) }.to_not raise_error
22
+ end
23
+
24
+ it 'allows :words_connector option' do
25
+ expect { to_sentence.sentencize(words_connector: :field) }.to_not raise_error
26
+ end
27
+
28
+ it 'allows :two_words_connector option' do
29
+ expect { to_sentence.sentencize(two_words_connector: :field) }.to_not raise_error
30
+ end
31
+
32
+ it 'allows :last_word_connector option' do
33
+ expect { to_sentence.sentencize(last_word_connector: :field) }.to_not raise_error
34
+ end
35
+
36
+ it 'allows :final_singular_connector option' do
37
+ expect { to_sentence.sentencize(final_singular_connector: :field) }.to_not raise_error
38
+ end
39
+
40
+ it 'allows :final_plural_connector option' do
41
+ expect { to_sentence.sentencize(final_plural_connector: :field) }.to_not raise_error
42
+ end
43
+
44
+ it 'denies other options' do
45
+ expect { to_sentence.sentencize(test: :field) }.to raise_error
46
+ end
47
+
48
+ context 'when there is no object' do
49
+ it 'returns a no element found string' do
50
+ to_sentence.sentencize(on: :login).should == 'No element found'
51
+ end
52
+ end
53
+
54
+ context 'when there is one object' do
55
+ let(:to_sentence) { [
56
+ { name: 'Baptiste Lecocq', login: 'Tiste' }
57
+ ] }
58
+
59
+ it 'returns a one element string' do
60
+ to_sentence.sentencize(on: :login).should == 'Tiste'
61
+ end
62
+ end
63
+
64
+ context 'when there is two objects' do
65
+ let(:to_sentence) { [
66
+ { name: 'Baptiste Lecocq', login: 'Tiste' },
67
+ { name: 'Chuck Norris', login: 'Chucky' }
68
+ ] }
69
+
70
+ it 'returns a two elements string' do
71
+ to_sentence.sentencize(on: :login).should == 'Tiste and Chucky'
72
+ end
73
+ end
74
+
75
+ context 'when there is a number of objects less than the limit' do
76
+ let(:to_sentence) { [
77
+ { name: 'Baptiste Lecocq', login: 'Tiste' },
78
+ { name: 'Chuck Norris', login: 'Chucky' },
79
+ { name: 'Van Damme', login: 'JCVD' }
80
+ ] }
81
+
82
+ it 'returns a two elements string' do
83
+ to_sentence.sentencize(on: :login).should == 'Tiste, Chucky and JCVD'
84
+ end
85
+ end
86
+
87
+ context 'when there is a number of objects greater than the limit' do
88
+ let(:to_sentence) { [
89
+ { name: 'Baptiste Lecocq', login: 'Tiste' },
90
+ { name: 'Chuck Norris', login: 'Chucky' },
91
+ { name: 'Van Damme', login: 'JCVD' }
92
+ ] }
93
+
94
+ it 'returns a two elements string' do
95
+ to_sentence.sentencize(on: :login, limit: 2).should == 'Tiste, Chucky and 1 other'
96
+ end
97
+ end
98
+ end
99
+ end
@@ -0,0 +1,9 @@
1
+ require 'coveralls'
2
+ Coveralls.wear!
3
+
4
+ RSpec.configure do |config|
5
+ config.filter_run :focus
6
+ config.order = 'random'
7
+ config.run_all_when_everything_filtered = true
8
+ config.treat_symbols_as_metadata_keys_with_true_values = true
9
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sentencify
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.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: 2013-07-02 00:00:00.000000000 Z
12
+ date: 2013-07-11 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
@@ -32,17 +32,33 @@ dependencies:
32
32
  requirement: !ruby/object:Gem::Requirement
33
33
  none: false
34
34
  requirements:
35
- - - ~>
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :development
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
36
44
  - !ruby/object:Gem::Version
37
- version: '1.3'
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: coveralls
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
38
54
  type: :development
39
55
  prerelease: false
40
56
  version_requirements: !ruby/object:Gem::Requirement
41
57
  none: false
42
58
  requirements:
43
- - - ~>
59
+ - - ! '>='
44
60
  - !ruby/object:Gem::Version
45
- version: '1.3'
61
+ version: '0'
46
62
  - !ruby/object:Gem::Dependency
47
63
  name: rake
48
64
  requirement: !ruby/object:Gem::Requirement
@@ -59,6 +75,22 @@ dependencies:
59
75
  - - ! '>='
60
76
  - !ruby/object:Gem::Version
61
77
  version: '0'
78
+ - !ruby/object:Gem::Dependency
79
+ name: rspec
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
86
+ type: :development
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
62
94
  description: With Sentencify, you can create sentences with array of Active Record
63
95
  objects. It supports I18n.
64
96
  email:
@@ -67,9 +99,12 @@ executables: []
67
99
  extensions: []
68
100
  extra_rdoc_files: []
69
101
  files:
102
+ - .coveralls.yml
70
103
  - .gitignore
104
+ - .rspec
71
105
  - .ruby-gemset
72
106
  - .ruby-version
107
+ - .travis.yml
73
108
  - CHANGELOG.md
74
109
  - Gemfile
75
110
  - LICENSE.txt
@@ -78,6 +113,8 @@ files:
78
113
  - lib/sentencify.rb
79
114
  - lib/sentencify/version.rb
80
115
  - sentencify.gemspec
116
+ - spec/sentencify_spec.rb
117
+ - spec/spec_helper.rb
81
118
  homepage: https://github.com/baptistelecocq/sentencify
82
119
  licenses:
83
120
  - MIT
@@ -103,4 +140,6 @@ rubygems_version: 1.8.25
103
140
  signing_key:
104
141
  specification_version: 3
105
142
  summary: Create sentences with array of Active Record objects
106
- test_files: []
143
+ test_files:
144
+ - spec/sentencify_spec.rb
145
+ - spec/spec_helper.rb