evt-message_store 1.2.0.0 → 2.3.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f11bc763f84ee7713a149dcbd82c93a05c3bd6bc77ccf6238f3eddff404547ab
4
- data.tar.gz: 58a75a34e87d818aed83f73bfe446a0435ba6dbc6e7266cb4a0230878d81cc62
3
+ metadata.gz: 156de8cf748968c091d28df2d2ce7b9c25d0a996ada4d6f473a1a31667bee851
4
+ data.tar.gz: 81aab6e0f701fdf1c9c9263c0548b6f8f22d8b75241b3720af314e2cc47b211d
5
5
  SHA512:
6
- metadata.gz: c4b2f5af783cbc5dd299bcd6c00072dfa2c8da0c34917f10967714a694cb872bd2186cfeb580b8886454e39b0bbf2cf3da0fb648945bec8d965752a261a8770d
7
- data.tar.gz: 81e9df220c30010d3fe1863d521b2407940f674005c00569763b0e8da6fbbf8bace91cc06a9e2e55ff7bea6f1bee28d6351ed4c3d7ed5268b00afa7a5638cccd
6
+ metadata.gz: 83be616f3481e506586e349480ff6cbb2e53d369aae02eb1de2c312d3c94e04c8a455652a4581a08ba57fb15cc8a7765043ac42a334aaf13a1ca48931865ce61
7
+ data.tar.gz: 6df8f35fae0c431eaa6fa79716eb254953e39593f7b76ebea2c1310ed928c0c65974bb072b902a608d23404d30bd771afd5b8fe1511660a5ab3778f97a894c25
@@ -1,7 +1,7 @@
1
1
  module MessageStore
2
2
  module Controls
3
3
  module Category
4
- def self.example(category: nil, randomize_category: nil)
4
+ def self.example(category: nil, type: nil, types: nil, randomize_category: nil)
5
5
  if randomize_category.nil?
6
6
  if !category.nil?
7
7
  randomize_category = false
@@ -16,6 +16,8 @@ module MessageStore
16
16
  category = "#{category}#{SecureRandom.hex(16)}XX"
17
17
  end
18
18
 
19
+ category = Controls::StreamName.stream_name(category, type: type, types: types)
20
+
19
21
  category
20
22
  end
21
23
  end
@@ -7,6 +7,7 @@ module MessageStore
7
7
  include Get
8
8
 
9
9
  attr_accessor :stream_name
10
+ alias :category :stream_name
10
11
 
11
12
  def batch_size
12
13
  @batch_size ||= 1
@@ -2,49 +2,57 @@ module MessageStore
2
2
  module StreamName
3
3
  Error = Class.new(RuntimeError)
4
4
 
5
- def self.id_delimiter
5
+ def self.id_separator
6
6
  '-'
7
7
  end
8
8
 
9
- def self.category_delimiter
10
- ':'
9
+ def self.compound_id_separator
10
+ '+'
11
11
  end
12
12
 
13
- def self.type_delimiter
14
- '+'
13
+ def self.category_type_separator
14
+ ':'
15
15
  end
16
16
 
17
- class << self
18
- alias :compound_id_delimiter :type_delimiter
17
+ def self.compound_type_separator
18
+ '+'
19
19
  end
20
20
 
21
- def self.stream_name(category_name, id=nil, type: nil, types: nil)
22
- if category_name == nil
23
- raise Error, "Category name must not be omitted from stream name"
21
+ def self.stream_name(category, stream_id=nil, cardinal_id: nil, id: nil, ids: nil, type: nil, types: nil)
22
+ if category == nil
23
+ raise Error, "Category must not be omitted from stream name"
24
24
  end
25
25
 
26
- types = Array(types)
27
- types.unshift(type) unless type.nil?
26
+ stream_name = category
28
27
 
29
- type_list = nil
30
- type_list = types.join(type_delimiter) unless types.empty?
28
+ type_list = []
29
+ type_list.concat(Array(type))
30
+ type_list.concat(Array(types))
31
31
 
32
- stream_name = category_name
33
- stream_name = "#{stream_name}#{category_delimiter}#{type_list}" unless type_list.nil?
32
+ type_part = type_list.join(compound_type_separator)
34
33
 
35
- if not id.nil?
36
- if id.is_a?(Array)
37
- id = id.join(compound_id_delimiter)
38
- end
34
+ if not type_part.empty?
35
+ stream_name = "#{stream_name}#{category_type_separator}#{type_part}"
39
36
  end
40
37
 
41
- stream_name = "#{stream_name}#{id_delimiter}#{id}" unless id.nil?
38
+ id_list = []
39
+ id_list << cardinal_id if not cardinal_id.nil?
40
+
41
+ id_list.concat(Array(stream_id))
42
+ id_list.concat(Array(id))
43
+ id_list.concat(Array(ids))
44
+
45
+ id_part = id_list.join(compound_id_separator)
46
+
47
+ if not id_part.empty?
48
+ stream_name = "#{stream_name}#{id_separator}#{id_part}"
49
+ end
42
50
 
43
51
  stream_name
44
52
  end
45
53
 
46
54
  def self.split(stream_name)
47
- stream_name.split(id_delimiter, 2)
55
+ stream_name.split(id_separator, 2)
48
56
  end
49
57
 
50
58
  def self.get_id(stream_name)
@@ -56,7 +64,15 @@ module MessageStore
56
64
 
57
65
  return [] if ids.nil?
58
66
 
59
- ids.split(compound_id_delimiter)
67
+ ids.split(compound_id_separator)
68
+ end
69
+
70
+ def self.get_cardinal_id(stream_name)
71
+ id = get_id(stream_name)
72
+
73
+ return nil if id.nil?
74
+
75
+ id.split(compound_id_separator).first
60
76
  end
61
77
 
62
78
  def self.get_category(stream_name)
@@ -64,15 +80,15 @@ module MessageStore
64
80
  end
65
81
 
66
82
  def self.category?(stream_name)
67
- !stream_name.include?(id_delimiter)
83
+ !stream_name.include?(id_separator)
68
84
  end
69
85
 
70
86
  def self.get_category_type(stream_name)
71
- return nil unless stream_name.include?(category_delimiter)
87
+ return nil unless stream_name.include?(category_type_separator)
72
88
 
73
89
  category = get_category(stream_name)
74
90
 
75
- category.split(category_delimiter)[1]
91
+ category.split(category_type_separator)[1]
76
92
  end
77
93
 
78
94
  def self.get_type(*args)
@@ -84,7 +100,7 @@ module MessageStore
84
100
 
85
101
  return [] if type_list.nil?
86
102
 
87
- type_list.split(type_delimiter)
103
+ type_list.split(compound_type_separator)
88
104
  end
89
105
 
90
106
  def self.get_types(*args)
@@ -92,7 +108,7 @@ module MessageStore
92
108
  end
93
109
 
94
110
  def self.get_entity_name(stream_name)
95
- get_category(stream_name).split(category_delimiter)[0]
111
+ get_category(stream_name).split(category_type_separator)[0]
96
112
  end
97
113
  end
98
114
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: evt-message_store
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0.0
4
+ version: 2.3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - The Eventide Project
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-11-03 00:00:00.000000000 Z
11
+ date: 2019-12-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: evt-casing