ruby_peter_v 0.0.11 → 0.0.12
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 +7 -0
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/HISTORY.txt +5 -0
- data/lib/ruby_peter_v/set_once.rb +17 -4
- data/lib/ruby_peter_v/version.rb +1 -1
- data/spec/lib/ruby_peter_v/set_once_spec.rb +6 -0
- data/spec/lib/ruby_peter_v/truncate_utf8_spec.rb +10 -0
- metadata +27 -36
- data/.rvmrc +0 -1
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 850938ee947f3ce50fcdcfe4162e4c62374a59b0
|
4
|
+
data.tar.gz: 88b16856fcf2b394c52f641b812dee72dfb3d1ae
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 727a2fab4b29424771d37145b69e34df45ba576baa38fc6aa296a9e0c37d69cd7a2117696ed3b67114638f36a860c26a732a130f366e3a4813ae473792767c80
|
7
|
+
data.tar.gz: d8e1653acbeefd69c46714db994da4a22169dc48f9f68a6c6c02f6aea3fd4b28cae7b67f38ee59fff3333af5d6ced489818a4641a5e113317d8a2fd5b52112cf
|
data/.ruby-gemset
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
ruby_peter_v
|
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
ruby-2.0.0
|
data/HISTORY.txt
CHANGED
@@ -3,14 +3,27 @@ class RubyPeterV::SetOnceError < StandardError ; end
|
|
3
3
|
class Object
|
4
4
|
|
5
5
|
def set_once(attribute, value)
|
6
|
-
ivar_symbol =
|
6
|
+
ivar_symbol = ivar_symbol(attribute)
|
7
7
|
instance_value = instance_variable_get(ivar_symbol)
|
8
|
-
|
8
|
+
validate_immutable(attribute, instance_value, value)
|
9
|
+
instance_variable_set(ivar_symbol, value)
|
10
|
+
end
|
11
|
+
|
12
|
+
private
|
13
|
+
|
14
|
+
def ivar_symbol(attribute)
|
15
|
+
unless attribute.is_a?(Symbol)
|
16
|
+
raise(ArgumentError, 'first argument must be a symbol for the attribute')
|
17
|
+
end
|
18
|
+
:"@#{attribute}"
|
19
|
+
end
|
20
|
+
|
21
|
+
def validate_immutable(attribute, old_value, new_value)
|
22
|
+
if (old_value && old_value != new_value)
|
9
23
|
raise(
|
10
24
|
RubyPeterV::SetOnceError,
|
11
|
-
"Value of #{attribute} was #{
|
25
|
+
"Value of #{attribute} was #{old_value}, trying to set it to #{new_value}")
|
12
26
|
end
|
13
|
-
instance_variable_set(:"@#{attribute}", value)
|
14
27
|
end
|
15
28
|
|
16
29
|
end
|
data/lib/ruby_peter_v/version.rb
CHANGED
@@ -4,6 +4,12 @@ describe "set_once" do
|
|
4
4
|
|
5
5
|
let(:subject) { Object.new }
|
6
6
|
|
7
|
+
it 'raises ArgumentError when the attribute argument is not a symbol' do
|
8
|
+
lambda { subject.set_once(nil, 10) } . should raise_error(
|
9
|
+
ArgumentError,
|
10
|
+
'first argument must be a symbol for the attribute')
|
11
|
+
end
|
12
|
+
|
7
13
|
it "can be set when nil" do
|
8
14
|
subject.instance_variable_get(:@attr).should be_nil # assert pre-condition
|
9
15
|
value = 10
|
@@ -3,6 +3,16 @@ require 'spec_helper'
|
|
3
3
|
|
4
4
|
describe 'truncate_utf8' do
|
5
5
|
|
6
|
+
context 'edge cases' do
|
7
|
+
it 'works on empty string' do
|
8
|
+
''.truncate_utf8(140).should == ''
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'works with max_byte_size = 0 ' do
|
12
|
+
'AA'.truncate_utf8(0).should == ''
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
6
16
|
context 'ASCII only' do
|
7
17
|
|
8
18
|
let (:a120) { 'A' * 120 }
|
metadata
CHANGED
@@ -1,80 +1,71 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby_peter_v
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
version: 0.0.11
|
4
|
+
version: 0.0.12
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Peter Vandenabeele
|
9
|
-
autorequire:
|
8
|
+
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2013-
|
11
|
+
date: 2013-10-16 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: rspec
|
16
|
-
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
17
16
|
requirements:
|
18
17
|
- - '>='
|
19
18
|
- !ruby/object:Gem::Version
|
20
19
|
version: '2'
|
21
|
-
|
22
|
-
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - '>='
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '2'
|
27
|
-
none: false
|
28
|
-
prerelease: false
|
29
|
-
type: :development
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: guard-rspec
|
32
|
-
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
33
30
|
requirements:
|
34
31
|
- - '>='
|
35
32
|
- !ruby/object:Gem::Version
|
36
33
|
version: '0'
|
37
|
-
|
38
|
-
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
39
37
|
requirements:
|
40
38
|
- - '>='
|
41
39
|
- !ruby/object:Gem::Version
|
42
40
|
version: '0'
|
43
|
-
none: false
|
44
|
-
prerelease: false
|
45
|
-
type: :development
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: rb-fsevent
|
48
|
-
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
49
44
|
requirements:
|
50
45
|
- - ~>
|
51
46
|
- !ruby/object:Gem::Version
|
52
47
|
version: '0.9'
|
53
|
-
|
54
|
-
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
55
51
|
requirements:
|
56
52
|
- - ~>
|
57
53
|
- !ruby/object:Gem::Version
|
58
54
|
version: '0.9'
|
59
|
-
none: false
|
60
|
-
prerelease: false
|
61
|
-
type: :development
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: terminal-notifier-guard
|
64
|
-
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
65
58
|
requirements:
|
66
59
|
- - '>='
|
67
60
|
- !ruby/object:Gem::Version
|
68
61
|
version: '0'
|
69
|
-
|
70
|
-
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
71
65
|
requirements:
|
72
66
|
- - '>='
|
73
67
|
- !ruby/object:Gem::Version
|
74
68
|
version: '0'
|
75
|
-
none: false
|
76
|
-
prerelease: false
|
77
|
-
type: :development
|
78
69
|
description: Ruby helpers for @peter_v
|
79
70
|
email:
|
80
71
|
- peter@vandenabeele.com
|
@@ -84,7 +75,8 @@ extra_rdoc_files: []
|
|
84
75
|
files:
|
85
76
|
- .gitignore
|
86
77
|
- .rspec
|
87
|
-
- .
|
78
|
+
- .ruby-gemset
|
79
|
+
- .ruby-version
|
88
80
|
- .travis.yml
|
89
81
|
- Gemfile
|
90
82
|
- Guardfile
|
@@ -108,7 +100,8 @@ files:
|
|
108
100
|
- spec/spec_helper.rb
|
109
101
|
homepage: https://github.com/petervandenabeele/ruby_peter_v
|
110
102
|
licenses: []
|
111
|
-
|
103
|
+
metadata: {}
|
104
|
+
post_install_message:
|
112
105
|
rdoc_options: []
|
113
106
|
require_paths:
|
114
107
|
- lib
|
@@ -117,18 +110,16 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
117
110
|
- - '>='
|
118
111
|
- !ruby/object:Gem::Version
|
119
112
|
version: '0'
|
120
|
-
none: false
|
121
113
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
122
114
|
requirements:
|
123
115
|
- - '>='
|
124
116
|
- !ruby/object:Gem::Version
|
125
117
|
version: '0'
|
126
|
-
none: false
|
127
118
|
requirements: []
|
128
|
-
rubyforge_project:
|
129
|
-
rubygems_version:
|
130
|
-
signing_key:
|
131
|
-
specification_version:
|
119
|
+
rubyforge_project:
|
120
|
+
rubygems_version: 2.0.3
|
121
|
+
signing_key:
|
122
|
+
specification_version: 4
|
132
123
|
summary: Ruby helpers for @peter_v
|
133
124
|
test_files:
|
134
125
|
- spec/lib/ruby_peter_v/define_equality_spec.rb
|
data/.rvmrc
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
rvm use --create 2.0.0@ruby_peter_v
|