evva 0.1.4.4 → 0.4.1
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 +5 -5
- data/.gitignore +1 -2
- data/.rspec +0 -1
- data/.rubocop_todo.yml +10 -10
- data/.travis.yml +1 -0
- data/Gemfile +9 -8
- data/Gemfile.lock +7 -11
- data/README.md +12 -2
- data/Rakefile +9 -0
- data/changelog.md +17 -1
- data/evva.gemspec +0 -3
- data/lib/evva/{mixpanel_enum.rb → analytics_enum.rb} +2 -1
- data/lib/evva/analytics_event.rb +17 -0
- data/lib/evva/analytics_property.rb +17 -0
- data/lib/evva/android_generator.rb +135 -84
- data/lib/evva/config.rb +15 -3
- data/lib/evva/google_sheet.rb +69 -44
- data/lib/evva/swift_generator.rb +91 -81
- data/lib/evva/templates/kotlin/base.kt +7 -0
- data/lib/evva/templates/kotlin/destinations.kt +5 -0
- data/lib/evva/templates/kotlin/event_enum.kt +5 -0
- data/lib/evva/templates/kotlin/events.kt +34 -0
- data/lib/evva/templates/kotlin/people_properties.kt +24 -0
- data/lib/evva/templates/kotlin/people_properties_enum.kt +5 -0
- data/lib/evva/templates/kotlin/special_property_enums.kt +10 -0
- data/lib/evva/templates/swift/base.swift +7 -0
- data/lib/evva/templates/swift/destinations.swift +5 -0
- data/lib/evva/templates/swift/events.swift +66 -0
- data/lib/evva/templates/swift/people_properties.swift +50 -0
- data/lib/evva/templates/swift/special_property_enums.swift +10 -0
- data/lib/evva/version.rb +2 -2
- data/lib/evva.rb +15 -5
- data/spec/evva_spec.rb +3 -5
- data/spec/fixtures/sample_public_enums.csv +3 -0
- data/spec/fixtures/sample_public_events.csv +4 -0
- data/spec/fixtures/sample_public_people_properties.csv +4 -0
- data/spec/fixtures/test.yml +9 -5
- data/spec/lib/evva/android_generator_spec.rb +131 -57
- data/spec/lib/evva/config_spec.rb +12 -6
- data/spec/lib/evva/google_sheet_spec.rb +60 -72
- data/spec/lib/evva/swift_generator_spec.rb +157 -40
- metadata +23 -39
- data/evva_config.yml +0 -11
- data/lib/evva/mixpanel_event.rb +0 -13
- data/spec/fixtures/sample_public_enums.html +0 -1
- data/spec/fixtures/sample_public_info.html +0 -1
- data/spec/fixtures/sample_public_people_properties.html +0 -1
- data/spec/fixtures/sample_public_sheet.html +0 -1
@@ -2,14 +2,14 @@ describe Evva::SwiftGenerator do
|
|
2
2
|
let(:generator) { described_class.new }
|
3
3
|
|
4
4
|
describe '#events' do
|
5
|
-
subject { generator.events(event_bundle,
|
5
|
+
subject { generator.events(event_bundle, nil, nil, nil) }
|
6
6
|
|
7
7
|
let(:event_bundle) { [
|
8
|
-
Evva::
|
9
|
-
Evva::
|
10
|
-
Evva::
|
11
|
-
Evva::
|
12
|
-
Evva::
|
8
|
+
Evva::AnalyticsEvent.new('cp_page_view', {}, ['firebase']),
|
9
|
+
Evva::AnalyticsEvent.new('cp_page_view_a', { course_id: 'Long', course_name: 'String' }, ['firebase', 'Custom Destination']),
|
10
|
+
Evva::AnalyticsEvent.new('cp_page_view_b', { course_id: 'Long', course_name: 'String', from_screen: 'CourseProfileSource' }, []),
|
11
|
+
Evva::AnalyticsEvent.new('cp_page_view_c', { course_id: 'Long', course_name: 'String', from_screen: 'CourseProfileSource?' }, []),
|
12
|
+
Evva::AnalyticsEvent.new('cp_page_view_d', { course_id: 'Long?', course_name: 'String' }, []),
|
13
13
|
] }
|
14
14
|
|
15
15
|
let(:expected) {
|
@@ -19,6 +19,41 @@ describe Evva::SwiftGenerator do
|
|
19
19
|
import Foundation
|
20
20
|
|
21
21
|
extension Analytics {
|
22
|
+
struct EventData {
|
23
|
+
let name: String
|
24
|
+
var properties: [String: Any]?
|
25
|
+
let destinations: [Destination]
|
26
|
+
|
27
|
+
init(name: String, properties: [String: Any]?, destinations: [Destination]) {
|
28
|
+
self.name = name
|
29
|
+
self.properties = properties
|
30
|
+
self.destinations = destinations
|
31
|
+
}
|
32
|
+
|
33
|
+
init(type: EventType, properties: [String: Any]?) {
|
34
|
+
self.init(name: type.name, properties: properties, destinations: type.destinations)
|
35
|
+
}
|
36
|
+
}
|
37
|
+
|
38
|
+
enum EventType: String {
|
39
|
+
case cpPageView = "cp_page_view"
|
40
|
+
case cpPageViewA = "cp_page_view_a"
|
41
|
+
case cpPageViewB = "cp_page_view_b"
|
42
|
+
case cpPageViewC = "cp_page_view_c"
|
43
|
+
case cpPageViewD = "cp_page_view_d"
|
44
|
+
|
45
|
+
var name: String { return rawValue }
|
46
|
+
|
47
|
+
var destinations: [Destination] {
|
48
|
+
switch self {
|
49
|
+
case .cpPageView: return [.firebase]
|
50
|
+
case .cpPageViewA: return [.firebase, .customDestination]
|
51
|
+
case .cpPageViewB: return []
|
52
|
+
case .cpPageViewC: return []
|
53
|
+
case .cpPageViewD: return []
|
54
|
+
}
|
55
|
+
}
|
56
|
+
}
|
22
57
|
|
23
58
|
enum Event {
|
24
59
|
case cpPageView
|
@@ -30,33 +65,38 @@ extension Analytics {
|
|
30
65
|
var data: EventData {
|
31
66
|
switch self {
|
32
67
|
case .cpPageView:
|
33
|
-
return EventData(
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
68
|
+
return EventData(type: .cpPageView,
|
69
|
+
properties: nil)
|
70
|
+
|
71
|
+
case let .cpPageViewA(course_id, course_name):
|
72
|
+
return EventData(type: .cpPageViewA,
|
73
|
+
properties: [
|
74
|
+
"course_id": course_id as Any,
|
75
|
+
"course_name": course_name as Any,
|
76
|
+
])
|
77
|
+
|
78
|
+
case let .cpPageViewB(course_id, course_name, from_screen):
|
79
|
+
return EventData(type: .cpPageViewB,
|
80
|
+
properties: [
|
81
|
+
"course_id": course_id as Any,
|
82
|
+
"course_name": course_name as Any,
|
83
|
+
"from_screen": from_screen.rawValue as Any,
|
84
|
+
])
|
85
|
+
|
86
|
+
case let .cpPageViewC(course_id, course_name, from_screen):
|
87
|
+
return EventData(type: .cpPageViewC,
|
88
|
+
properties: [
|
89
|
+
"course_id": course_id as Any,
|
90
|
+
"course_name": course_name as Any,
|
91
|
+
"from_screen": from_screen?.rawValue as Any,
|
92
|
+
])
|
93
|
+
|
94
|
+
case let .cpPageViewD(course_id, course_name):
|
95
|
+
return EventData(type: .cpPageViewD,
|
96
|
+
properties: [
|
97
|
+
"course_id": course_id as Any,
|
98
|
+
"course_name": course_name as Any,
|
99
|
+
])
|
60
100
|
}
|
61
101
|
}
|
62
102
|
}
|
@@ -71,8 +111,8 @@ Swift
|
|
71
111
|
subject { generator.special_property_enums(enums) }
|
72
112
|
|
73
113
|
let(:enums) { [
|
74
|
-
Evva::
|
75
|
-
Evva::
|
114
|
+
Evva::AnalyticsEnum.new('CourseProfileSource', ['course_discovery', 'synced_courses']),
|
115
|
+
Evva::AnalyticsEnum.new('PremiumFrom', ['Course Profile', 'Round Setup']),
|
76
116
|
] }
|
77
117
|
|
78
118
|
let(:expected) {
|
@@ -82,7 +122,6 @@ Swift
|
|
82
122
|
import Foundation
|
83
123
|
|
84
124
|
extension Analytics {
|
85
|
-
|
86
125
|
enum CourseProfileSource: String {
|
87
126
|
case courseDiscovery = "course_discovery"
|
88
127
|
case syncedCourses = "synced_courses"
|
@@ -100,9 +139,13 @@ Swift
|
|
100
139
|
end
|
101
140
|
|
102
141
|
describe "#people_properties" do
|
103
|
-
subject { generator.people_properties(people_bundle, "") }
|
142
|
+
subject { generator.people_properties(people_bundle, "", "", "") }
|
104
143
|
|
105
|
-
let(:people_bundle) { [
|
144
|
+
let(:people_bundle) { [
|
145
|
+
Evva::AnalyticsProperty.new('rounds_with_wear', 'String', ["firebase"]),
|
146
|
+
Evva::AnalyticsProperty.new('wear_platform', 'WearableAppPlatform', ["firebase", "custom destination"]),
|
147
|
+
Evva::AnalyticsProperty.new('number_of_times_it_happened', 'Long', []),
|
148
|
+
] }
|
106
149
|
|
107
150
|
let(:expected) {
|
108
151
|
<<-Swift
|
@@ -111,10 +154,84 @@ Swift
|
|
111
154
|
import Foundation
|
112
155
|
|
113
156
|
extension Analytics {
|
157
|
+
struct PropertyData {
|
158
|
+
let name: String
|
159
|
+
let value: Any
|
160
|
+
let destinations: [Destination]
|
161
|
+
|
162
|
+
init(name: String, value: Any, destinations: [Destination]) {
|
163
|
+
self.name = name
|
164
|
+
self.value = value
|
165
|
+
self.destinations = destinations
|
166
|
+
}
|
167
|
+
|
168
|
+
init(type: PropertyType, value: Any) {
|
169
|
+
self.init(name: type.name, value: value, destinations: type.destinations)
|
170
|
+
}
|
171
|
+
}
|
114
172
|
|
115
|
-
enum
|
173
|
+
enum PropertyType: String {
|
116
174
|
case roundsWithWear = "rounds_with_wear"
|
117
|
-
case
|
175
|
+
case wearPlatform = "wear_platform"
|
176
|
+
case numberOfTimesItHappened = "number_of_times_it_happened"
|
177
|
+
|
178
|
+
var name: String { return rawValue }
|
179
|
+
|
180
|
+
var destinations: [Destination] {
|
181
|
+
switch self {
|
182
|
+
case .roundsWithWear: return [.firebase]
|
183
|
+
case .wearPlatform: return [.firebase, .customDestination]
|
184
|
+
case .numberOfTimesItHappened: return []
|
185
|
+
}
|
186
|
+
}
|
187
|
+
}
|
188
|
+
|
189
|
+
enum Property {
|
190
|
+
case roundsWithWear(String)
|
191
|
+
case wearPlatform(WearableAppPlatform)
|
192
|
+
case numberOfTimesItHappened(Int)
|
193
|
+
|
194
|
+
var data: PropertyData {
|
195
|
+
switch self {
|
196
|
+
case let .roundsWithWear(value):
|
197
|
+
return PropertyData(type: .roundsWithWear,
|
198
|
+
value: value)
|
199
|
+
|
200
|
+
case let .wearPlatform(value):
|
201
|
+
return PropertyData(type: .wearPlatform,
|
202
|
+
value: value.rawValue)
|
203
|
+
|
204
|
+
case let .numberOfTimesItHappened(value):
|
205
|
+
return PropertyData(type: .numberOfTimesItHappened,
|
206
|
+
value: value)
|
207
|
+
}
|
208
|
+
}
|
209
|
+
}
|
210
|
+
}
|
211
|
+
Swift
|
212
|
+
}
|
213
|
+
|
214
|
+
it { should eq expected }
|
215
|
+
end
|
216
|
+
|
217
|
+
describe "#destinations" do
|
218
|
+
subject { generator.destinations(destinations, "") }
|
219
|
+
|
220
|
+
let(:destinations) { [
|
221
|
+
'firebase',
|
222
|
+
'whatever you want really'
|
223
|
+
] }
|
224
|
+
|
225
|
+
let(:expected) {
|
226
|
+
<<-Swift
|
227
|
+
// This file was automatically generated by evva: https://github.com/hole19/evva
|
228
|
+
|
229
|
+
import Foundation
|
230
|
+
|
231
|
+
extension Analytics {
|
232
|
+
enum Destination {
|
233
|
+
case firebase
|
234
|
+
case whateverYouWantReally
|
118
235
|
}
|
119
236
|
}
|
120
237
|
Swift
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: evva
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- RicardoTrindade
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-12-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: safe_yaml
|
@@ -38,34 +38,6 @@ dependencies:
|
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0.7'
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: xml-simple
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - "~>"
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '1.1'
|
48
|
-
type: :runtime
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - "~>"
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '1.1'
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: webmock
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - "~>"
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '1.20'
|
62
|
-
type: :development
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - "~>"
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: '1.20'
|
69
41
|
description: Evva generates all the analytics event tracking functions for you
|
70
42
|
email: ricardo.trindade743@gmail.com
|
71
43
|
executables:
|
@@ -76,30 +48,43 @@ files:
|
|
76
48
|
- ".gitignore"
|
77
49
|
- ".rspec"
|
78
50
|
- ".rubocop_todo.yml"
|
51
|
+
- ".travis.yml"
|
79
52
|
- Gemfile
|
80
53
|
- Gemfile.lock
|
81
54
|
- README.md
|
55
|
+
- Rakefile
|
82
56
|
- bin/evva
|
83
57
|
- changelog.md
|
84
58
|
- evva.gemspec
|
85
|
-
- evva_config.yml
|
86
59
|
- lib/evva.rb
|
60
|
+
- lib/evva/analytics_enum.rb
|
61
|
+
- lib/evva/analytics_event.rb
|
62
|
+
- lib/evva/analytics_property.rb
|
87
63
|
- lib/evva/android_generator.rb
|
88
64
|
- lib/evva/config.rb
|
89
65
|
- lib/evva/file_reader.rb
|
90
66
|
- lib/evva/google_sheet.rb
|
91
67
|
- lib/evva/logger.rb
|
92
|
-
- lib/evva/mixpanel_enum.rb
|
93
|
-
- lib/evva/mixpanel_event.rb
|
94
68
|
- lib/evva/object_extension.rb
|
95
69
|
- lib/evva/swift_generator.rb
|
70
|
+
- lib/evva/templates/kotlin/base.kt
|
71
|
+
- lib/evva/templates/kotlin/destinations.kt
|
72
|
+
- lib/evva/templates/kotlin/event_enum.kt
|
73
|
+
- lib/evva/templates/kotlin/events.kt
|
74
|
+
- lib/evva/templates/kotlin/people_properties.kt
|
75
|
+
- lib/evva/templates/kotlin/people_properties_enum.kt
|
76
|
+
- lib/evva/templates/kotlin/special_property_enums.kt
|
77
|
+
- lib/evva/templates/swift/base.swift
|
78
|
+
- lib/evva/templates/swift/destinations.swift
|
79
|
+
- lib/evva/templates/swift/events.swift
|
80
|
+
- lib/evva/templates/swift/people_properties.swift
|
81
|
+
- lib/evva/templates/swift/special_property_enums.swift
|
96
82
|
- lib/evva/version.rb
|
97
83
|
- rubocop.yml
|
98
84
|
- spec/evva_spec.rb
|
99
|
-
- spec/fixtures/sample_public_enums.
|
100
|
-
- spec/fixtures/
|
101
|
-
- spec/fixtures/sample_public_people_properties.
|
102
|
-
- spec/fixtures/sample_public_sheet.html
|
85
|
+
- spec/fixtures/sample_public_enums.csv
|
86
|
+
- spec/fixtures/sample_public_events.csv
|
87
|
+
- spec/fixtures/sample_public_people_properties.csv
|
103
88
|
- spec/fixtures/test.yml
|
104
89
|
- spec/lib/evva/android_generator_spec.rb
|
105
90
|
- spec/lib/evva/config_spec.rb
|
@@ -127,8 +112,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
127
112
|
- !ruby/object:Gem::Version
|
128
113
|
version: '0'
|
129
114
|
requirements: []
|
130
|
-
|
131
|
-
rubygems_version: 2.5.2
|
115
|
+
rubygems_version: 3.1.6
|
132
116
|
signing_key:
|
133
117
|
specification_version: 4
|
134
118
|
summary: An event generating service
|
data/evva_config.yml
DELETED
@@ -1,11 +0,0 @@
|
|
1
|
-
type: iOS
|
2
|
-
|
3
|
-
data_source:
|
4
|
-
type: google_sheet
|
5
|
-
sheet_id: 1LaJd68os3g_GFlerogC64grNIlXb2iukMznOvdml7A4
|
6
|
-
|
7
|
-
out_path: analytics
|
8
|
-
event_file_name: MixpanelAnalytics
|
9
|
-
event_enum_file_name: MixpanelEvent
|
10
|
-
people_file_name: MixpanelProperties
|
11
|
-
package_name: com.hole19golf.hole19.analytics
|
data/lib/evva/mixpanel_event.rb
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
<?xml version='1.0' encoding='UTF-8'?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:gsx='http://schemas.google.com/spreadsheets/2006/extended'><id>https://spreadsheets.google.com/feeds/list/1LaJd68os3g_GFlerogC64grNIlXb2iukMznOvdml7A4/osju1vh/public/full</id><updated>2017-08-22T10:31:52.161Z</updated><category scheme='http://schemas.google.com/spreadsheets/2006' term='http://schemas.google.com/spreadsheets/2006#list'/><title type='text'>Enums</title><link rel='alternate' type='application/atom+xml' href='https://docs.google.com/a/hole19golf.com/spreadsheets/d/1LaJd68os3g_GFlerogC64grNIlXb2iukMznOvdml7A4/pubhtml'/><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='https://spreadsheets.google.com/feeds/list/1LaJd68os3g_GFlerogC64grNIlXb2iukMznOvdml7A4/osju1vh/public/full'/><link rel='http://schemas.google.com/g/2005#post' type='application/atom+xml' href='https://spreadsheets.google.com/feeds/list/1LaJd68os3g_GFlerogC64grNIlXb2iukMznOvdml7A4/osju1vh/public/full'/><link rel='self' type='application/atom+xml' href='https://spreadsheets.google.com/feeds/list/1LaJd68os3g_GFlerogC64grNIlXb2iukMznOvdml7A4/osju1vh/public/full'/><author><name>ricardo.trindade</name><email>ricardo.trindade@hole19golf.com</email></author><openSearch:totalResults>2</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><entry><id>https://spreadsheets.google.com/feeds/list/1LaJd68os3g_GFlerogC64grNIlXb2iukMznOvdml7A4/osju1vh/public/full/cokwr</id><updated>2017-08-22T10:31:52.161Z</updated><category scheme='http://schemas.google.com/spreadsheets/2006' term='http://schemas.google.com/spreadsheets/2006#list'/><title type='text'>PageViewSourceScreen</title><content type='text'>possiblevalues: course_discovery,synced_courses,nearby,deal</content><link rel='self' type='application/atom+xml' href='https://spreadsheets.google.com/feeds/list/1LaJd68os3g_GFlerogC64grNIlXb2iukMznOvdml7A4/osju1vh/public/full/cokwr'/><gsx:enumname>PageViewSourceScreen</gsx:enumname><gsx:possiblevalues>course_discovery,synced_courses,nearby,deal</gsx:possiblevalues></entry><entry><id>https://spreadsheets.google.com/feeds/list/1LaJd68os3g_GFlerogC64grNIlXb2iukMznOvdml7A4/osju1vh/public/full/cpzh4</id><updated>2017-08-22T10:31:52.161Z</updated><category scheme='http://schemas.google.com/spreadsheets/2006' term='http://schemas.google.com/spreadsheets/2006#list'/><title type='text'>PremiumClickBuy</title><content type='text'>possiblevalues: notes,hi_res_maps,whatever</content><link rel='self' type='application/atom+xml' href='https://spreadsheets.google.com/feeds/list/1LaJd68os3g_GFlerogC64grNIlXb2iukMznOvdml7A4/osju1vh/public/full/cpzh4'/><gsx:enumname>PremiumClickBuy</gsx:enumname><gsx:possiblevalues>notes,hi_res_maps,whatever</gsx:possiblevalues></entry></feed>
|
@@ -1 +0,0 @@
|
|
1
|
-
<?xml version='1.0' encoding='UTF-8'?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:gs='http://schemas.google.com/spreadsheets/2006'><id>https://spreadsheets.google.com/feeds/worksheets/abcdefgh/public/full</id><updated>2017-08-22T10:31:52.161Z</updated><category scheme='http://schemas.google.com/spreadsheets/2006' term='http://schemas.google.com/spreadsheets/2006#worksheet'/><title type='text'>TestingEvva</title><link rel='alternate' type='application/atom+xml' href='https://docs.google.com/a/hole19golf.com/spreadsheets/d/abc1234567890/pubhtml'/><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='https://spreadsheets.google.com/feeds/worksheets/abc1234567890/public/full'/><link rel='http://schemas.google.com/g/2005#post' type='application/atom+xml' href='https://spreadsheets.google.com/feeds/worksheets/abc1234567890/public/full'/><link rel='self' type='application/atom+xml' href='https://spreadsheets.google.com/feeds/worksheets/abc1234567890/public/full'/><author><name>ricardo.trindade</name><email>ricardo.trindade@hole19golf.com</email></author><openSearch:totalResults>3</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><entry><id>https://spreadsheets.google.com/feeds/worksheets/abc1234567890/public/full/od6</id><updated>2017-08-22T10:31:52.161Z</updated><category scheme='http://schemas.google.com/spreadsheets/2006' term='http://schemas.google.com/spreadsheets/2006#worksheet'/><title type='text'>Events</title><content type='text'>Events</content><link rel='http://schemas.google.com/spreadsheets/2006#listfeed' type='application/atom+xml' href='https://spreadsheets.google.com/feeds/list/abc1234567890/od6/public/full'/><link rel='http://schemas.google.com/spreadsheets/2006#cellsfeed' type='application/atom+xml' href='https://spreadsheets.google.com/feeds/cells/abc1234567890/od6/public/full'/><link rel='http://schemas.google.com/visualization/2008#visualizationApi' type='application/atom+xml' href='https://docs.google.com/a/hole19golf.com/spreadsheets/d/abc1234567890/gviz/tq?gid=0&pub=1'/><link rel='http://schemas.google.com/spreadsheets/2006#exportcsv' type='text/csv' href='https://docs.google.com/a/hole19golf.com/spreadsheets/d/abc1234567890/export?gid=0&format=csv'/><link rel='self' type='application/atom+xml' href='https://spreadsheets.google.com/feeds/worksheets/abc1234567890/public/full/od6'/><gs:colCount>26</gs:colCount><gs:rowCount>1000</gs:rowCount></entry><entry><id>https://spreadsheets.google.com/feeds/worksheets/abc1234567890/public/full/ojyi830</id><updated>2017-08-22T10:31:52.161Z</updated><category scheme='http://schemas.google.com/spreadsheets/2006' term='http://schemas.google.com/spreadsheets/2006#worksheet'/><title type='text'>PeopleProperties</title><content type='text'>PeopleProperties</content><link rel='http://schemas.google.com/spreadsheets/2006#listfeed' type='application/atom+xml' href='https://spreadsheets.google.com/feeds/list/abc1234567890/ojyi830/public/full'/><link rel='http://schemas.google.com/spreadsheets/2006#cellsfeed' type='application/atom+xml' href='https://spreadsheets.google.com/feeds/cells/abc1234567890/ojyi830/public/full'/><link rel='http://schemas.google.com/visualization/2008#visualizationApi' type='application/atom+xml' href='https://docs.google.com/a/hole19golf.com/spreadsheets/d/abc1234567890/gviz/tq?gid=1206814390&pub=1'/><link rel='http://schemas.google.com/spreadsheets/2006#exportcsv' type='text/csv' href='https://docs.google.com/a/hole19golf.com/spreadsheets/d/abc1234567890/export?gid=1206814390&format=csv'/><link rel='self' type='application/atom+xml' href='https://spreadsheets.google.com/feeds/worksheets/abc1234567890/public/full/ojyi830'/><gs:colCount>26</gs:colCount><gs:rowCount>1000</gs:rowCount></entry><entry><id>https://spreadsheets.google.com/feeds/worksheets/abc1234567890/public/full/osju1vh</id><updated>2017-08-22T10:31:52.161Z</updated><category scheme='http://schemas.google.com/spreadsheets/2006' term='http://schemas.google.com/spreadsheets/2006#worksheet'/><title type='text'>Enums</title><content type='text'>Enums</content><link rel='http://schemas.google.com/spreadsheets/2006#listfeed' type='application/atom+xml' href='https://spreadsheets.google.com/feeds/list/abc1234567890/osju1vh/public/full'/><link rel='http://schemas.google.com/spreadsheets/2006#cellsfeed' type='application/atom+xml' href='https://spreadsheets.google.com/feeds/cells/abc1234567890/osju1vh/public/full'/><link rel='http://schemas.google.com/visualization/2008#visualizationApi' type='application/atom+xml' href='https://docs.google.com/a/hole19golf.com/spreadsheets/d/abc1234567890/gviz/tq?gid=1726367271&pub=1'/><link rel='http://schemas.google.com/spreadsheets/2006#exportcsv' type='text/csv' href='https://docs.google.com/a/hole19golf.com/spreadsheets/d/abc1234567890/export?gid=1726367271&format=csv'/><link rel='self' type='application/atom+xml' href='https://spreadsheets.google.com/feeds/worksheets/abc1234567890/public/full/osju1vh'/><gs:colCount>26</gs:colCount><gs:rowCount>1000</gs:rowCount></entry></feed>
|
@@ -1 +0,0 @@
|
|
1
|
-
<?xml version='1.0' encoding='UTF-8'?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:gsx='http://schemas.google.com/spreadsheets/2006/extended'><id>https://spreadsheets.google.com/feeds/list/1LaJd68os3g_GFlerogC64grNIlXb2iukMznOvdml7A4/ojyi830/public/full</id><updated>2017-09-06T13:27:41.023Z</updated><category scheme='http://schemas.google.com/spreadsheets/2006' term='http://schemas.google.com/spreadsheets/2006#list'/><title type='text'>PeopleProperties</title><link rel='alternate' type='application/atom+xml' href='https://docs.google.com/a/hole19golf.com/spreadsheets/d/1LaJd68os3g_GFlerogC64grNIlXb2iukMznOvdml7A4/pubhtml'/><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='https://spreadsheets.google.com/feeds/list/1LaJd68os3g_GFlerogC64grNIlXb2iukMznOvdml7A4/ojyi830/public/full'/><link rel='http://schemas.google.com/g/2005#post' type='application/atom+xml' href='https://spreadsheets.google.com/feeds/list/1LaJd68os3g_GFlerogC64grNIlXb2iukMznOvdml7A4/ojyi830/public/full'/><link rel='self' type='application/atom+xml' href='https://spreadsheets.google.com/feeds/list/1LaJd68os3g_GFlerogC64grNIlXb2iukMznOvdml7A4/ojyi830/public/full'/><author><name>ricardo.trindade</name><email>ricardo.trindade@hole19golf.com</email></author><openSearch:totalResults>2</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><entry><id>https://spreadsheets.google.com/feeds/list/1LaJd68os3g_GFlerogC64grNIlXb2iukMznOvdml7A4/ojyi830/public/full/cokwr</id><updated>2017-09-06T13:27:41.023Z</updated><category scheme='http://schemas.google.com/spreadsheets/2006' term='http://schemas.google.com/spreadsheets/2006#list'/><title type='text'>roundsWithWear</title><content type='text'>propertyname: rounds_with_wear</content><link rel='self' type='application/atom+xml' href='https://spreadsheets.google.com/feeds/list/1LaJd68os3g_GFlerogC64grNIlXb2iukMznOvdml7A4/ojyi830/public/full/cokwr'/><gsx:properties>roundsWithWear</gsx:properties><gsx:propertyname>rounds_with_wear</gsx:propertyname></entry><entry><id>https://spreadsheets.google.com/feeds/list/1LaJd68os3g_GFlerogC64grNIlXb2iukMznOvdml7A4/ojyi830/public/full/cpzh4</id><updated>2017-09-06T13:27:41.023Z</updated><category scheme='http://schemas.google.com/spreadsheets/2006' term='http://schemas.google.com/spreadsheets/2006#list'/><title type='text'>totalFriends</title><content type='text'>propertyname: total_friends</content><link rel='self' type='application/atom+xml' href='https://spreadsheets.google.com/feeds/list/1LaJd68os3g_GFlerogC64grNIlXb2iukMznOvdml7A4/ojyi830/public/full/cpzh4'/><gsx:properties>totalFriends</gsx:properties><gsx:propertyname>total_friends</gsx:propertyname></entry></feed>
|
@@ -1 +0,0 @@
|
|
1
|
-
<?xml version='1.0' encoding='UTF-8'?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:gsx='http://schemas.google.com/spreadsheets/2006/extended'><id>https://spreadsheets.google.com/feeds/list/abc1234567890/od6/public/full</id><updated>2017-08-22T10:31:52.161Z</updated><category scheme='http://schemas.google.com/spreadsheets/2006' term='http://schemas.google.com/spreadsheets/2006#list'/><title type='text'>Events</title><link rel='alternate' type='application/atom+xml' href='https://docs.google.com/a/hole19golf.com/spreadsheets/d/abc1234567890/pubhtml'/><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='https://spreadsheets.google.com/feeds/list/abc1234567890/od6/public/full'/><link rel='http://schemas.google.com/g/2005#post' type='application/atom+xml' href='https://spreadsheets.google.com/feeds/list/abc1234567890/od6/public/full'/><link rel='self' type='application/atom+xml' href='https://spreadsheets.google.com/feeds/list/abc1234567890/od6/public/full'/><author><name>ricardo.trindade</name><email>ricardo.trindade@hole19golf.com</email></author><openSearch:totalResults>3</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><entry><id>https://spreadsheets.google.com/feeds/list/abc1234567890/od6/public/full/cokwr</id><updated>2017-08-22T10:31:52.161Z</updated><category scheme='http://schemas.google.com/spreadsheets/2006' term='http://schemas.google.com/spreadsheets/2006#list'/><title type='text'>trackCpPageView</title><content type='text'>eventname: cp_page_view, eventproperties: course_id:Long,course_name:String</content><link rel='self' type='application/atom+xml' href='https://spreadsheets.google.com/feeds/list/abc1234567890/od6/public/full/cokwr'/><gsx:functionname>trackCpPageView</gsx:functionname><gsx:eventname>cp_page_view</gsx:eventname><gsx:eventproperties>course_id:Long,course_name:String</gsx:eventproperties></entry><entry><id>https://spreadsheets.google.com/feeds/list/abc1234567890/od6/public/full/cpzh4</id><updated>2017-08-22T10:31:52.161Z</updated><category scheme='http://schemas.google.com/spreadsheets/2006' term='http://schemas.google.com/spreadsheets/2006#list'/><title type='text'>trackNavFeedTap</title><content type='text'>eventname: nav_feed_tap</content><link rel='self' type='application/atom+xml' href='https://spreadsheets.google.com/feeds/list/abc1234567890/od6/public/full/cpzh4'/><gsx:functionname>trackNavFeedTap</gsx:functionname><gsx:eventname>nav_feed_tap</gsx:eventname><gsx:eventproperties></gsx:eventproperties></entry><entry><id>https://spreadsheets.google.com/feeds/list/abc1234567890/od6/public/full/cre1l</id><updated>2017-08-22T10:31:52.161Z</updated><category scheme='http://schemas.google.com/spreadsheets/2006' term='http://schemas.google.com/spreadsheets/2006#list'/><title type='text'>trackCpViewScorecard</title><content type='text'>eventname: cp_view_scorecard, eventproperties: course_id:Long,course_name:String</content><link rel='self' type='application/atom+xml' href='https://spreadsheets.google.com/feeds/list/abc1234567890/od6/public/full/cre1l'/><gsx:functionname>trackCpViewScorecard</gsx:functionname><gsx:eventname>cp_view_scorecard</gsx:eventname><gsx:eventproperties>course_id:Long,course_name:String</gsx:eventproperties></entry></feed>
|