fruit_to_lime 0.9.1 → 0.9.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.
Files changed (44) hide show
  1. data/bin/fruit_to_lime +24 -24
  2. data/lib/fruit_to_lime/address_helper.rb +17 -17
  3. data/lib/fruit_to_lime/csv_helper.rb +32 -32
  4. data/lib/fruit_to_lime/model/address.rb +37 -37
  5. data/lib/fruit_to_lime/model/coworker.rb +44 -44
  6. data/lib/fruit_to_lime/model/coworker_reference.rb +17 -17
  7. data/lib/fruit_to_lime/model/customfield.rb +30 -30
  8. data/lib/fruit_to_lime/model/note.rb +38 -38
  9. data/lib/fruit_to_lime/model/organization.rb +140 -140
  10. data/lib/fruit_to_lime/model/person.rb +115 -115
  11. data/lib/fruit_to_lime/model/referencetosource.rb +42 -42
  12. data/lib/fruit_to_lime/model/rootmodel.rb +142 -142
  13. data/lib/fruit_to_lime/model/tag.rb +33 -33
  14. data/lib/fruit_to_lime/model_helpers.rb +19 -19
  15. data/lib/fruit_to_lime/roo_helper.rb +59 -59
  16. data/lib/fruit_to_lime/serialize_helper.rb +139 -139
  17. data/lib/fruit_to_lime/templating.rb +51 -51
  18. data/lib/fruit_to_lime.rb +13 -13
  19. data/spec/helpers/address_helper_spec.rb +48 -48
  20. data/spec/helpers/csv_helper_spec.rb +15 -15
  21. data/spec/helpers/roo_helper_spec.rb +10 -10
  22. data/spec/helpers/serialize_helper_spec.rb +211 -211
  23. data/spec/person_spec.rb +44 -44
  24. data/spec/spec_helper.rb +24 -24
  25. data/templates/csv/Gemfile +5 -5
  26. data/templates/csv/Rakefile.rb +7 -7
  27. data/templates/csv/convert.rb +2 -2
  28. data/templates/csv/lib/tomodel.rb +56 -56
  29. data/templates/csv/spec/sample_data/organizations.csv +2 -2
  30. data/templates/csv/spec/spec_helper.rb +24 -24
  31. data/templates/csv/spec/tomodel_spec.rb +14 -14
  32. data/templates/excel/Gemfile +6 -6
  33. data/templates/excel/Rakefile.rb +7 -7
  34. data/templates/excel/convert.rb +2 -2
  35. data/templates/excel/lib/tomodel.rb +53 -53
  36. data/templates/excel/spec/spec_helper.rb +20 -20
  37. data/templates/excel/spec/tomodel_spec.rb +18 -18
  38. data/templates/sqlserver/Gemfile +6 -6
  39. data/templates/sqlserver/Rakefile.rb +7 -7
  40. data/templates/sqlserver/convert.rb +2 -2
  41. data/templates/sqlserver/lib/tomodel.rb +67 -67
  42. data/templates/sqlserver/spec/spec_helper.rb +20 -20
  43. data/templates/sqlserver/spec/tomodel_spec.rb +9 -9
  44. metadata +2 -2
