omnievent 0.1.0.pre3 → 0.1.0.pre4

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bb07327f2d1f44b38d3eb76509641665bae87ed481d152382482617013be525f
4
- data.tar.gz: 860d9fb49b3a7689cf29711cd4199e75ad8b197b05ae7bb348d5318ecacb806e
3
+ metadata.gz: 38717b9e58eab673d2701d9bd2fb29a47b39820614cf9b46ab2dfde98a940d7f
4
+ data.tar.gz: 8f750f1bf92f031b333bb50a39e1dd8f355d641549ed271c9c0017689676c63c
5
5
  SHA512:
6
- metadata.gz: 78ca39a4647ebdda34b2cda063a5b3b92b34693221b8e159ba68fafbc3e02fa8e067754e4445b96d209e3ad37d0b227d2179088f68c42fa3ffdffe28a761c9cd
7
- data.tar.gz: 277bb9491cb240e4258d46bc11f4733077544ca356a1b14e6ec080fd98109b32c7f0411b4c38ada623ae0163996d39b825b07c8975fb58d0dba5fbb095c4bbf4
6
+ metadata.gz: 4e5224989a966288fb06247ca102f5a93491703df0180e69532f3baf228488e3cee2872b244248418108717430413745e1c083526cb344bf59cd6536eafab2cc
7
+ data.tar.gz: 5941e388487c35a43935675dc12a5a8af99756b86d98d053d3aed128b915d3032d12e2ced512889525c9a00fd0aa0326a294ee9e1c8810e389d1527b60a060d9
data/.rubocop.yml CHANGED
@@ -1,6 +1,3 @@
1
- AllCops:
2
- TargetRubyVersion: 2.6
3
-
4
1
  Layout/LineLength:
5
2
  Max: 120
6
3
 
@@ -14,8 +11,10 @@ Metrics/BlockLength:
14
11
  - 'spec/**/*.rb'
15
12
 
16
13
  Metrics/MethodLength:
17
- CountComments: false
18
- Max: 25
14
+ Enabled: false
15
+
16
+ Metrics/BlockLength:
17
+ Enabled: false
19
18
 
20
19
  Metrics/ClassLength:
21
20
  Max: 150
@@ -46,3 +45,6 @@ Style/OptionalBooleanParameter:
46
45
 
47
46
  Style/MultilineBlockChain:
48
47
  Enabled: false
48
+
49
+ Style/Documentation:
50
+ Enabled: false
@@ -30,6 +30,18 @@ module OmniEvent
30
30
  raw_data["events"]
31
31
  end
32
32
 
33
+ def create_event
34
+ options.event
35
+ end
36
+
37
+ def update_event
38
+ options.event
39
+ end
40
+
41
+ def destroy_event
42
+ true
43
+ end
44
+
33
45
  def event_hash(raw_event)
34
46
  event = OmniEvent::EventHash.new(
35
47
  provider: name,
@@ -170,6 +170,18 @@ module OmniEvent
170
170
  end
171
171
  end
172
172
 
173
+ def create_event
174
+ raise NotImplementedError
175
+ end
176
+
177
+ def update_event
178
+ raise NotImplementedError
179
+ end
180
+
181
+ def destroy_event
182
+ raise NotImplementedError
183
+ end
184
+
173
185
  # Direct access to the OmniEvent logger, automatically prefixed
174
186
  # with this strategy's name.
175
187
  #
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module OmniEvent
4
- VERSION = "0.1.0.pre3"
4
+ VERSION = "0.1.0.pre4"
5
5
  end
data/lib/omnievent.rb CHANGED
@@ -57,11 +57,46 @@ module OmniEvent
57
57
 
58
58
  # List events.
59
59
  def list_events(provider = nil, opts = {})
60
- raise ArgumentError, "You need to pass a provider name as the first argument." unless provider
60
+ validate_provider_arg(provider)
61
61
 
62
62
  strategy_instance(provider).request(:list_events, opts)
63
63
  end
64
64
 
65
+ # Create event.
66
+ def create_event(provider = nil, opts = {})
67
+ validate_event_args(provider, opts)
68
+
69
+ strategy_instance(provider).request(:create_event, opts)
70
+ end
71
+
72
+ # Update event.
73
+ def update_event(provider = nil, opts = {})
74
+ validate_event_args(provider, opts)
75
+
76
+ strategy_instance(provider).request(:update_event, opts)
77
+ end
78
+
79
+ # Destroy event.
80
+ def destroy_event(provider = nil, opts = {})
81
+ validate_event_args(provider, opts)
82
+
83
+ strategy_instance(provider).request(:destroy_event, opts)
84
+ end
85
+
86
+ def validate_provider_arg(provider)
87
+ raise ArgumentError, "You need to pass a provider name as the first argument." unless provider
88
+ end
89
+
90
+ def validate_event_args(provider, opts)
91
+ validate_provider_arg(provider)
92
+
93
+ raise ArgumentError, "You need to pass a valid as :event in opts." unless opts_have_valid_event?(opts)
94
+ end
95
+
96
+ def opts_have_valid_event?(opts)
97
+ opts[:event].present? && opts[:event].is_a?(OmniEvent::EventHash) && opts[:event].valid?
98
+ end
99
+
65
100
  def strategy_instance(provider)
66
101
  klass = provider_class(provider)
67
102
  raise MissingStrategy, "Could not find matching strategy for #{klass.inspect}." unless klass
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: omnievent
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0.pre3
4
+ version: 0.1.0.pre4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Angus McLeod
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-10-21 00:00:00.000000000 Z
11
+ date: 2024-09-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -145,7 +145,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
145
145
  - !ruby/object:Gem::Version
146
146
  version: 1.3.1
147
147
  requirements: []
148
- rubygems_version: 3.1.6
148
+ rubygems_version: 3.3.26
149
149
  signing_key:
150
150
  specification_version: 4
151
151
  summary: Manage events from multiple providers.