evva 0.4.4 → 0.5.0

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.
@@ -3,45 +3,45 @@ describe Evva::Config do
3
3
 
4
4
  let(:hash) do
5
5
  {
6
- type: 'EvvaOS',
6
+ type: "EvvaOS",
7
7
  data_source: {
8
- type: 'google_sheet',
9
- events_url: 'https://events.csv',
10
- people_properties_url: 'https://people_properties.csv',
11
- enum_classes_url: 'https://enum_classes.csv',
8
+ type: "google_sheet",
9
+ events_url: "https://events.csv",
10
+ people_properties_url: "https://people_properties.csv",
11
+ enum_classes_url: "https://enum_classes.csv",
12
12
  },
13
- out_path: 'clear/path/to/event',
14
- event_file_name: 'event/file/name',
15
- event_enum_file_name: 'event/enum/file',
16
- people_file_name: 'people/file/name',
17
- people_enum_file_name: 'people/enum/file/name',
18
- destinations_file_name: 'destinations/file/name',
19
- package_name: 'com.package.name.analytics',
13
+ out_path: "clear/path/to/event",
14
+ event_file_name: "event/file/name",
15
+ event_enum_file_name: "event/enum/file",
16
+ people_file_name: "people/file/name",
17
+ people_enum_file_name: "people/enum/file/name",
18
+ destinations_file_name: "destinations/file/name",
19
+ package_name: "com.package.name.analytics",
20
20
  }
21
21
  end
22
22
 
23
- context 'when hash is missing params' do
23
+ context "when hash is missing params" do
24
24
  before { hash.delete(:type) }
25
25
  it { expect { config }.to raise_error /missing keys/i }
26
26
  end
27
27
 
28
28
  its(:to_h) { should eq(hash) }
29
- its(:type) { should eq('EvvaOS') }
30
- its(:out_path) { should eq('clear/path/to/event') }
31
- its(:event_file_name) { should eq('event/file/name') }
32
- its(:event_enum_file_name) { should eq 'event/enum/file' }
33
- its(:people_file_name) { should eq('people/file/name') }
34
- its(:people_enum_file_name) { should eq('people/enum/file/name') }
35
- its(:destinations_file_name) { should eq 'destinations/file/name' }
36
- its(:package_name) { should eq 'com.package.name.analytics' }
29
+ its(:type) { should eq("EvvaOS") }
30
+ its(:out_path) { should eq("clear/path/to/event") }
31
+ its(:event_file_name) { should eq("event/file/name") }
32
+ its(:event_enum_file_name) { should eq "event/enum/file" }
33
+ its(:people_file_name) { should eq("people/file/name") }
34
+ its(:people_enum_file_name) { should eq("people/enum/file/name") }
35
+ its(:destinations_file_name) { should eq "destinations/file/name" }
36
+ its(:package_name) { should eq "com.package.name.analytics" }
37
37
 
38
- describe '#data_source' do
38
+ describe "#data_source" do
39
39
  subject(:data_source) { config.data_source }
40
40
 
41
- it { should eq(type: 'google_sheet', events_url: 'https://events.csv', people_properties_url: 'https://people_properties.csv', enum_classes_url: 'https://enum_classes.csv') }
41
+ it { should eq(type: "google_sheet", events_url: "https://events.csv", people_properties_url: "https://people_properties.csv", enum_classes_url: "https://enum_classes.csv") }
42
42
 
43
- context 'when given an unknown type data source' do
44
- before { hash[:data_source] = { type: 'i_dunno' } }
43
+ context "when given an unknown type data source" do
44
+ before { hash[:data_source] = { type: "i_dunno" } }
45
45
  it { expect { config }.to raise_error /unknown data source type 'i_dunno'/i }
46
46
  end
47
47
  end
@@ -4,9 +4,9 @@ describe Evva::GoogleSheet do
4
4
  let(:events_sheet) { "https://wtvr1" }
5
5
  let(:people_sheet) { "https://wtvr2" }
6
6
  let(:enum_sheet) { "https://wtvr3" }