@@ -1,140 +1,140 @@
1
- module FruitToLime
2
- class OrganizationReference
3
- include SerializeHelper
4
- attr_accessor :id, :integration_id, :heading
5
- def serialize_variables
6
- [ :id, :integration_id, :heading ].map { |prop| {
7
- :id => prop, :type => :string
8
- }
9
- }
10
- end
11
-
12
- def initalize()
13
- end
14
-
15
- def to_s
16
- return "(#{id}, #{integration_id}, #{heading})"
17
- end
18
-
19
- def empty?
20
- return !@integration_id && !@id && !@heading
21
- end
22
-
23
- # *** TODO: delete this?
24
- def same_as_this_method()
25
- if @integration_id
26
- return lambda { |org|
27
- org.integration_id == @integration_id
28
- }
29
- elsif @id
30
- return lambda { |org|
31
- org.id == @id
32
- }
33
- elsif @heading
34
- return lambda { |org|
35
- org.heading == @heading
36
- }
37
- else
38
- raise "No reference!"
39
- end
40
- end
41
- end
42
-
43
- class Organization
44
- include SerializeHelper, ModelHasCustomFields, ModelHasTags
45
-
46
- attr_accessor :id, :integration_id, :name, :organization_number, :email, :web_site, :external_link,
47
- :postal_address, :visit_address, :central_phone_number, :responsible_coworker, :source_data
48
-
49
- attr_reader :employees
50
-
51
- def initialize()
52
- end
53
-
54
- def to_reference()
55
- reference = OrganizationReference.new
56
- reference.id = @id
57
- reference.integration_id = @integration_id
58
- reference.heading = @name
59
- return reference
60
- end
61
-
62
- def ==(that)
63
- if that.nil?
64
- return false
65
- end
66
-
67
- if that.is_a? Organization
68
- return @integration_id == that.integration_id
69
- elsif that.is_a? String
70
- return @integration_id == that
71
- end
72
-
73
- return false
74
- end
75
-
76
- def with_postal_address
77
- @postal_address = Address.new
78
- yield @postal_address
79
- end
80
-
81
- def with_visit_address
82
- @visit_address = Address.new
83
- yield @visit_address
84
- end
85
-
86
- def with_source
87
- @source = ReferenceToSource.new
88
- yield @source
89
- end
90
-
91
- def add_employee(val)
92
- @employees = [] if @employees==nil
93
- @employees.push(if val.is_a? Person then val else Person.new(val) end)
94
- end
95
-
96
- def serialize_variables
97
- [
98
- :id, :integration_id, :name, :organization_number, :external_link,
99
- :email, :web_site, :central_phone_number ].map {
100
- |prop| { :id => prop, :type => :string }
101
- } +
102
- [
103
- { :id => :postal_address, :type => :address },
104
- { :id => :visit_address, :type => :address },
105
- { :id => :employees, :type => :persons },
106
- { :id => :tags, :type => :tags },
107
- { :id => :custom_fields, :type => :custom_fields },
108
- { :id => :source, :type => :source_ref },
109
- { :id => :responsible_coworker, :type => :coworker_reference}
110
- ]
111
- end
112
-
113
- def serialize_name
114
- "Organization"
115
- end
116
-
117
- def to_s
118
- return "#{name}"
119
- end
120
-
121
- def validate
122
- error = String.new
123
-
124
- if @name.nil? || @name.empty?
125
- error = "A name is required for organization.\n#{serialize()}"
126
- end
127
-
128
- if @employees != nil
129
- @employees.each do |person|
130
- validation_message = person.validate()
131
- if !validation_message.empty?
132
- error = "#{error}\n#{validation_message}"
133
- end
134
- end
135
- end
136
-
137
- return error
138
- end
139
- end
140
- end
1
+ module FruitToLime
2
+ class OrganizationReference
3
+ include SerializeHelper
4
+ attr_accessor :id, :integration_id, :heading
5
+ def serialize_variables
6
+ [ :id, :integration_id, :heading ].map { |prop| {
7
+ :id => prop, :type => :string
8
+ }
9
+ }
10
+ end
11
+
12
+ def initalize()
13
+ end
14
+
15
+ def to_s
16
+ return "(#{id}, #{integration_id}, #{heading})"
17
+ end
18
+
19
+ def empty?
20
+ return !@integration_id && !@id && !@heading
21
+ end
22
+
23
+ # *** TODO: delete this?
24
+ def same_as_this_method()
25
+ if @integration_id
26
+ return lambda { |org|
27
+ org.integration_id == @integration_id
28
+ }
29
+ elsif @id
30
+ return lambda { |org|
31
+ org.id == @id
32
+ }
33
+ elsif @heading
34
+ return lambda { |org|
35
+ org.heading == @heading
36
+ }
37
+ else
38
+ raise "No reference!"
39
+ end
40
+ end
41
+ end
42
+
43
+ class Organization
44
+ include SerializeHelper, ModelHasCustomFields, ModelHasTags
45
+
46
+ attr_accessor :id, :integration_id, :name, :organization_number, :email, :web_site,
47
+ :postal_address, :visit_address, :central_phone_number, :responsible_coworker, :source_data
48
+
49
+ attr_reader :employees
50
+
51
+ def initialize()
52
+ end
53
+
54
+ def to_reference()
55
+ reference = OrganizationReference.new
56
+ reference.id = @id
57
+ reference.integration_id = @integration_id
58
+ reference.heading = @name
59
+ return reference
60
+ end
61
+
62
+ def ==(that)
63
+ if that.nil?
64
+ return false
65
+ end
66
+
67
+ if that.is_a? Organization
68
+ return @integration_id == that.integration_id
69
+ elsif that.is_a? String
70
+ return @integration_id == that
71
+ end
72
+
73
+ return false
74
+ end
75
+
76
+ def with_postal_address
77
+ @postal_address = Address.new
78
+ yield @postal_address
79
+ end
80
+
81
+ def with_visit_address
82
+ @visit_address = Address.new
83
+ yield @visit_address
84
+ end
85
+
86
+ def with_source
87
+ @source = ReferenceToSource.new
88
+ yield @source
89
+ end
90
+
91
+ def add_employee(val)
92
+ @employees = [] if @employees==nil
93
+ @employees.push(if val.is_a? Person then val else Person.new(val) end)
94
+ end
95
+
96
+ def serialize_variables
97
+ [
98
+ :id, :integration_id, :name, :organization_number,
99
+ :email, :web_site, :central_phone_number ].map {
100
+ |prop| { :id => prop, :type => :string }
101
+ } +
102
+ [
103
+ { :id => :postal_address, :type => :address },
104
+ { :id => :visit_address, :type => :address },
105
+ { :id => :employees, :type => :persons },
106
+ { :id => :tags, :type => :tags },
107
+ { :id => :custom_fields, :type => :custom_fields },
108
+ { :id => :source, :type => :source_ref },
109
+ { :id => :responsible_coworker, :type => :coworker_reference}
110
+ ]
111
+ end
112
+
113
+ def serialize_name
114
+ "Organization"
115
+ end
116
+
117
+ def to_s
118
+ return "#{name}"
119
+ end
120
+
121
+ def validate
122
+ error = String.new
123
+
124
+ if @name.nil? || @name.empty?
125
+ error = "A name is required for organization.\n#{serialize()}"
126
+ end
127
+
128
+ if @employees != nil
129
+ @employees.each do |person|
130
+ validation_message = person.validate()
131
+ if !validation_message.empty?
132
+ error = "#{error}\n#{validation_message}"
133
+ end
134
+ end
135
+ end
136
+
137
+ return error
138
+ end
139
+ end
140
+ end
@@ -1,115 +1,115 @@
1
- module FruitToLime
2
- class PersonReference
3
- include SerializeHelper
4
- attr_accessor :id, :integration_id
5
- def serialize_variables
6
- [ :id, :integration_id ].map { |prop| {:id=>prop,:type=>:string} }
7
- end
8
-
9
- def initalize()
10
- end
11
- def to_s
12
- return "(#{id}, #{integration_id})"
13
- end
14
- def empty?
15
- return !@integration_id && !@id
16
- end
17
- def same_as_this_method()
18
- if @integration_id
19
- return lambda { |person|
20
- person.integration_id == @integration_id
21
- }
22
- elsif @id
23
- return lambda { |person|
24
- person.id == @id
25
- }
26
- else
27
- raise "No reference!"
28
- end
29
- end
30
- end
31
-
32
- class Person < PersonReference
33
- include SerializeHelper
34
- attr_accessor :first_name, :last_name,
35
- :direct_phone_number, :fax_phone_number, :mobile_phone_number, :home_phone_number,
36
- :position, :email, :alternative_email, :postal_address, :currently_employed,
37
- :organization
38
- attr_reader :custom_fields
39
-
40
- def initialize(opt = nil)
41
- if opt != nil
42
- serialize_variables.each do |myattr|
43
- val = opt[myattr[:id]]
44
- instance_variable_set("@" + myattr[:id].to_s, val) if val != nil
45
- end
46
- end
47
- end
48
-
49
- def with_postal_address
50
- @postal_address = Address.new
51
- yield @postal_address
52
- end
53
-
54
- def set_custom_field(obj)
55
- @custom_fields = [] if @custom_fields==nil
56
- @custom_fields.push CustomField.new(obj)
57
- end
58
-
59
- def with_source
60
- @source = ReferenceToSource.new
61
- yield @source
62
- end
63
-
64
- def tags
65
- @tags
66
- end
67
-
68
- def add_tag(str)
69
- @tags = [] if @tags == nil
70
- @tags.push(Tag.new(str))
71
- end
72
-
73
- def serialize_name
74
- "Person"
75
- end
76
-
77
- def serialize_variables
78
- [
79
- :id, :integration_id, :first_name, :last_name,
80
- :direct_phone_number, :fax_phone_number, :mobile_phone_number, :home_phone_number,
81
- :position, :email, :alternative_email
82
- ].map {
83
- |prop| {:id => prop, :type => :string}
84
- }+[
85
- {:id => :postal_address, :type => :address},
86
- {:id => :currently_employed, :type => :bool},
87
- {:id => :tags, :type => :tags},
88
- {:id => :custom_fields, :type => :custom_fields},
89
- {:id => :source, :type => :source_ref},
90
- {:id => :organization, :type => :organization_reference}
91
- ]
92
- end
93
-
94
- def get_import_rows
95
- (serialize_variables + [ { :id => :organization, :type => :organization_reference } ]).map do |p|
96
- map_to_row p
97
- end
98
- end
99
-
100
- def to_s
101
- return "#{first_name} #{last_name}"
102
- end
103
-
104
- def validate
105
- error = String.new
106
-
107
- if (@first_name.nil? || @first_name.empty?) &&
108
- (@last_name.nil? || @last_name.empty?)
109
- error = "A firstname or lastname is required for person.\n#{serialize()}"
110
- end
111
-
112
- return error
113
- end
114
- end
115
- end
1
+ module FruitToLime
2
+ class PersonReference
3
+ include SerializeHelper
4
+ attr_accessor :id, :integration_id
5
+ def serialize_variables
6
+ [ :id, :integration_id ].map { |prop| {:id=>prop,:type=>:string} }
7
+ end
8
+
9
+ def initalize()
10
+ end
11
+ def to_s
12
+ return "(#{id}, #{integration_id})"
13
+ end
14
+ def empty?
15
+ return !@integration_id && !@id
16
+ end
17
+ def same_as_this_method()
18
+ if @integration_id
19
+ return lambda { |person|
20
+ person.integration_id == @integration_id
21
+ }
22
+ elsif @id
23
+ return lambda { |person|
24
+ person.id == @id
25
+ }
26
+ else
27
+ raise "No reference!"
28
+ end
29
+ end
30
+ end
31
+
32
+ class Person < PersonReference
33
+ include SerializeHelper
34
+ attr_accessor :first_name, :last_name,
35
+ :direct_phone_number, :fax_phone_number, :mobile_phone_number, :home_phone_number,
36
+ :position, :email, :alternative_email, :postal_address, :currently_employed,
37
+ :organization
38
+ attr_reader :custom_fields
39
+
40
+ def initialize(opt = nil)
41
+ if opt != nil
42
+ serialize_variables.each do |myattr|
43
+ val = opt[myattr[:id]]
44
+ instance_variable_set("@" + myattr[:id].to_s, val) if val != nil
45
+ end
46
+ end
47
+ end
48
+
49
+ def with_postal_address
50
+ @postal_address = Address.new
51
+ yield @postal_address
52
+ end
53
+
54
+ def set_custom_field(obj)
55
+ @custom_fields = [] if @custom_fields==nil
56
+ @custom_fields.push CustomField.new(obj)
57
+ end
58
+
59
+ def with_source
60
+ @source = ReferenceToSource.new
61
+ yield @source
62
+ end
63
+
64
+ def tags
65
+ @tags
66
+ end
67
+
68
+ def add_tag(str)
69
+ @tags = [] if @tags == nil
70
+ @tags.push(Tag.new(str))
71
+ end
72
+
73
+ def serialize_name
74
+ "Person"
75
+ end
76
+
77
+ def serialize_variables
78
+ [
79
+ :id, :integration_id, :first_name, :last_name,
80
+ :direct_phone_number, :fax_phone_number, :mobile_phone_number, :home_phone_number,
81
+ :position, :email, :alternative_email
82
+ ].map {
83
+ |prop| {:id => prop, :type => :string}
84
+ }+[
85
+ {:id => :postal_address, :type => :address},
86
+ {:id => :currently_employed, :type => :bool},
87
+ {:id => :tags, :type => :tags},
88
+ {:id => :custom_fields, :type => :custom_fields},
89
+ {:id => :source, :type => :source_ref},
90
+ {:id => :organization, :type => :organization_reference}
91
+ ]
92
+ end
93
+
94
+ def get_import_rows
95
+ (serialize_variables + [ { :id => :organization, :type => :organization_reference } ]).map do |p|
96
+ map_to_row p
97
+ end
98
+ end
99
+
100
+ def to_s
101
+ return "#{first_name} #{last_name}"
102
+ end
103
+
104
+ def validate
105
+ error = String.new
106
+
107
+ if (@first_name.nil? || @first_name.empty?) &&
108
+ (@last_name.nil? || @last_name.empty?)
109
+ error = "A firstname or lastname is required for person.\n#{serialize()}"
110
+ end
111
+
112
+ return error
113
+ end
114
+ end
115
+ end