vcard_mate 0.0.1 → 0.0.2

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.
data/lib/vcard_mate.rb CHANGED
@@ -1,17 +1,17 @@
1
- require_relative 'vcard_mate/version'
2
- require_relative 'vcard_mate/vcard'
3
- require_relative 'vcard_mate/property'
4
-
5
1
  module VCardMate
6
2
 
7
3
  class << self
8
4
 
9
5
  def create(*args)
10
- VCardMate::VCard.new(*args)
6
+ error
11
7
  end
12
8
 
13
9
  def parse(*args)
14
- VCardMate::VCard.new.parse(*args)
10
+ error
11
+ end
12
+
13
+ def error
14
+ raise StandardError, "This library has been renamed vCardigan and is located here: https://github.com/brewster/vcardigan"
15
15
  end
16
16
 
17
17
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vcard_mate
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,18 +9,15 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-11-15 00:00:00.000000000Z
12
+ date: 2013-01-24 00:00:00.000000000 Z
13
13
  dependencies: []
14
- description: vCard Mate is a ruby library for building and parsing vCards that supports
15
- both v3.0 and v4.0.
14
+ description: vCardigan *was* a ruby library for building and parsing vCards that supports
15
+ both v3.0 and v4.0. It is now called vCardigan!!!
16
16
  email: matt@mlmorg.com
17
17
  executables: []
18
18
  extensions: []
19
19
  extra_rdoc_files: []
20
20
  files:
21
- - lib/vcard_mate/property.rb
22
- - lib/vcard_mate/vcard.rb
23
- - lib/vcard_mate/version.rb
24
21
  - lib/vcard_mate.rb
25
22
  homepage: http://github.com/mlmorg/vcard_mate
26
23
  licenses:
@@ -43,8 +40,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
43
40
  version: '0'
44
41
  requirements: []
45
42
  rubyforge_project:
46
- rubygems_version: 1.8.6
43
+ rubygems_version: 1.8.24
47
44
  signing_key:
48
45
  specification_version: 3
49
- summary: Ruby vCard Builder/Parser
46
+ summary: Ruby vCard Builder/Parser. Now called vCardigan!
50
47
  test_files: []
@@ -1,87 +0,0 @@
1
- module VCardMate
2
-
3
- class Property
4
-
5
- attr_accessor :params
6
- attr_accessor :values
7
- attr_accessor :group
8
-
9
- def initialize(name, *args)
10
- @params = {}
11
- @values = []
12
- @group = nil
13
-
14
- # Determine whether this property name has a group
15
- name_parts = name.to_s.split('.', 2)
16
-
17
- # If it has a group, set it
18
- if name_parts.length > 1
19
- @group = name_parts.first
20
- end
21
-
22
- # Set the name
23
- @name = name_parts.last.downcase
24
-
25
- # Build out the values/params from the passed arguments
26
- args.each do |arg|
27
- if arg.is_a? Hash
28
- arg.each do |key, value|
29
- @params[key.to_s.downcase] = value.to_s
30
- end
31
- else
32
- @values.push arg.to_s
33
- end
34
- end
35
- end
36
-
37
- def self.parse(data)
38
- # Gather the parts
39
- data = data.strip
40
- parts = data.split(':', 2)
41
- values = parts.last.split(';')
42
- params = parts.first.split(';')
43
- name = params.shift
44
-
45
- # Create argument array beginning with name
46
- args = [name]
47
-
48
- # Add values to args
49
- args.concat(values)
50
-
51
- # Add params to args
52
- params.each do |param|
53
- keyval = param.split('=')
54
- hash = Hash[keyval.first, keyval.last]
55
- args.push(hash)
56
- end
57
-
58
- # Instantiate a new class with the args
59
- new(*args)
60
- end
61
-
62
- def to_s
63
- # Name/Group
64
- name = @name.upcase
65
- property = @group ? "#{@group}.#{name}" : name.upcase
66
-
67
- # Params
68
- @params.each_with_index do |(key, value), idx|
69
- property << ';' if idx === 0
70
- property << key.upcase << '=' << value
71
- end
72
-
73
- # Split with colon
74
- property << ':'
75
-
76
- # Values
77
- @values.each_with_index do |value, idx|
78
- property << ';' unless idx === 0
79
- property << value
80
- end
81
-
82
- return property
83
- end
84
-
85
- end
86
-
87
- end
@@ -1,110 +0,0 @@
1
- module VCardMate
2
-
3
- class VCard
4
-
5
- VCARD_PATTERN = /BEGIN:VCARD\s+(.*?)VERSION:(.+?)\s+(.+?)END:VCARD/m;
6
-
7
- attr_accessor :version
8
-
9
- def initialize(version = '4.0')
10
- @version = version
11
- @fields = {}
12
- @group = nil
13
- end
14
-
15
- def parse(data)
16
- match = VCARD_PATTERN.match(data)
17
- if match
18
- # Set version number
19
- @version = match[2]
20
- lines = "#{match[1]}#{match[3]}"
21
-
22
- # Add the parsed properties to this vCard
23
- lines.each_line do |line|
24
- property = VCardMate::Property.parse(line)
25
- add_prop(property)
26
- end
27
- end
28
- self
29
- end
30
-
31
- def [](group)
32
- @group = group
33
- self
34
- end
35
-
36
- def method_missing(method, *args)
37
- if args.empty?
38
- # Return the property/properties when no arguments are passed
39
- get_prop(method)
40
- else
41
- # If there's a group, add it
42
- if @group
43
- method = "#{@group}.#{method}"
44
- end
45
-
46
- # Add property to vCard
47
- property = VCardMate::Property.new(method, *args)
48
- add_prop(property)
49
- end
50
- end
51
-
52
- def add_prop(property)
53
- name = property.instance_variable_get(:@name)
54
-
55
- # Create a field on the fields hash, if not already present, to house
56
- # the property
57
- unless @fields.has_key? name
58
- @fields[name] = []
59
- end
60
-
61
- # Add the property to the field array
62
- @fields[name].push(property)
63
- end
64
-
65
- def get_prop(name)
66
- field = @fields[name.to_s.downcase]
67
- case field.length
68
- when 0
69
- nil
70
- when 1
71
- field.first
72
- else
73
- field
74
- end
75
- end
76
-
77
- def to_s
78
- # Start vCard
79
- vcard = VCardMate::Property.new(:begin, 'VCARD').to_s << "\n"
80
-
81
- # Add version
82
- vcard << VCardMate::Property.new(:version, @version).to_s << "\n"
83
-
84
- # Add the properties
85
- @fields.each do |field, properties|
86
- properties.each do |property|
87
- vcard << property.to_s << "\n"
88
- end
89
- end
90
-
91
- # END
92
- vcard << VCardMate::Property.new(:end, 'VCARD').to_s << "\n"
93
-
94
- # Return vCard
95
- return vcard
96
- end
97
-
98
- # Aliases ##########
99
-
100
- def name(*args)
101
- n(*args)
102
- end
103
-
104
- def fullname(*args)
105
- fn(*args)
106
- end
107
-
108
- end
109
-
110
- end
@@ -1,5 +0,0 @@
1
- module VCardMate
2
-
3
- VERSION = '0.0.1'
4
-
5
- end