7
- let(:events_file) { File.read('spec/fixtures/sample_public_events.csv') }
8
- let(:people_file) { File.read('spec/fixtures/sample_public_people_properties.csv') }
9
- let(:enum_file) { File.read('spec/fixtures/sample_public_enums.csv') }
7
+ let(:events_file) { File.read("spec/fixtures/sample_public_events.csv") }
8
+ let(:people_file) { File.read("spec/fixtures/sample_public_people_properties.csv") }
9
+ let(:enum_file) { File.read("spec/fixtures/sample_public_enums.csv") }
10
10
 
11
11
  before do
12
12
  stub_request(:get, events_sheet).to_return(status: 200, body: events_file, headers: {})
@@ -14,18 +14,18 @@ describe Evva::GoogleSheet do
14
14
  stub_request(:get, enum_sheet).to_return(status: 200, body: enum_file, headers: {})
15
15
  end
16
16
 
17
- describe '#events' do
17
+ describe "#events" do
18
18
  subject(:events) { sheet.events }
19
19
 
20
20
  it do
21
21
  expect { events }.not_to raise_error
22
22
  end
23
23
 
24
- it 'returns an array with the corresponding events' do
24
+ it "returns an array with the corresponding events" do
25
25
  expected = [
26
- Evva::AnalyticsEvent.new('cp_page_view', { course_id: 'Long', course_name: 'String' }, ['firebase', 'custom destination']),
27
- Evva::AnalyticsEvent.new('nav_feed_tap', {}, []),
28
- Evva::AnalyticsEvent.new('cp_view_scorecard', { course_id: 'Long', course_name: 'String' }, ['custom destination']),
26
+ Evva::AnalyticsEvent.new("cp_page_view", { course_id: "Long", course_name: "String" }, ["firebase", "custom destination"]),
27
+ Evva::AnalyticsEvent.new("nav_feed_tap", {}, []),
28
+ Evva::AnalyticsEvent.new("cp_view_scorecard", { course_id: "Long", course_name: "String" }, ["custom destination"]),
29
29
  ]
30
30
  expect(events).to eq(expected)
31
31
  end
@@ -47,48 +47,48 @@ describe Evva::GoogleSheet do
47
47
  end
48
48
  end
49
49
 
50
- describe '#people_properties' do
50
+ describe "#people_properties" do
51
51
  subject(:people_properties) { sheet.people_properties }
52
52
 
53
53
  it do
54
54
  expect { people_properties }.not_to raise_error
55
55
  end
56
56
 
57
- it 'returns an array with the corresponding events' do
57
+ it "returns an array with the corresponding events" do
58
58
  expect(people_properties).to eq [
59
- Evva::AnalyticsProperty.new('rounds_with_wear', 'String', ['firebase', 'custom destination']),
60
- Evva::AnalyticsProperty.new('total_friends', 'Int', []),
61
- Evva::AnalyticsProperty.new('wearable_platform', 'WearableAppPlatform', ['firebase']),
59
+ Evva::AnalyticsProperty.new("rounds_with_wear", "String", ["firebase", "custom destination"]),
60
+ Evva::AnalyticsProperty.new("total_friends", "Int", []),
61
+ Evva::AnalyticsProperty.new("wearable_platform", "WearableAppPlatform", ["firebase"]),
62
62
  ]
63
63
  end
64
64
  end
65
65
 
66
- describe '#enum_classes' do
66
+ describe "#enum_classes" do
67
67
  subject(:enum_classes) { sheet.enum_classes }
68
68
 
69
69
  it do
70
70
  expect { enum_classes }.not_to raise_error
71
71
  end
72
72
 
73
- it 'returns an array with the corresponding events' do
73
+ it "returns an array with the corresponding events" do
74
74
  expect(enum_classes).to eq [
75
- Evva::AnalyticsEnum.new('PageViewSourceScreen', ['course_discovery','synced_courses','nearby','deal']),
76
- Evva::AnalyticsEnum.new('PremiumClickBuy', ['notes','hi_res_maps','whatever'])
75
+ Evva::AnalyticsEnum.new("PageViewSourceScreen", ["course_discovery","synced_courses","nearby","deal"]),
76
+ Evva::AnalyticsEnum.new("PremiumClickBuy", ["notes","hi_res_maps","whatever"])
77
77
  ]
78
78
  end
79
79
  end
