acts_as_splittable 0.0.2 → 0.0.3

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 50058ee03ea54fe96784f78b9fab607da4f9dcde
4
- data.tar.gz: d04d4414b76cbb3d404f84529387ad02fc555595
3
+ metadata.gz: 3d4595fb64c43327405f29ae3530fe069a772599
4
+ data.tar.gz: e40f06000ded452b21769446530453e8eba7243d
5
5
  SHA512:
6
- metadata.gz: 8e348b339fc458891a206818484dc6c7cb0492360da9f41e50f5e0e5f62e901829d4f75936624f64cae2437c6fc49f3a749aba6475ead80abb0cece633a698e3
7
- data.tar.gz: 8356fac51d37d0ca44394aefca88fd8531124963457e709a6c3c42a249d983cee746f965037cff5408787f538c0eca75ea864d3db0c92ece8dc14fc6dcb41677
6
+ metadata.gz: 0b1ccfc10ca315b1b35d733c767c54b241c1c19996d30d1a0e5ccb6f0a2d88b50c966eaf4f723e704678fe25587d821025846a8b8eaf1888bae6e8a92d9bd814
7
+ data.tar.gz: 61a3e79425cad2336247816305eaaf51dec3e7579d4237a0fd46f5027df5d15cc728ae433617ac6f8a6d6e23560fe7e108b75e772cf43e634e2bed79d7379635
data/README.md CHANGED
@@ -3,6 +3,27 @@ ActsAsSplittable
3
3
 
4
4
  Create virtual attributes.
5
5
 
6
+ Installation
7
+ --------------------
8
+
9
+ Add this line to your application's Gemfile:
10
+
11
+ ```ruby
12
+ gem 'acts_as_splittable'
13
+ ```
14
+
15
+ And then execute:
16
+
17
+ ```
18
+ $ bundle
19
+ ```
20
+
21
+ Or install it yourself as:
22
+
23
+ ```
24
+ $ gem install acts_as_splittable
25
+ ```
26
+
6
27
 
7
28
  Usage
8
29
  --------------------
@@ -114,8 +135,8 @@ p splittable.email_domain #=> nil
114
135
 
115
136
  splittable.split_column_values!
116
137
 
117
- p splittable.email_local #=> 'splittable'
118
- p splittable.email_domain #=> 'example.com'
138
+ p splittable.email_local #=> "splittable"
139
+ p splittable.email_domain #=> "example.com"
119
140
  ```
120
141
 
121
142
  Contributing
@@ -1,3 +1,3 @@
1
1
  module ActsAsSplittable
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -54,19 +54,21 @@ module ActsAsSplittable
54
54
  split, pattern, partials, on_split, on_join = self.class.splittable_columns[column]
55
55
  value = send(column)
56
56
 
57
- values = if on_split
58
- on_split.is_a?(Symbol) ? send(on_split, value) : on_split.(value)
59
- elsif value
60
- if split
61
- value.to_s.split *(split.is_a?(Array) ? split : [split])
62
- else
63
- matches = value.to_s.match(pattern)
64
- matches[1..(matches.length - 1)]
57
+ unless value.nil?
58
+ values = if on_split
59
+ on_split.is_a?(Symbol) ? send(on_split, value) : on_split.(value)
60
+ elsif value
61
+ if split
62
+ value.to_s.split *(split.is_a?(Array) ? split : [split])
63
+ else
64
+ matches = value.to_s.match(pattern)
65
+ matches[1..(matches.length - 1)]
66
+ end
67
+ end || []
68
+
69
+ partials.each_with_index do |partial, index|
70
+ send :"#{partial}=", values[index]
65
71
  end
66
- end || []
67
-
68
- partials.each_with_index do |partial, index|
69
- send :"#{partial}=", values[index]
70
72
  end
71
73
  end
72
74
 
@@ -80,7 +82,9 @@ module ActsAsSplittable
80
82
  split, pattern, partials, on_split, on_join = self.class.splittable_columns[column.to_sym]
81
83
  partials = partials.map{|partial| send(partial) }
82
84
 
83
- send :"#{column}=", on_join.is_a?(Symbol) ? send(on_join, partials) : on_join.(partials)
85
+ unless partials.any?(&:nil?)
86
+ send :"#{column}=", on_join.is_a?(Symbol) ? send(on_join, partials) : on_join.(partials)
87
+ end
84
88
  end
85
89
 
86
90
  self
@@ -92,4 +96,4 @@ module ActsAsSplittable
92
96
  end
93
97
  end
94
98
 
95
- ActiveRecord::Base.extend ActsAsSplittable
99
+ ActiveRecord::Base.extend ActsAsSplittable
@@ -59,5 +59,32 @@ require 'spec_helper'
59
59
  end
60
60
  end
61
61
 
62
+ context 'when nil includes in partials or value of column is nil' do
63
+ before :each do
64
+ @splittable1 = klass.new(name: "#{klass.name} 1")
65
+ @splittable1.save!
66
+
67
+ @splittable2 = klass.create!(
68
+ name: "#{klass.name} 2"
69
+ )
70
+
71
+ @splittables = [@splittable1, @splittable2]
72
+ end
73
+
74
+ it 'should not join partials before save' do
75
+ @splittables.each do |record|
76
+ record.email.should be_nil
77
+ end
78
+ end
79
+
80
+ it 'should not split columns after initialize' do
81
+ @splittables.each do |record|
82
+ splittable = Splittable.find(record.id)
83
+
84
+ splittable.email_local.should be_nil
85
+ splittable.email_domain.should be_nil
86
+ end
87
+ end
88
+ end
62
89
  end
63
90
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: acts_as_splittable
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - tatat
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-06-13 00:00:00.000000000 Z
11
+ date: 2013-06-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails