stbaldricks 1.5.1.pre

Sign up to get free protection for your applications and to get access to all the features.
Files changed (117) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +21 -0
  3. data/lib/stbaldricks.rb +2 -0
  4. data/lib/stbaldricks/api.rb +7 -0
  5. data/lib/stbaldricks/api_connector.rb +47 -0
  6. data/lib/stbaldricks/client.rb +7 -0
  7. data/lib/stbaldricks/configuration.rb +47 -0
  8. data/lib/stbaldricks/default_logger.rb +24 -0
  9. data/lib/stbaldricks/endpoints/communicate.rb +67 -0
  10. data/lib/stbaldricks/endpoints/config.rb +18 -0
  11. data/lib/stbaldricks/endpoints/contact.rb +12 -0
  12. data/lib/stbaldricks/endpoints/event.rb +39 -0
  13. data/lib/stbaldricks/endpoints/event_application.rb +32 -0
  14. data/lib/stbaldricks/endpoints/fund.rb +24 -0
  15. data/lib/stbaldricks/endpoints/kid.rb +24 -0
  16. data/lib/stbaldricks/endpoints/kid_honor.rb +17 -0
  17. data/lib/stbaldricks/endpoints/lib/entity.rb +247 -0
  18. data/lib/stbaldricks/endpoints/message.rb +27 -0
  19. data/lib/stbaldricks/endpoints/newsletter_recipient.rb +41 -0
  20. data/lib/stbaldricks/endpoints/participant.rb +66 -0
  21. data/lib/stbaldricks/endpoints/photo.rb +51 -0
  22. data/lib/stbaldricks/endpoints/recurring_gift.rb +18 -0
  23. data/lib/stbaldricks/endpoints/search.rb +63 -0
  24. data/lib/stbaldricks/endpoints/shave_schedule.rb +28 -0
  25. data/lib/stbaldricks/endpoints/user.rb +106 -0
  26. data/lib/stbaldricks/entities/batch.rb +29 -0
  27. data/lib/stbaldricks/entities/campaign.rb +37 -0
  28. data/lib/stbaldricks/entities/communicate.rb +20 -0
  29. data/lib/stbaldricks/entities/config.rb +41 -0
  30. data/lib/stbaldricks/entities/contact.rb +40 -0
  31. data/lib/stbaldricks/entities/contact_group.rb +29 -0
  32. data/lib/stbaldricks/entities/document_library.rb +19 -0
  33. data/lib/stbaldricks/entities/document_library_category.rb +14 -0
  34. data/lib/stbaldricks/entities/donation.rb +372 -0
  35. data/lib/stbaldricks/entities/donation/donor_type.rb +13 -0
  36. data/lib/stbaldricks/entities/donation/how_created.rb +22 -0
  37. data/lib/stbaldricks/entities/donation/payment_type.rb +17 -0
  38. data/lib/stbaldricks/entities/donation/promo_code.rb +22 -0
  39. data/lib/stbaldricks/entities/donation/recipient_type.rb +17 -0
  40. data/lib/stbaldricks/entities/donation/special_donation_type.rb +78 -0
  41. data/lib/stbaldricks/entities/donation/status.rb +12 -0
  42. data/lib/stbaldricks/entities/donation/submitter_type.rb +13 -0
  43. data/lib/stbaldricks/entities/donor.rb +15 -0
  44. data/lib/stbaldricks/entities/event.rb +173 -0
  45. data/lib/stbaldricks/entities/event/fund_relationship_type.rb +15 -0
  46. data/lib/stbaldricks/entities/event/how_created.rb +14 -0
  47. data/lib/stbaldricks/entities/event/promo_code.rb +11 -0
  48. data/lib/stbaldricks/entities/event/status.rb +13 -0
  49. data/lib/stbaldricks/entities/event/sub_type.rb +16 -0
  50. data/lib/stbaldricks/entities/event/type.rb +12 -0
  51. data/lib/stbaldricks/entities/event_application.rb +135 -0
  52. data/lib/stbaldricks/entities/event_application/model_type.rb +15 -0
  53. data/lib/stbaldricks/entities/event_application/status.rb +23 -0
  54. data/lib/stbaldricks/entities/event_donation_summary.rb +18 -0
  55. data/lib/stbaldricks/entities/event_participant_summary.rb +17 -0
  56. data/lib/stbaldricks/entities/event_supporter.rb +24 -0
  57. data/lib/stbaldricks/entities/fund.rb +98 -0
  58. data/lib/stbaldricks/entities/fundraiser.rb +124 -0
  59. data/lib/stbaldricks/entities/international_partner.rb +58 -0
  60. data/lib/stbaldricks/entities/kid.rb +190 -0
  61. data/lib/stbaldricks/entities/kid_honor.rb +123 -0
  62. data/lib/stbaldricks/entities/lib/address.rb +25 -0
  63. data/lib/stbaldricks/entities/lib/base.rb +505 -0
  64. data/lib/stbaldricks/entities/lib/cacheable.rb +43 -0
  65. data/lib/stbaldricks/entities/lib/default_cacheable.rb +17 -0
  66. data/lib/stbaldricks/entities/lib/email_address.rb +15 -0
  67. data/lib/stbaldricks/entities/lib/error.rb +38 -0
  68. data/lib/stbaldricks/entities/lib/fundraising_page.rb +20 -0
  69. data/lib/stbaldricks/entities/lib/geo_location.rb +9 -0
  70. data/lib/stbaldricks/entities/lib/location.rb +27 -0
  71. data/lib/stbaldricks/entities/lib/name.rb +17 -0
  72. data/lib/stbaldricks/entities/lib/not_implemented_object.rb +32 -0
  73. data/lib/stbaldricks/entities/lib/opt_out_settings.rb +21 -0
  74. data/lib/stbaldricks/entities/lib/payment.rb +86 -0
  75. data/lib/stbaldricks/entities/lib/permissions.rb +33 -0
  76. data/lib/stbaldricks/entities/lib/phone.rb +29 -0
  77. data/lib/stbaldricks/entities/lib/third_party_media.rb +20 -0
  78. data/lib/stbaldricks/entities/lib/top_level.rb +99 -0
  79. data/lib/stbaldricks/entities/lib/venue.rb +18 -0
  80. data/lib/stbaldricks/entities/memorial.rb +61 -0
  81. data/lib/stbaldricks/entities/message.rb +65 -0
  82. data/lib/stbaldricks/entities/newsletter_recipient.rb +17 -0
  83. data/lib/stbaldricks/entities/organization.rb +90 -0
  84. data/lib/stbaldricks/entities/page.rb +49 -0
  85. data/lib/stbaldricks/entities/participant.rb +216 -0
  86. data/lib/stbaldricks/entities/person.rb +403 -0
  87. data/lib/stbaldricks/entities/photo.rb +260 -0
  88. data/lib/stbaldricks/entities/recurring_gift.rb +215 -0
  89. data/lib/stbaldricks/entities/response.rb +37 -0
  90. data/lib/stbaldricks/entities/search.rb +223 -0
  91. data/lib/stbaldricks/entities/section.rb +15 -0
  92. data/lib/stbaldricks/entities/shave_schedule.rb +69 -0
  93. data/lib/stbaldricks/entities/summary.rb +32 -0
  94. data/lib/stbaldricks/entities/team.rb +95 -0
  95. data/lib/stbaldricks/entities/user.rb +76 -0
  96. data/lib/stbaldricks/enums/country.rb +223 -0
  97. data/lib/stbaldricks/enums/feature.rb +29 -0
  98. data/lib/stbaldricks/enums/league_status.rb +16 -0
  99. data/lib/stbaldricks/enums/model_type.rb +39 -0
  100. data/lib/stbaldricks/enums/permission.rb +223 -0
  101. data/lib/stbaldricks/enums/permission_model_type.rb +21 -0
  102. data/lib/stbaldricks/enums/province.rb +39 -0
  103. data/lib/stbaldricks/enums/state.rb +137 -0
  104. data/lib/stbaldricks/enums/top_level_category_type.rb +25 -0
  105. data/lib/stbaldricks/errors.rb +18 -0
  106. data/lib/stbaldricks/log.rb +16 -0
  107. data/lib/stbaldricks/patches/array.rb +6 -0
  108. data/lib/stbaldricks/patches/boolean.rb +25 -0
  109. data/lib/stbaldricks/patches/class.rb +13 -0
  110. data/lib/stbaldricks/patches/float.rb +9 -0
  111. data/lib/stbaldricks/patches/hash.rb +16 -0
  112. data/lib/stbaldricks/patches/integer.rb +9 -0
  113. data/lib/stbaldricks/patches/nil.rb +25 -0
  114. data/lib/stbaldricks/patches/string.rb +54 -0
  115. data/lib/stbaldricks/request.rb +146 -0
  116. data/lib/stbaldricks/version.rb +5 -0
  117. metadata +215 -0
@@ -0,0 +1,215 @@
1
+ require 'stbaldricks/endpoints/recurring_gift'
2
+ require 'stbaldricks/entities/fund'
3
+ require 'stbaldricks/entities/event'
4
+ require 'stbaldricks/entities/team'
5
+ require 'stbaldricks/entities/participant'
6
+ require 'stbaldricks/entities/fundraiser'
7
+ require 'stbaldricks/entities/person'
8
+ require 'stbaldricks/entities/organization'
9
+ require 'stbaldricks/entities/lib/address'
10
+ require 'stbaldricks/entities/lib/top_level'
11
+ require 'stbaldricks/entities/lib/name'
12
+ require 'stbaldricks/entities/lib/payment'
13
+ require 'stbaldricks/entities/lib/default_cacheable'
14
+
15
+ module SBF
16
+ module Client
17
+ class RecurringGift < SBF::Client::TopLevelEntity
18
+ include Entities::DefaultCacheable
19
+ endpoint SBF::Client::RecurringGiftEndpoint
20
+ actions DEFAULT_CRUD_ACTIONS
21
+ blacklist_action :get
22
+ blacklist_action :aggregate
23
+ blacklist_action :delete
24
+ action :sync
25
+
26
+ attr_accessor :id
27
+
28
+ module Status
29
+ UNKNOWN = 'unknown'
30
+ PAST_DUE = 'past_due'
31
+ ACTIVE = 'active'
32
+ CANCELED = 'canceled'
33
+ end
34
+
35
+ module RecipientType
36
+ FUND = 'fund'
37
+ EVENT = 'event'
38
+ TEAM = 'team'
39
+ PARTICIPANT = 'participant'
40
+ FUNDRAISER = 'fundraiser'
41
+ end
42
+
43
+ module DonorType
44
+ INDIVIDUAL = 'individual'
45
+ BUSINESS = 'business'
46
+ ORGANIZATION_FOUNDATION = 'foundation'
47
+ end
48
+
49
+ class FullParticipant < SBF::Client::FullParticipant
50
+ attr_reader :model_type
51
+
52
+ def model_type
53
+ SBF::Client::RecurringGift::RecipientType::PARTICIPANT
54
+ end
55
+ end
56
+
57
+ class PartialParticipant < SBF::Client::PartialParticipant
58
+ attr_reader :model_type
59
+
60
+ def model_type
61
+ SBF::Client::RecurringGift::RecipientType::PARTICIPANT
62
+ end
63
+ end
64
+
65
+ class FullFundraiser < SBF::Client::FullFundraiser
66
+ attr_reader :model_type
67
+
68
+ def model_type
69
+ SBF::Client::RecurringGift::RecipientType::FUNDRAISER
70
+ end
71
+ end
72
+
73
+ class PartialFundraiser < SBF::Client::PartialFundraiser
74
+ attr_reader :model_type
75
+
76
+ def model_type
77
+ SBF::Client::RecurringGift::RecipientType::FUNDRAISER
78
+ end
79
+ end
80
+
81
+ class FullTeam < SBF::Client::FullTeam
82
+ attr_reader :model_type
83
+
84
+ def model_type
85
+ SBF::Client::RecurringGift::RecipientType::TEAM
86
+ end
87
+ end
88
+
89
+ class PartialTeam < SBF::Client::PartialTeam
90
+ attr_reader :model_type
91
+
92
+ def model_type
93
+ SBF::Client::RecurringGift::RecipientType::TEAM
94
+ end
95
+ end
96
+
97
+ class FullEvent < SBF::Client::FullEvent
98
+ attr_reader :model_type
99
+
100
+ def model_type
101
+ SBF::Client::RecurringGift::RecipientType::EVENT
102
+ end
103
+ end
104
+
105
+ class PartialEvent < SBF::Client::PartialEvent
106
+ attr_reader :model_type
107
+
108
+ def model_type
109
+ SBF::Client::RecurringGift::RecipientType::EVENT
110
+ end
111
+ end
112
+
113
+ class FullFund < SBF::Client::FullFund
114
+ attr_reader :model_type
115
+
116
+ def model_type
117
+ SBF::Client::RecurringGift::RecipientType::FUND
118
+ end
119
+ end
120
+
121
+ class PartialFund < SBF::Client::PartialFund
122
+ attr_reader :model_type
123
+
124
+ def model_type
125
+ SBF::Client::RecurringGift::RecipientType::FUND
126
+ end
127
+ end
128
+ end
129
+
130
+ class PartialRecurringGift < SBF::Client::RecurringGift
131
+ attr_accessor :id
132
+ end
133
+
134
+ class FullRecurringGift < SBF::Client::RecurringGift
135
+ attr_accessor :status
136
+ attr_accessor :amount
137
+ attr_accessor :billing_day_of_month
138
+ attr_accessor :last_collected_at
139
+ attr_accessor :last_failed_at
140
+ attr_accessor :display_name
141
+ attr_accessor :is_unrecognized
142
+ attr_accessor :promotional_code
143
+ entity_collection_attr_accessor :donations, 'SBF::Client::FullDonation', 'SBF::Client::PartialDonation'
144
+ attr_accessor :created_at, :modified_at, :modified_by, :how_created, :past_due_at
145
+
146
+ multitype_attr_accessor(
147
+ :payment_details,
148
+ [
149
+ [
150
+ ->(v) { v[:type] == SBF::Client::Payment::Type::RECURRING_GIFTS },
151
+ 'SBF::Client::Payment::BraintreeSubscriptionDetails'
152
+ ],
153
+ [
154
+ ->(v) { v[:type] == SBF::Client::Payment::Type::NONCE },
155
+ 'SBF::Client::Payment::NonceDetails'
156
+ ]
157
+ ]
158
+ )
159
+
160
+ multitype_attr_accessor(
161
+ :recipient,
162
+ [
163
+ [
164
+ ->(v) { v[:model_type] == SBF::Client::RecurringGift::RecipientType::PARTICIPANT },
165
+ 'SBF::Client::RecurringGift::FullParticipant',
166
+ 'SBF::Client::RecurringGift::PartialParticipant'
167
+ ],
168
+ [
169
+ ->(v) { v[:model_type] == SBF::Client::RecurringGift::RecipientType::FUNDRAISER },
170
+ 'SBF::Client::RecurringGift::FullFundraiser',
171
+ 'SBF::Client::RecurringGift::PartialFundraiser'
172
+ ],
173
+ [
174
+ ->(v) { v[:model_type] == SBF::Client::RecurringGift::RecipientType::TEAM },
175
+ 'SBF::Client::RecurringGift::FullTeam',
176
+ 'SBF::Client::RecurringGift::PartialTeam'
177
+ ],
178
+ [
179
+ ->(v) { v[:model_type] == SBF::Client::RecurringGift::RecipientType::EVENT },
180
+ 'SBF::Client::RecurringGift::FullEvent',
181
+ 'SBF::Client::RecurringGift::PartialEvent'
182
+ ],
183
+ [
184
+ ->(v) { v[:model_type] == SBF::Client::RecurringGift::RecipientType::FUND },
185
+ 'SBF::Client::RecurringGift::FullFund',
186
+ 'SBF::Client::RecurringGift::PartialFund'
187
+ ]
188
+ ],
189
+ optional: true
190
+ )
191
+
192
+ multitype_attr_accessor(
193
+ :donor,
194
+ [
195
+ [
196
+ ->(v) { v[:type] == SBF::Client::RecurringGift::DonorType::INDIVIDUAL },
197
+ 'SBF::Client::FullPerson',
198
+ 'SBF::Client::PartialPerson'
199
+ ],
200
+ [
201
+ ->(v) { v[:type] == SBF::Client::RecurringGift::DonorType::BUSINESS },
202
+ 'SBF::Client::FullOrganization',
203
+ 'SBF::Client::PartialOrganization'
204
+ ],
205
+ [
206
+ ->(v) { v[:type] == SBF::Client::RecurringGift::DonorType::ORGANIZATION_FOUNDATION },
207
+ 'SBF::Client::FullOrganization',
208
+ 'SBF::Client::PartialOrganization'
209
+ ]
210
+ ],
211
+ optional: true
212
+ )
213
+ end
214
+ end
215
+ end
@@ -0,0 +1,37 @@
1
+ require 'stbaldricks/entities/lib/base'
2
+
3
+ module SBF
4
+ module Client
5
+ module Api
6
+ class Response < SBF::Client::BaseEntity
7
+ attr_accessor :http_code, :data, :error
8
+
9
+ def initialize(http_code: nil, data: nil, error: nil)
10
+ @http_code = http_code
11
+ @data = data
12
+ @error = error || SBF::Client::ErrorEntity.new(nil)
13
+ end
14
+
15
+ def success?
16
+ http_code.to_s.start_with?('2')
17
+ end
18
+
19
+ def error?
20
+ !success?
21
+ end
22
+
23
+ def to_json
24
+ to_hash.to_json
25
+ end
26
+
27
+ def to_hash
28
+ {
29
+ http_code: http_code,
30
+ data: data,
31
+ error: error
32
+ }
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,223 @@
1
+ require 'stbaldricks/entities/lib/top_level'
2
+ require 'stbaldricks/endpoints/search'
3
+
4
+ module SBF
5
+ module Client
6
+ class Search < SBF::Client::TopLevelEntity
7
+ endpoint SBF::Client::SearchEndpoint
8
+ action :find
9
+
10
+ module Type
11
+ FUND = 'fund'
12
+ CAMPAIGN = 'campaign'
13
+ EVENT = 'event'
14
+ TEAM = 'team'
15
+ PARTICIPANT = 'participant'
16
+ FUNDRAISER = 'fundraiser'
17
+ KID = 'kid'
18
+ end
19
+
20
+ module Status
21
+ ACTIVE = 2
22
+ end
23
+
24
+ class Fund < SBF::Client::BaseEntity
25
+ attr_reader :fund_id
26
+ attr_reader :slug
27
+ attr_reader :name
28
+ attr_reader :website
29
+ attr_reader :disabled
30
+ attr_reader :event_year
31
+ attr_reader :total_donations
32
+ attr_reader :total_events
33
+ attr_reader :total_participants
34
+ end
35
+
36
+ class Campaign < SBF::Client::BaseEntity
37
+ attr_reader :campaign_id
38
+ attr_reader :slug
39
+ attr_reader :name
40
+ attr_reader :website
41
+ attr_reader :disabled
42
+ attr_reader :event_year
43
+ attr_reader :total_donations
44
+ attr_reader :total_events
45
+ attr_reader :total_participants
46
+ end
47
+
48
+ class Event < SBF::Client::BaseEntity
49
+ attr_reader :geo_location
50
+ attr_reader :venue_name
51
+ attr_reader :event_title
52
+ attr_reader :zip_code
53
+ attr_reader :address1
54
+ attr_reader :city
55
+ attr_reader :state
56
+ attr_reader :state_full
57
+ attr_reader :country
58
+ attr_reader :country_full
59
+ attr_reader :address2
60
+ attr_reader :event_access_type_id
61
+ attr_reader :event_date
62
+ attr_reader :event_year
63
+ attr_reader :event_id
64
+ attr_reader :is_website_allowed
65
+ attr_reader :is_expired
66
+ attr_reader :latitude
67
+ attr_reader :longitude
68
+ attr_reader :start_time
69
+ attr_reader :end_time
70
+ attr_reader :status_id
71
+ attr_reader :website_url
72
+ attr_reader :total_donations
73
+ attr_reader :total_participants
74
+ end
75
+
76
+ class Team < SBF::Client::BaseEntity
77
+ attr_reader :team_name
78
+ attr_reader :venue_name
79
+ attr_reader :event_title
80
+ attr_reader :zip_code
81
+ attr_reader :address1
82
+ attr_reader :city
83
+ attr_reader :state
84
+ attr_reader :state_full
85
+ attr_reader :country_full
86
+ attr_reader :country
87
+ attr_reader :event_date
88
+ attr_reader :event_id
89
+ attr_reader :event_year
90
+ attr_reader :event_status_id
91
+ attr_reader :team_id
92
+ attr_reader :is_website_allowed
93
+ attr_reader :status_id
94
+ attr_reader :latitude
95
+ attr_reader :longitude
96
+ attr_reader :geo_location
97
+ attr_reader :total_donations
98
+ attr_reader :total_participants
99
+ end
100
+
101
+ class Participant < SBF::Client::BaseEntity
102
+ attr_reader :participant_id
103
+ attr_reader :event_year
104
+ attr_reader :raw_display_name
105
+ attr_reader :display_name
106
+ attr_reader :first_name
107
+ attr_reader :last_name
108
+ attr_reader :team_name
109
+ attr_reader :venue_name
110
+ attr_reader :event_title
111
+ attr_reader :zip_code
112
+ attr_reader :participant_zip_code
113
+ attr_reader :address1
114
+ attr_reader :address2
115
+ attr_reader :city
116
+ attr_reader :state
117
+ attr_reader :state_full
118
+ attr_reader :participant_state
119
+ attr_reader :participant_state_full
120
+ attr_reader :country
121
+ attr_reader :country_full
122
+ attr_reader :participant_country
123
+ attr_reader :participant_country_full
124
+ attr_reader :event_date
125
+ attr_reader :event_id
126
+ attr_reader :is_website_allowed
127
+ attr_reader :legal_status_id
128
+ attr_reader :birthday
129
+ attr_reader :profile_id
130
+ attr_reader :status_id
131
+ attr_reader :event_status_id
132
+ attr_reader :team_id
133
+ attr_reader :virtual_participation_date
134
+ attr_reader :latitude
135
+ attr_reader :longitude
136
+ attr_reader :geo_location
137
+ attr_reader :total_donations
138
+ end
139
+
140
+ class Fundraiser < SBF::Client::BaseEntity
141
+ attr_reader :fundraiser_id
142
+ attr_reader :event_year
143
+ attr_reader :event_id
144
+ attr_reader :event_status_id
145
+ attr_reader :event_title
146
+ attr_reader :team_id
147
+ attr_reader :title
148
+ attr_reader :status_id
149
+ attr_reader :profile_id
150
+ attr_reader :raw_display_name
151
+ attr_reader :display_name
152
+ attr_reader :start_date
153
+ attr_reader :start_time
154
+ attr_reader :end_date
155
+ attr_reader :end_time
156
+ attr_reader :first_name
157
+ attr_reader :last_name
158
+ attr_reader :zip_code
159
+ attr_reader :venue_name
160
+ attr_reader :team_name
161
+ attr_reader :event_venue_name
162
+ attr_reader :address1
163
+ attr_reader :address2
164
+ attr_reader :city
165
+ attr_reader :state
166
+ attr_reader :state_full
167
+ attr_reader :country
168
+ attr_reader :country_full
169
+ attr_reader :latitude
170
+ attr_reader :longitude
171
+ attr_reader :geo_location
172
+ attr_reader :total_donations
173
+ end
174
+
175
+ class Kid < SBF::Client::BaseEntity
176
+ attr_reader :kid_id
177
+ attr_reader :display_name
178
+ attr_reader :first_name
179
+ attr_reader :last_name
180
+ attr_reader :zip_code
181
+ attr_reader :address1
182
+ attr_reader :city
183
+ attr_reader :state
184
+ attr_reader :state_full
185
+ attr_reader :country_full
186
+ attr_reader :country
187
+ attr_reader :birthday
188
+ attr_reader :date_of_death
189
+ attr_reader :diagnosis_slug
190
+ attr_reader :diagnosis_other
191
+ attr_reader :status_id
192
+ attr_reader :treatment_status_slug
193
+ attr_reader :treatment_status_other
194
+ attr_reader :mypage_url
195
+ attr_reader :default_photo_url
196
+ attr_reader :avatar_photo_url
197
+ attr_reader :latitude
198
+ attr_reader :longitude
199
+ attr_reader :geo_location
200
+ end
201
+
202
+ class Memorial < SBF::Client::BaseEntity
203
+ attr_reader :memorial_id
204
+ attr_reader :tribute_name
205
+ attr_reader :display_name
206
+ attr_reader :status_id
207
+ attr_reader :zip_code
208
+ attr_reader :city
209
+ attr_reader :state
210
+ attr_reader :state_full
211
+ attr_reader :country_full
212
+ attr_reader :country
213
+ attr_reader :latitude
214
+ attr_reader :longitude
215
+ attr_reader :geo_location
216
+ attr_reader :tribute_birthday
217
+ attr_reader :tribute_date_of_passing
218
+ attr_reader :expiration_date
219
+ attr_reader :total_donations
220
+ end
221
+ end
222
+ end
223
+ end