80
80
 
81
- describe '#destinations' do
81
+ describe "#destinations" do
82
82
  subject(:destinations) { sheet.destinations }
83
83
 
84
84
  it do
85
85
  expect { destinations }.not_to raise_error
86
86
  end
87
87
 
88
- it 'returns an array with the corresponding events' do
88
+ it "returns an array with the corresponding events" do
89
89
  expect(destinations).to eq [
90
- 'firebase',
91
- 'custom destination',
90
+ "firebase",
91
+ "custom destination",
92
92
  ]
93
93
  end
94
94
  end
@@ -1,16 +1,16 @@
1
- describe Evva::AndroidGenerator do
1
+ describe Evva::KotlinGenerator do
2
2
  let(:generator) { described_class.new("com.hole19golf.hole19.analytics") }
3
3
 
4
- describe '#events' do
4
+ describe "#events" do
5
5
  subject { generator.events(events, "AnalyticsEvent", "AnalyticsEvents", "AnalyticsDestinations") }
6
6
 
7
7
  let(:events) { [
8
- Evva::AnalyticsEvent.new('cp_page_view', {}, []),
9
- Evva::AnalyticsEvent.new('cp_page_view_2', {}, ["firebase"]),
10
- Evva::AnalyticsEvent.new('cp_page_view_a', { course_id: 'Long', course_name: 'String' }, ["firebase", "custom destination"]),
11
- Evva::AnalyticsEvent.new('cp_page_view_b', { course_id: 'Long', course_name: 'String', from_screen: 'CourseProfileSource' }, ["firebase"]),
12
- Evva::AnalyticsEvent.new('cp_page_view_c', { course_id: 'Long', course_name: 'String', from_screen: 'CourseProfileSource?' }, []),
13
- Evva::AnalyticsEvent.new('cp_page_view_d', { course_id: 'Long?', course_name: 'String', viewed_at: 'Date' }, []),
8
+ Evva::AnalyticsEvent.new("cp_page_view", {}, []),
9
+ Evva::AnalyticsEvent.new("cp_page_view_2", {}, ["firebase"]),
10
+ Evva::AnalyticsEvent.new("cp_page_view_a", { course_id: "Long", course_name: "String" }, ["firebase", "custom destination"]),
11
+ Evva::AnalyticsEvent.new("cp_page_view_b", { course_id: "Long", course_name: "String", from_screen: "CourseProfileSource" }, ["firebase"]),
12
+ Evva::AnalyticsEvent.new("cp_page_view_c", { course_id: "Long", course_name: "String", from_screen: "CourseProfileSource?" }, []),
13
+ Evva::AnalyticsEvent.new("cp_page_view_d", { course_id: "Long?", course_name: "String", viewed_at: "Date" }, []),
14
14
  ] }
15
15
 
