vcardigan 0.0.3 → 0.0.4
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/lib/vcardigan/vcard.rb +22 -0
- data/lib/vcardigan/version.rb +1 -1
- data/spec/examples/vcard_spec.rb +44 -0
- metadata +50 -59
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 432f5d57365fbb6550a8313fe3d6f7fd02a9cc92
|
4
|
+
data.tar.gz: c8586a64664d2b2def6891b66d2859aee55f3ce7
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 8941aaff5b47521d32615a6d688d6a81b57a254a7ca3e022438d21756215074636fc6695a8161e7b9c2cfbc4a6bc58a539fcb19a7059379b5b57eba61980ca9f
|
7
|
+
data.tar.gz: 3c36c99ef74b505445c3abd1c089e931e26e493af98fcaddfb8352127f6b405b1db305168046e651a5b652f6c85369f4ceb106d163e8bb41930bb4e3a405b8c7
|
data/lib/vcardigan/vcard.rb
CHANGED
@@ -69,6 +69,28 @@ module VCardigan
|
|
69
69
|
add_prop(property)
|
70
70
|
end
|
71
71
|
|
72
|
+
def remove(name)
|
73
|
+
if @fields.has_key?(name)
|
74
|
+
fields = @fields.delete(name)
|
75
|
+
|
76
|
+
fields.each do |field|
|
77
|
+
group_name = field.group
|
78
|
+
if group_name
|
79
|
+
group_field_names = @groups.delete(group_name).reject do |delete_field|
|
80
|
+
delete_field == name
|
81
|
+
end.map(&:name)
|
82
|
+
|
83
|
+
group_field_names.each do |field_name|
|
84
|
+
named_fields = @fields[field_name]
|
85
|
+
if named_fields
|
86
|
+
named_fields.delete_if {|prop| prop.group == group_name }
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
72
94
|
def field(name)
|
73
95
|
name = name.to_s.downcase
|
74
96
|
if @group and @fields[name]
|
data/lib/vcardigan/version.rb
CHANGED
data/spec/examples/vcard_spec.rb
CHANGED
@@ -110,6 +110,50 @@ describe VCardigan::VCard do
|
|
110
110
|
end
|
111
111
|
end
|
112
112
|
|
113
|
+
describe "#remove" do
|
114
|
+
let(:vcard) { VCardigan.create }
|
115
|
+
let(:name) { :email }
|
116
|
+
let(:email) { 'joe@strummer.com' }
|
117
|
+
let(:params) { { :type => 'uri' } }
|
118
|
+
let(:fields) { vcard.instance_variable_get(:@fields) }
|
119
|
+
|
120
|
+
context "with no group" do
|
121
|
+
before do
|
122
|
+
vcard.add(name, email, params)
|
123
|
+
end
|
124
|
+
|
125
|
+
it "removes all occurances of the field" do
|
126
|
+
fields['email'].should_not be_empty
|
127
|
+
|
128
|
+
vcard.remove('email')
|
129
|
+
|
130
|
+
fields['email'].should be_nil
|
131
|
+
end
|
132
|
+
end
|
133
|
+
|
134
|
+
context "with groups" do
|
135
|
+
let(:group) { 'item1' }
|
136
|
+
let(:label) { 'Test Label' }
|
137
|
+
before do
|
138
|
+
vcard['item0'].add('tel', '235235')
|
139
|
+
vcard['item0'].add('x-ablabel', 'iPhone')
|
140
|
+
vcard[group].add(name, email)
|
141
|
+
vcard[group].add('x-ablabel', label)
|
142
|
+
end
|
143
|
+
|
144
|
+
it "removes all occurances of the field and its group label" do
|
145
|
+
vcard[group].email.first.value.should_not be_empty
|
146
|
+
vcard[group].send('x-ablabel').first.value.should == label
|
147
|
+
|
148
|
+
vcard.remove('email')
|
149
|
+
|
150
|
+
fields['email'].should be_nil
|
151
|
+
|
152
|
+
vcard[group].send('x-ablabel').should be_empty
|
153
|
+
end
|
154
|
+
end
|
155
|
+
end
|
156
|
+
|
113
157
|
describe '#method_missing' do
|
114
158
|
let(:vcard) { VCardigan.create }
|
115
159
|
|
metadata
CHANGED
@@ -1,93 +1,84 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: vcardigan
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
segments:
|
6
|
-
- 0
|
7
|
-
- 0
|
8
|
-
- 3
|
9
|
-
version: 0.0.3
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.4
|
10
5
|
platform: ruby
|
11
|
-
authors:
|
6
|
+
authors:
|
12
7
|
- Matt Morgan
|
13
8
|
autorequire:
|
14
9
|
bindir: bin
|
15
10
|
cert_chain: []
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
dependencies:
|
20
|
-
- !ruby/object:Gem::Dependency
|
11
|
+
date: 2014-08-08 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
21
14
|
name: rspec
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
segments:
|
28
|
-
- 2
|
29
|
-
- 0
|
30
|
-
version: "2.0"
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '2.0'
|
31
20
|
type: :development
|
32
|
-
version_requirements: *id001
|
33
|
-
- !ruby/object:Gem::Dependency
|
34
|
-
name: pry
|
35
21
|
prerelease: false
|
36
|
-
|
37
|
-
requirements:
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '2.0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: pry
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
38
31
|
- - ">="
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
|
41
|
-
- 0
|
42
|
-
version: "0"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
43
34
|
type: :development
|
44
|
-
|
45
|
-
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
description: vCardigan is a ruby library for building and parsing vCards that supports
|
42
|
+
both v3.0 and v4.0.
|
46
43
|
email: matt@mlmorg.com
|
47
44
|
executables: []
|
48
|
-
|
49
45
|
extensions: []
|
50
|
-
|
51
46
|
extra_rdoc_files: []
|
52
|
-
|
53
|
-
|
47
|
+
files:
|
48
|
+
- lib/vcardigan.rb
|
54
49
|
- lib/vcardigan/errors.rb
|
55
50
|
- lib/vcardigan/properties/name_property.rb
|
56
51
|
- lib/vcardigan/property.rb
|
57
52
|
- lib/vcardigan/vcard.rb
|
58
53
|
- lib/vcardigan/version.rb
|
59
|
-
-
|
60
|
-
|
54
|
+
- spec/examples/property_spec.rb
|
55
|
+
- spec/examples/vcard_spec.rb
|
56
|
+
- spec/spec_helper.rb
|
61
57
|
homepage: http://github.com/brewster/vcardigan
|
62
|
-
licenses:
|
58
|
+
licenses:
|
63
59
|
- MIT
|
60
|
+
metadata: {}
|
64
61
|
post_install_message:
|
65
62
|
rdoc_options: []
|
66
|
-
|
67
|
-
require_paths:
|
63
|
+
require_paths:
|
68
64
|
- lib
|
69
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
70
|
-
requirements:
|
65
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
71
67
|
- - ">="
|
72
|
-
- !ruby/object:Gem::Version
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
77
|
-
requirements:
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0'
|
70
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
71
|
+
requirements:
|
78
72
|
- - ">="
|
79
|
-
- !ruby/object:Gem::Version
|
80
|
-
|
81
|
-
- 0
|
82
|
-
version: "0"
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: '0'
|
83
75
|
requirements: []
|
84
|
-
|
85
76
|
rubyforge_project:
|
86
|
-
rubygems_version:
|
77
|
+
rubygems_version: 2.2.2
|
87
78
|
signing_key:
|
88
|
-
specification_version:
|
79
|
+
specification_version: 4
|
89
80
|
summary: Ruby vCard Builder/Parser
|
90
|
-
test_files:
|
81
|
+
test_files:
|
91
82
|
- spec/examples/property_spec.rb
|
92
83
|
- spec/examples/vcard_spec.rb
|
93
84
|
- spec/spec_helper.rb
|