16
16
  let(:expected) {
@@ -28,11 +28,11 @@ sealed class AnalyticsEvent(
28
28
  ) {
29
29
  val name = event.key
30
30
 
31
- object CpPageView : AnalyticsEvent(
31
+ data object CpPageView : AnalyticsEvent(
32
32
  event = AnalyticsEvents.CP_PAGE_VIEW,
33
33
  )
34
34
 
35
- object CpPageView2 : AnalyticsEvent(
35
+ data object CpPageView2 : AnalyticsEvent(
36
36
  event = AnalyticsEvents.CP_PAGE_VIEW_2,
37
37
  destinations = arrayOf(
38
38
  AnalyticsDestinations.FIREBASE
@@ -102,11 +102,11 @@ Kotlin
102
102
  it { should eq expected }
103
103
  end
104
104
 
105
- describe '#special_property_enums' do
105
+ describe "#special_property_enums" do
106
106
  subject { generator.special_property_enums(enums) }
107
107
  let(:enums) { [
108
- Evva::AnalyticsEnum.new('CourseProfileSource', ['course_discovery', 'synced_courses']),
109
- Evva::AnalyticsEnum.new('PremiumFrom', ['Course Profile', 'Round Setup']),
108
+ Evva::AnalyticsEnum.new("CourseProfileSource", ["course_discovery", "synced_courses"]),
109
+ Evva::AnalyticsEnum.new("PremiumFrom", ["Course Profile", "Round Setup"]),
110
110
  ] }
111
111
  let(:expected) {
112
112
  <<-Kotlin
@@ -130,12 +130,12 @@ Kotlin
130
130
  it { should eq expected }
131
131
  end
132
132
 
133
- describe '#event_enum' do
134
- subject { generator.event_enum(event_bundle, 'AnalyticsEvents') }
133
+ describe "#event_enum" do
134
+ subject { generator.event_enum(event_bundle, "AnalyticsEvents") }
135
135
  let(:event_bundle) { [
136
- Evva::AnalyticsEvent.new('nav_feed_tap', {}, []),
137
- Evva::AnalyticsEvent.new('nav_performance_tap', {}, []),
138
- ] }
136
+ Evva::AnalyticsEvent.new("nav_feed_tap", {}, []),
137
+ Evva::AnalyticsEvent.new("nav_performance_tap", {}, []),
138
+ ] }
139
139
  let(:expected) {
140
140
  <<-Kotlin
141
141
  package com.hole19golf.hole19.analytics
@@ -153,12 +153,12 @@ Kotlin
153
153
  it { should eq expected }
154
154
  end
155
155
 
156
- describe '#people_properties' do
157
- subject { generator.people_properties(people_bundle, 'AnalyticsProperty', 'AnalyticsProperties', 'AnalyticsDestinations') }
156
+ describe "#people_properties" do
157
+ subject { generator.people_properties(people_bundle, "AnalyticsProperty", "AnalyticsProperties", "AnalyticsDestinations") }
158
158
  let(:people_bundle) { [
159
- Evva::AnalyticsProperty.new('rounds_with_wear', 'String', []),
160
- Evva::AnalyticsProperty.new('last_active_at', 'Date', []),
161
- Evva::AnalyticsProperty.new('wear_platform', 'WearableAppPlatform', ["firebase", "custom destination"]),
159
+ Evva::AnalyticsProperty.new("rounds_with_wear", "String", []),
160
+ Evva::AnalyticsProperty.new("last_active_at", "Date", []),
161
+ Evva::AnalyticsProperty.new("wear_platform", "WearableAppPlatform", ["firebase", "custom destination"]),
162
162
  ] }
163
163
  let(:expected) {
164
164
  <<-Kotlin
@@ -206,11 +206,11 @@ Kotlin
206
206
  it { should eq expected }
207
207
  end
208
208
 
209
- describe '#people_properties_enum' do
210
- subject { generator.people_properties_enum(people_bundle, 'AnalyticsProperties') }
209
+ describe "#people_properties_enum" do
210
+ subject { generator.people_properties_enum(people_bundle, "AnalyticsProperties") }
211
211
  let(:people_bundle) { [
212
- Evva::AnalyticsProperty.new('rounds_with_wear', 'String', ["firebase"]),
213
- Evva::AnalyticsProperty.new('wear_platform', 'WearableAppPlatform', ["firebase", "custom destination"]),
212
+ Evva::AnalyticsProperty.new("rounds_with_wear", "String", ["firebase"]),
213
+ Evva::AnalyticsProperty.new("wear_platform", "WearableAppPlatform", ["firebase", "custom destination"]),
214
214
  ] }
215
215
  let(:expected) {
216
216
  <<-Kotlin
@@ -229,11 +229,11 @@ Kotlin
229
229
  it { should eq expected }
230
230
  end
231
231
 
232
- describe '#destinations' do
233
- subject { generator.destinations(destinations_bundle, 'AnalyticsDestinations') }
232
+ describe "#destinations" do
233
+ subject { generator.destinations(destinations_bundle, "AnalyticsDestinations") }
234
234
  let(:destinations_bundle) { [
235
- 'firebase',
236
- 'whatever you want really'
235
+ "firebase",
236
+ "whatever you want really"
237
237
  ] }
238
238
  let(:expected) {
239
239
  <<-Kotlin
@@ -4,30 +4,30 @@ describe Evva::Logger do
4
4
  let(:warn) { summary[:warn] }
5
5
  let(:error) { summary[:error] }
6
6
 
7
- context 'when logging to info' do
8
- before { Evva::Logger.info 'msg' }
7
+ context "when logging to info" do
8
+ before { Evva::Logger.info "msg" }
9
9
 
10
- it 'returns the expected totals' do
10
+ it "returns the expected totals" do
11
11
  expect(info).to eq 1
12
12
  expect(warn).to eq 0
13
13
  expect(error).to eq 0
14
14
  end
15
15
  end
16
16
 
17
- context 'when logging to warn' do
18
- before { Evva::Logger.warn 'msg' }
17
+ context "when logging to warn" do
18
+ before { Evva::Logger.warn "msg" }
19
19
 
20
- it 'returns the expected totals' do
20
+ it "returns the expected totals" do
21
21
  expect(info).to eq 0
22
22
  expect(warn).to eq 1
23
23
  expect(error).to eq 0
24
24
  end
25
25
  end
26
26
 
27
- context 'when logging to error' do
28
- before { Evva::Logger.error 'msg' }
27
+ context "when logging to error" do
28
+ before { Evva::Logger.error "msg" }
29
29
 
30
- it 'returns the expected totals' do
30
+ it "returns the expected totals" do
31
31
  expect(info).to eq 0
32
32
  expect(warn).to eq 0
33
33
  expect(error).to eq 1
@@ -1,91 +1,91 @@
1
1
  describe Object do
2
- describe '#deep_symbolize' do
2
+ describe "#deep_symbolize" do
3
3
  subject { obj.deep_symbolize }
4
4
 
5
- context 'when object is an Hash' do
6
- let(:obj) { { 'key1' => 'value1', key2: 'value2' } }
7
- it { should eq(key1: 'value1', key2: 'value2') }
5
+ context "when object is an Hash" do
6
+ let(:obj) { { "key1" => "value1", key2: "value2" } }
7
+ it { should eq(key1: "value1", key2: "value2") }
8
8
 
9
- context 'with inner Hashes' do
10
- before { obj['key2'] = { 'key3' => { 'key4' => 'value4' } } }
11
- it { should eq(key1: 'value1', key2: { key3: { key4: 'value4' } }) }
9
+ context "with inner Hashes" do
10
+ before { obj["key2"] = { "key3" => { "key4" => "value4" } } }
11
+ it { should eq(key1: "value1", key2: { key3: { key4: "value4" } }) }
12
12
  end
13
13
  end
14
14
 
15
- context 'when object is an Array' do
16
- let(:obj) { ['value1'] }
15
+ context "when object is an Array" do
16
+ let(:obj) { ["value1"] }
17
17
  it { should eq obj }
18
18
 
19
- context 'with inner Hashes' do
20
- let(:obj) { [{ 'key1' => 'value1' }, { 'key2' => 'value2' }] }
21
- it { should eq([{ key1: 'value1' }, { key2: 'value2' }]) }
19
+ context "with inner Hashes" do
20
+ let(:obj) { [{ "key1" => "value1" }, { "key2" => "value2" }] }
21
+ it { should eq([{ key1: "value1" }, { key2: "value2" }]) }
22
22
  end
23
23
  end
24
24
 
25
- context 'when object is something else' do
26
- let(:obj) { 'value1' }
25
+ context "when object is something else" do
26
+ let(:obj) { "value1" }
27
27
  it { should eq obj }
28
28
  end
29
29
  end
30
30
 
31
- describe '#validate_structure!' do
31
+ describe "#validate_structure!" do
32
32
  subject { obj.validate_structure!(structure) }
33
33
 
34
- context 'when object type differs of the structure type' do
35
- let(:obj) { 'a string' }
34
+ context "when object type differs of the structure type" do
35
+ let(:obj) { "a string" }
36
36
  let(:structure) { { type: Integer } }
37
37
  it { expect { subject }.to raise_error /expected Integer, got String/i }
38
38
  end
39
39
 
40
- context 'when object is a Nil' do
40
+ context "when object is a Nil" do
41
41
  let(:obj) { nil }
42
42
  let(:structure) { { type: Integer } }
43
43
  it { expect { subject }.to raise_error /expected Integer, got NilClass/i }
44
44
 
45
- context 'but is also optional' do
45
+ context "but is also optional" do
46
46
  before { structure[:optional] = true }
47
47
  it { expect { subject }.not_to raise_error }
48
48
  end
49
49
  end
50
50
 
51
- context 'when object is an Array' do
51
+ context "when object is an Array" do
52
52
  let(:obj) { %w[elem1 elem2] }
53
53
  let(:structure) { { type: Array } }
54
54
  it { expect { subject }.not_to raise_error }
55
55
 
56
- context 'given an element structure' do
56
+ context "given an element structure" do
57
57
  before { structure[:elements] = { type: String } }
58
58
  it { expect { subject }.not_to raise_error }
59
59
 
60
- context 'which is not respected' do
60
+ context "which is not respected" do
61
61
  before { structure[:elements] = { type: Integer } }
62
62
  it { expect { subject }.to raise_error /expected Integer, got String/i }
63
63
  end
64
64
  end
65
65
  end
66
66
 
67
- context 'when object is an Hash' do
68
- let(:obj) { { key1: 'value1', key2: 'value2', key3: 'value3' } }
67
+ context "when object is an Hash" do
68
+ let(:obj) { { key1: "value1", key2: "value2", key3: "value3" } }
69
69
  let(:structure) { { type: Hash } }
70
70
  it { expect { subject }.not_to raise_error }
71
71
 
72
- context 'when given an element structure' do
72
+ context "when given an element structure" do
73
73
  let(:structure) { { type: Hash, elements: { key1: { type: String }, key2: { type: String }, key3: { type: String } } } }
74
74
  it { expect { subject }.not_to raise_error }
75
75
 
76
- context 'which is not respected' do
76
+ context "which is not respected" do
77
77
  before { obj[:key2] = {} }
78
78
  it { expect { subject }.to raise_error /expected String, got Hash/i }
79
79
  end
80
80
 
81
- context 'when missing keys' do
81
+ context "when missing keys" do
82
82
  before do
83
83
  obj.delete(:key1)
84
84
  obj.delete(:key3)
85
85
  end
86
86
  it { expect { subject }.to raise_error /missing keys: key1, key3/i }
87
87
 
88
- context 'which are optional' do
88
+ context "which are optional" do
89
89
  before do
90
90
  structure[:elements][:key1][:optional] = true
91
91
  structure[:elements][:key3][:optional] = true
@@ -1,15 +1,15 @@
1
1
  describe Evva::SwiftGenerator do
2
2
  let(:generator) { described_class.new }
3
3
 
4
- describe '#events' do
4
+ describe "#events" do
5
5
  subject { generator.events(event_bundle, nil, nil, nil) }
6
6
 
7
7
  let(:event_bundle) { [
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' }, []),
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) {
@@ -107,12 +107,12 @@ Swift
107
107
  it { should eq expected }
108
108
  end
109
109
 
110
- describe '#special_property_enums' do
110
+ describe "#special_property_enums" do
111
111
  subject { generator.special_property_enums(enums) }
112
112
 
113
113
  let(:enums) { [
114
- Evva::AnalyticsEnum.new('CourseProfileSource', ['course_discovery', 'synced_courses']),
115
- Evva::AnalyticsEnum.new('PremiumFrom', ['Course Profile', 'Round Setup']),
114
+ Evva::AnalyticsEnum.new("CourseProfileSource", ["course_discovery", "synced_courses"]),
115
+ Evva::AnalyticsEnum.new("PremiumFrom", ["Course Profile", "Round Setup"]),
116
116
  ] }
117
117
 
118
118
  let(:expected) {
@@ -142,9 +142,9 @@ Swift
142
142
  subject { generator.people_properties(people_bundle, "", "", "") }
143
143
 
144
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', []),
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
148
  ] }
149
149
 
150
150
  let(:expected) {
@@ -218,8 +218,8 @@ Swift
218
218
  subject { generator.destinations(destinations, "") }
219
219
 
220
220
  let(:destinations) { [
221
- 'firebase',
222
- 'whatever you want really'
221
+ "firebase",
222
+ "whatever you want really"
223
223
  ] }
224
224
 
225
225
  let(:expected) {
data/spec/spec_helper.rb CHANGED
@@ -1,9 +1,9 @@
1
- require 'simplecov'
1
+ require "simplecov"
2
2
  SimpleCov.start
3
3
 
4
- require 'evva'
5
- require 'rspec/its'
6
- require 'webmock/rspec'
4
+ require "evva"
5
+ require "rspec/its"
6
+ require "webmock/rspec"
7
7
  # This file was generated by the `rspec --init` command. Conventionally, all
8
8
  # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
9
9
  # The generated `.rspec` file contains `--require spec_helper` which will cause
metadata CHANGED
@@ -1,17 +1,19 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: evva
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.4
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
- - RicardoTrindade
7
+ - André Andrade
8
+ - João Costa
9
+ - Ricardo Trindade
8
10
  autorequire:
9
11
  bindir: bin
10
12
  cert_chain: []
11
13
  date: 2024-10-16 00:00:00.000000000 Z
12
14
  dependencies:
13
15
  - !ruby/object:Gem::Dependency
14
- name: safe_yaml
16
+ name: colorize
15
17
  requirement: !ruby/object:Gem::Requirement
16
18
  requirements:
17
19
  - - "~>"
@@ -25,19 +27,19 @@ dependencies:
25
27
  - !ruby/object:Gem::Version
26
28
  version: '1.0'
27
29
  - !ruby/object:Gem::Dependency
28
- name: colorize
30
+ name: safe_yaml
29
31
  requirement: !ruby/object:Gem::Requirement
30
32
  requirements:
31
33
  - - "~>"
32
34
  - !ruby/object:Gem::Version
33
- version: '0.7'
35
+ version: '1.0'
34
36
  type: :runtime
35
37
  prerelease: false
36
38
  version_requirements: !ruby/object:Gem::Requirement
37
39
  requirements:
38
40
  - - "~>"
39
41
  - !ruby/object:Gem::Version
40
- version: '0.7'
42
+ version: '1.0'
41
43
  description: Evva generates all the analytics event tracking functions for you
42
44
  email: ricardo.trindade743@gmail.com
43
45
  executables:
@@ -47,6 +49,7 @@ extra_rdoc_files: []
47
49
  files:
48
50
  - ".gitignore"
49
51
  - ".rspec"
52
+ - ".rubocop.yml"
50
53
  - ".rubocop_todo.yml"
51
54
  - ".travis.yml"
52
55
  - Gemfile
@@ -60,10 +63,10 @@ files:
60
63
  - lib/evva/analytics_enum.rb
61
64
  - lib/evva/analytics_event.rb
62
65
  - lib/evva/analytics_property.rb
63
- - lib/evva/android_generator.rb
64
66
  - lib/evva/config.rb
65
67
  - lib/evva/file_reader.rb
66
68
  - lib/evva/google_sheet.rb
69
+ - lib/evva/kotlin_generator.rb
67
70
  - lib/evva/logger.rb
68
71
  - lib/evva/object_extension.rb
69
72
  - lib/evva/swift_generator.rb
@@ -80,15 +83,14 @@ files:
80
83
  - lib/evva/templates/swift/people_properties.swift
81
84
  - lib/evva/templates/swift/special_property_enums.swift
82
85
  - lib/evva/version.rb
83
- - rubocop.yml
84
86
  - spec/evva_spec.rb
85
87
  - spec/fixtures/sample_public_enums.csv
86
88
  - spec/fixtures/sample_public_events.csv
87
89
  - spec/fixtures/sample_public_people_properties.csv
88
90
  - spec/fixtures/test.yml
89
- - spec/lib/evva/android_generator_spec.rb
90
91
  - spec/lib/evva/config_spec.rb
91
92
  - spec/lib/evva/google_sheet_spec.rb
93
+ - spec/lib/evva/kotlin_generator_spec.rb
92
94
  - spec/lib/evva/logger_spec.rb
93
95
  - spec/lib/evva/object_extension_spec.rb
94
96
  - spec/lib/evva/swift_generator_spec.rb
@@ -105,7 +107,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
105
107
  requirements:
106
108
  - - ">="
107
109
  - !ruby/object:Gem::Version
108
- version: '0'
110
+ version: 3.2.0
109
111
  required_rubygems_version: !ruby/object:Gem::Requirement
110
112
  requirements:
111
113
  - - ">="