evostream-event 0.3.0 → 0.3.1.pre.52
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 +4 -4
- data/README.md +30 -0
- data/lib/evostream/event/action.rb +1 -0
- data/lib/evostream/event/commands.rb +15 -1
- data/lib/evostream/event/commands/create.rb +13 -13
- data/lib/evostream/event/commands/create/dash.rb +2 -4
- data/lib/evostream/event/commands/create/hls.rb +15 -17
- data/lib/evostream/event/commands/destroy.rb +4 -4
- data/lib/evostream/event/commands/get_stream_info.rb +31 -0
- data/lib/evostream/event/commands/list_streams.rb +2 -2
- data/lib/evostream/event/commands/push_stream.rb +4 -8
- data/lib/evostream/event/event.rb +1 -0
- data/lib/evostream/event/event/events/in_stream_closed.rb +1 -0
- data/lib/evostream/event/event/events/in_stream_created.rb +1 -0
- data/lib/evostream/event/event/events/out_stream_created.rb +1 -0
- data/lib/evostream/event/info.rb +1 -1
- data/lib/generators/evostream/initializer_generator.rb +26 -9
- data/spec/evostream/commands/get_stream_info_spec.rb +21 -0
- data/spec/evostream/commands/list_stream_spec.rb +14 -0
- data/spec/support/examples_commands.rb +3 -1
- metadata +7 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bac0d2f68701f1ade31fa5ce2a9f3349575efff8
|
4
|
+
data.tar.gz: 7234b8571fcbef0a2b4db1dc0bc86723e3453e65
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 901127bdce584987d49ef5463f8212a1b3cd6d7a25b72711dd3d36948374979b87ea26054e3c2fff444ee6d5bdf4bdc2ff3a8ad4657d0905481b6a4a1e351c84
|
7
|
+
data.tar.gz: 012325881d281cec235c886fe3bba4aeb1585950ebf3f98ead1b8bef8ca875674eaf073cc04c7259b076e679af7b27a015bd5a3d347be6ae849dc58c34056227
|
data/README.md
CHANGED
@@ -32,6 +32,36 @@ Or install it yourself as :
|
|
32
32
|
gem install evostream-event
|
33
33
|
```
|
34
34
|
|
35
|
+
### Environment
|
36
|
+
|
37
|
+
This gem use a configuration file for configure access to EvoStream server.
|
38
|
+
|
39
|
+
See initializer file.
|
40
|
+
```ruby
|
41
|
+
# URL to EvoStream for share video to final user
|
42
|
+
config.uri_in = 'http://server_stream.local:80'
|
43
|
+
|
44
|
+
# URL to EvoStream for sending request to this API
|
45
|
+
config.uri_out = 'http://server_stream.local:7777'
|
46
|
+
|
47
|
+
# Prefix to folder created for each video mangaed by EvoStream
|
48
|
+
config.name = 'srteamming_'
|
49
|
+
|
50
|
+
# Folder for file created by EvoStream
|
51
|
+
config.web_root = '/var/www/html'
|
52
|
+
|
53
|
+
# Name to model manipulate
|
54
|
+
config.model = ModelUsedInDatabase
|
55
|
+
|
56
|
+
# Choose id to document manipulate in Database
|
57
|
+
config.model_id = :identifier_used_in_model
|
58
|
+
|
59
|
+
# Use environment for this gem. Choose between :
|
60
|
+
# - development : Write in log and Send request to evoStream
|
61
|
+
# - test : Write in Log
|
62
|
+
# - production : Send request to EvoStream
|
63
|
+
config.environement = :test
|
64
|
+
```
|
35
65
|
### Usage
|
36
66
|
|
37
67
|
Create initializer :
|
@@ -10,6 +10,7 @@ module Evostream
|
|
10
10
|
def execute_action(command_name)
|
11
11
|
cmd = command_name.sub(/^(\w)/, &:capitalize)
|
12
12
|
klass = "Evostream::Commands::#{cmd}".constantize
|
13
|
+
Evostream.logger "Execute action with cmd : #{klass}"
|
13
14
|
Evostream.send_command(klass.new(@payload).cmd)
|
14
15
|
end
|
15
16
|
end
|
@@ -1,5 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
# :reek:UncommunicativeMethodName
|
4
|
+
|
3
5
|
module Evostream
|
4
6
|
# Manage command
|
5
7
|
module Commands
|
@@ -11,12 +13,24 @@ module Evostream
|
|
11
13
|
@command.push send(command_name, command_param)
|
12
14
|
end
|
13
15
|
end
|
16
|
+
|
17
|
+
def cmd
|
18
|
+
Evostream.logger "Command before encode : #{@command}"
|
19
|
+
end
|
20
|
+
|
21
|
+
private
|
22
|
+
|
23
|
+
# Encode commands in base 64 with space between each command
|
24
|
+
def encode_64
|
25
|
+
Base64.strict_encode64(@command.join(' '))
|
26
|
+
end
|
14
27
|
end
|
15
28
|
end
|
16
29
|
end
|
17
30
|
|
18
31
|
require 'evostream/event/commands/create'
|
19
32
|
require 'evostream/event/commands/destroy'
|
20
|
-
require 'evostream/event/commands/
|
33
|
+
require 'evostream/event/commands/get_stream_info'
|
21
34
|
require 'evostream/event/commands/list_config'
|
22
35
|
require 'evostream/event/commands/list_streams'
|
36
|
+
require 'evostream/event/commands/push_stream'
|
@@ -16,78 +16,78 @@ module Evostream
|
|
16
16
|
# The stream(s) that will be used as the input. This is a comma-delimited
|
17
17
|
# list of active stream names (local stream names)
|
18
18
|
def local_stream_names(param = 'null')
|
19
|
-
"localStreamNames=#{param}
|
19
|
+
"localStreamNames=#{param}"
|
20
20
|
end
|
21
21
|
|
22
22
|
# The folder where all the manifest and fragment files will be stored.
|
23
23
|
# This folder must be accessible by the DASH clients. It is usually in the
|
24
24
|
# web-root of the server
|
25
25
|
def target_folder(param = 'null')
|
26
|
-
"targetFolder=#{param}
|
26
|
+
"targetFolder=#{param}"
|
27
27
|
end
|
28
28
|
|
29
29
|
# The corresponding bandwidths for each stream listed in localStreamNames.
|
30
30
|
# Again, this can be a comma-delimited list
|
31
31
|
def bandwidths(param = 0)
|
32
|
-
"bandwidths=#{param}
|
32
|
+
"bandwidths=#{param}"
|
33
33
|
end
|
34
34
|
|
35
35
|
# The name assigned to the DASH stream or group. If the localStreamNames
|
36
36
|
# parameter contains only one entry and groupName is not specified,
|
37
37
|
# groupName will have the value of the input stream name
|
38
38
|
def group_name(param)
|
39
|
-
"groupName=#{param}
|
39
|
+
"groupName=#{param}"
|
40
40
|
end
|
41
41
|
|
42
42
|
# Either `appending` or `rolling`
|
43
43
|
def playlist_type(param = 'appending')
|
44
|
-
"playlistType=#{param}
|
44
|
+
"playlistType=#{param}"
|
45
45
|
end
|
46
46
|
|
47
47
|
# The number of fragments before the server starts to overwrite the older
|
48
48
|
# fragments. Used only when playlistType is 'rolling'. Ignored otherwise
|
49
49
|
def playlist_length(param = 10)
|
50
|
-
"playlistLength=#{param}
|
50
|
+
"playlistLength=#{param}"
|
51
51
|
end
|
52
52
|
|
53
53
|
# The length (in seconds) of fragments to be made
|
54
54
|
def chunk_length(param = 10)
|
55
|
-
"chunkLength=#{param}
|
55
|
+
"chunkLength=#{param}"
|
56
56
|
end
|
57
57
|
|
58
58
|
# If true, chunking is performed ONLY on IDR. Otherwise, chunking is
|
59
59
|
# performed whenever chunk length is achieved
|
60
60
|
def chunk_on_idr(param = 1)
|
61
|
-
"chunkOnIDR=#{param}
|
61
|
+
"chunkOnIDR=#{param}"
|
62
62
|
end
|
63
63
|
|
64
64
|
# If true, the EMS will attempt to reconnect to the stream source if the
|
65
65
|
# connection is severed
|
66
66
|
def keep_alive(param = 1)
|
67
|
-
"keepAlive=#{param}
|
67
|
+
"keepAlive=#{param}"
|
68
68
|
end
|
69
69
|
|
70
70
|
# If true, it will allow overwrite of destination files
|
71
71
|
def overwrite_destination(param = 1)
|
72
|
-
"overwriteDestination=#{param}
|
72
|
+
"overwriteDestination=#{param}"
|
73
73
|
end
|
74
74
|
|
75
75
|
# How many old files are kept besides the ones present in the current
|
76
76
|
# version of the playlist. Only applicable for rolling playlists
|
77
77
|
def stale_retention_count(param)
|
78
|
-
"staleRetentionCount=#{param}
|
78
|
+
"staleRetentionCount=#{param}"
|
79
79
|
end
|
80
80
|
|
81
81
|
# If true, all manifest and fragment files in the target folder will be
|
82
82
|
# removed before DASH creation is started
|
83
83
|
def cleanup_destination(param = 0)
|
84
|
-
"cleanupDestination=#{param}
|
84
|
+
"cleanupDestination=#{param}"
|
85
85
|
end
|
86
86
|
|
87
87
|
# Set this parameter to 1 (default) for a live DASH, otherwise set it to 0
|
88
88
|
# for a VOD
|
89
89
|
def dynamic_profile(param = 1)
|
90
|
-
"dynamicProfile=#{param}
|
90
|
+
"dynamicProfile=#{param}"
|
91
91
|
end
|
92
92
|
end
|
93
93
|
end
|
@@ -12,16 +12,14 @@ module Evostream
|
|
12
12
|
end
|
13
13
|
|
14
14
|
def cmd
|
15
|
-
|
16
|
-
Evostream.logger "createDASHStream : #{cmd_hash}"
|
17
|
-
"createDASHStream?params=#{Base64.urlsafe_encode64(cmd_hash)}"
|
15
|
+
"createDASHStream?params=#{encode_64}"
|
18
16
|
end
|
19
17
|
|
20
18
|
private
|
21
19
|
|
22
20
|
# The manifest file name
|
23
21
|
def manifest_name(param = 'manifest.mpd')
|
24
|
-
"manifestName=#{param}
|
22
|
+
"manifestName=#{param}"
|
25
23
|
end
|
26
24
|
end
|
27
25
|
end
|
@@ -14,20 +14,18 @@ module Evostream
|
|
14
14
|
end
|
15
15
|
|
16
16
|
def cmd
|
17
|
-
|
18
|
-
Evostream.logger "createHLSStream : #{cmd_hash}"
|
19
|
-
"createHLSStream?params=#{Base64.urlsafe_encode64(cmd_hash)}"
|
17
|
+
"createHLSStream?params=#{encode_64}"
|
20
18
|
end
|
21
19
|
|
22
20
|
private
|
23
21
|
|
24
22
|
def create_master_playlist(param = 1)
|
25
|
-
"createMasterPlaylist=#{param}
|
23
|
+
"createMasterPlaylist=#{param}"
|
26
24
|
end
|
27
25
|
|
28
26
|
# The manifest file name
|
29
27
|
def playlist_name(param = 'playlist.m3u8')
|
30
|
-
"playlistName=#{param}
|
28
|
+
"playlistName=#{param}"
|
31
29
|
end
|
32
30
|
|
33
31
|
# This parameter represents the maximum length, in seconds, the EMS will
|
@@ -35,12 +33,12 @@ module Evostream
|
|
35
33
|
# chunkOnIDR=true where the EMS will wait for the next key-frame. If the
|
36
34
|
# maxChunkLength is less than chunkLength, the parameter shall be ignored
|
37
35
|
def max_chunk_length(param = 0)
|
38
|
-
"maxChunkLength=#{param}
|
36
|
+
"maxChunkLength=#{param}"
|
39
37
|
end
|
40
38
|
|
41
39
|
# The base name used to generate the *.ts chunks
|
42
40
|
def chunk_base_name(param = 'segment')
|
43
|
-
"chunkBaseName=#{param}
|
41
|
+
"chunkBaseName=#{param}"
|
44
42
|
end
|
45
43
|
|
46
44
|
# Sets the type of DRM encryption to use. Options are: none (no
|
@@ -48,36 +46,36 @@ module Evostream
|
|
48
46
|
# (Verimatrix DRM). For Verimatrix DRM, the 'drm' section of the
|
49
47
|
# config.lua file must be active and properly configured
|
50
48
|
def drm_type(param = 'none')
|
51
|
-
"drmType=#{param}
|
49
|
+
"drmType=#{param}"
|
52
50
|
end
|
53
51
|
|
54
52
|
# Specifies the number of keys that will be automatically generated and
|
55
53
|
# rotated over while encrypting this HLS stream
|
56
54
|
def aes_key_count(param = 5)
|
57
|
-
"AESKeyCount=#{param}
|
55
|
+
"AESKeyCount=#{param}"
|
58
56
|
end
|
59
57
|
|
60
58
|
# Specifies if the resulting stream will be audio only. A value of 1(true)
|
61
59
|
# will result in a stream without video
|
62
60
|
def audio_only(param = 0)
|
63
|
-
"audioOnly=#{param}
|
61
|
+
"audioOnly=#{param}"
|
64
62
|
end
|
65
63
|
|
66
64
|
# If true, HLS will resume in appending segments to previously created
|
67
65
|
# childplaylist even in cases of EMS shutdown or cut off stream source
|
68
66
|
def hls_resume(param = 0)
|
69
|
-
"hlsResume=#{param}
|
67
|
+
"hlsResume=#{param}"
|
70
68
|
end
|
71
69
|
|
72
70
|
# If true, corresponding hls files to a stream will be deleted if the said
|
73
71
|
# stream is removed or shut down or disconnected
|
74
72
|
def cleanup_on_close(param = 0)
|
75
|
-
"cleanupOnClose=#{param}
|
73
|
+
"cleanupOnClose=#{param}"
|
76
74
|
end
|
77
75
|
|
78
76
|
# If true, will use the EXT-X-BYTERANGE feature of HLS (version 4 and up)
|
79
77
|
def use_byte_range(param = 0)
|
80
|
-
"useByteRange=#{param}
|
78
|
+
"useByteRange=#{param}"
|
81
79
|
end
|
82
80
|
|
83
81
|
# When using useByteRange=1, this parameter needs to be set too. This will
|
@@ -85,23 +83,23 @@ module Evostream
|
|
85
83
|
# chunkLength in case of EXT-X-BYTERANGE, since chunkLength will be the
|
86
84
|
# byte range chunk
|
87
85
|
def file_length(param = 0)
|
88
|
-
"fileLength=#{param}
|
86
|
+
"fileLength=#{param}"
|
89
87
|
end
|
90
88
|
|
91
89
|
# If true, uses UTC in playlist time stamp otherwise will use the local
|
92
90
|
# server time
|
93
91
|
def use_system_time(param = 0)
|
94
|
-
"useSystemTime=#{param}
|
92
|
+
"useSystemTime=#{param}"
|
95
93
|
end
|
96
94
|
|
97
95
|
def offset_time(param = 0)
|
98
|
-
"offsetTime=#{param}
|
96
|
+
"offsetTime=#{param}"
|
99
97
|
end
|
100
98
|
|
101
99
|
# A parameter valid only for HLS v.6 onwards. This will indicate the start
|
102
100
|
# offset time (in seconds) for the playback of the playlist
|
103
101
|
def start_offset(param = 0)
|
104
|
-
"startOffset=#{param}
|
102
|
+
"startOffset=#{param}"
|
105
103
|
end
|
106
104
|
end
|
107
105
|
end
|
@@ -10,7 +10,7 @@ module Evostream
|
|
10
10
|
end
|
11
11
|
|
12
12
|
def cmd
|
13
|
-
"removeConfig?params=#{
|
13
|
+
"removeConfig?params=#{encode_64}"
|
14
14
|
end
|
15
15
|
|
16
16
|
private
|
@@ -21,20 +21,20 @@ module Evostream
|
|
21
21
|
# can be obtained from the listConfig interface. Removing an inbound
|
22
22
|
# stream will also automatically remove all associated outbound streams.
|
23
23
|
def id(param = 'null')
|
24
|
-
"id=#{param}
|
24
|
+
"id=#{param}"
|
25
25
|
end
|
26
26
|
|
27
27
|
# The name of the group that needs to be removed (applicable to HLS, HDS
|
28
28
|
# and external processes). *Mandatory only if the id parameter is not
|
29
29
|
# specified.
|
30
30
|
def group_name(param = 'null')
|
31
|
-
"groupName=#{param}
|
31
|
+
"groupName=#{param}"
|
32
32
|
end
|
33
33
|
|
34
34
|
# If 1 (true) and the stream is HLS or HDS, the folder associated with it
|
35
35
|
# will be removed
|
36
36
|
def remove_hls_hds_files(param = 0)
|
37
|
-
"removeHlsHdsFiles=#{param}
|
37
|
+
"removeHlsHdsFiles=#{param}"
|
38
38
|
end
|
39
39
|
end
|
40
40
|
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Evostream
|
4
|
+
module Commands
|
5
|
+
# Returns a detailed set of information about a stream.
|
6
|
+
class GetStreamInfo < Command
|
7
|
+
def initialize(commands = {})
|
8
|
+
super(commands)
|
9
|
+
end
|
10
|
+
|
11
|
+
def cmd
|
12
|
+
"getStreamInfo?params=#{encode_64}"
|
13
|
+
end
|
14
|
+
|
15
|
+
private
|
16
|
+
|
17
|
+
# The uniqueId of the stream. Usually a value returned by listStreamsIDs.
|
18
|
+
# This parameter is not mandatory but either this or the localStreamName
|
19
|
+
# should be present to identify the particular stream
|
20
|
+
def id(param = 'null')
|
21
|
+
"id=#{param}"
|
22
|
+
end
|
23
|
+
|
24
|
+
# The name of the stream. This parameter is not mandatory but either this
|
25
|
+
# or the id should be present to identify the particular stream
|
26
|
+
def local_stream_name(param = '')
|
27
|
+
"localStreamName=#{param}"
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -9,7 +9,7 @@ module Evostream
|
|
9
9
|
end
|
10
10
|
|
11
11
|
def cmd
|
12
|
-
"listStreams?params=#{
|
12
|
+
"listStreams?params=#{encode_64}"
|
13
13
|
end
|
14
14
|
|
15
15
|
private
|
@@ -19,7 +19,7 @@ module Evostream
|
|
19
19
|
# If this is 1 (true), internal streams (origin-edge related)
|
20
20
|
# are filtered out from the list
|
21
21
|
def disable_internal_streams(param = 'true')
|
22
|
-
"disableInternalStreams=#{param}
|
22
|
+
"disableInternalStreams=#{param}"
|
23
23
|
end
|
24
24
|
end
|
25
25
|
end
|
@@ -11,11 +11,7 @@ module Evostream
|
|
11
11
|
end
|
12
12
|
|
13
13
|
def cmd
|
14
|
-
|
15
|
-
Evostream.logger "Parameters : #{base}"
|
16
|
-
string = Base64.strict_encode64(base)
|
17
|
-
Evostream.logger "Base 64 decoded : #{Base64.strict_decode64(string)}"
|
18
|
-
"pushStream?params=#{string}"
|
14
|
+
"pushStream?params=#{encode_64}"
|
19
15
|
end
|
20
16
|
|
21
17
|
private
|
@@ -25,19 +21,19 @@ module Evostream
|
|
25
21
|
# TheURI of the external stream. Can be RTMP, RTSP or unicast/multicast
|
26
22
|
# (d) mpegts
|
27
23
|
def uri(param = 'null')
|
28
|
-
"uri=#{param}
|
24
|
+
"uri=#{param}"
|
29
25
|
end
|
30
26
|
|
31
27
|
# If provided, the stream will be given this name. Otherwise, a fallback
|
32
28
|
# techniqueis used to determine the stream name (based on the URI)
|
33
29
|
def local_stream_name(param = '')
|
34
|
-
"localStreamName=#{param}
|
30
|
+
"localStreamName=#{param}"
|
35
31
|
end
|
36
32
|
|
37
33
|
# The name of the stream at destination. If not provided, the target
|
38
34
|
# stream name willbe the same as the local stream name
|
39
35
|
def target_stream_name(param = 'null')
|
40
|
-
"targetStreamName=#{param}
|
36
|
+
"targetStreamName=#{param}"
|
41
37
|
end
|
42
38
|
end
|
43
39
|
end
|
@@ -23,6 +23,7 @@ module Evostream
|
|
23
23
|
def execute_klass(klass)
|
24
24
|
name_flux = extract_name_flux
|
25
25
|
Evostream.logger "Name Flux : #{name_flux}"
|
26
|
+
Evostream.logger "Event : #{klass}"
|
26
27
|
case [klass]
|
27
28
|
when [Evostream::Events::OutStreamCreated]
|
28
29
|
klass.new(name_flux, @payload).execute
|
@@ -8,6 +8,7 @@ module Evostream
|
|
8
8
|
super do |type_flux|
|
9
9
|
klass = "Evostream::Commands::Create#{type_flux.upcase}".constantize
|
10
10
|
command = send(type_flux, type_flux)
|
11
|
+
Evostream.logger 'Send command to server EvoStream'
|
11
12
|
@result = Evostream.send_command(klass.new(command).cmd)
|
12
13
|
end
|
13
14
|
end
|
data/lib/evostream/event/info.rb
CHANGED
@@ -6,16 +6,33 @@ module Evostream
|
|
6
6
|
class InitializerGenerator < Rails::Generators::Base
|
7
7
|
desc 'Generate a initializer for evostream-event gem.'
|
8
8
|
INITIALIZER = <<-INIT
|
9
|
-
# frozen_string_literal: true
|
9
|
+
# frozen_string_literal: true
|
10
10
|
|
11
|
-
Evostream::Service.configuration do |config|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
11
|
+
Evostream::Service.configuration do |config|
|
12
|
+
# URL to EvoStream for share video to final user
|
13
|
+
config.uri_in = 'http://server_stream.local:80'
|
14
|
+
|
15
|
+
# URL to EvoStream for sending request to this API
|
16
|
+
config.uri_out = 'http://server_stream.local:7777'
|
17
|
+
|
18
|
+
# Prefix to folder created for each video mangaed by EvoStream
|
19
|
+
config.name = 'srteamming_'
|
20
|
+
|
21
|
+
# Folder for file created by EvoStream
|
22
|
+
config.web_root = '/var/www/html'
|
23
|
+
|
24
|
+
# Name to model manipulate
|
25
|
+
config.model = ModelUsedInDatabase
|
26
|
+
|
27
|
+
# Choose id to document manipulate in Database
|
28
|
+
config.model_id = :identifier_used_in_model
|
29
|
+
|
30
|
+
# Use environment for this gem. Choose between :
|
31
|
+
# - development : Write in log and Send request to evoStream
|
32
|
+
# - test : Write in Log
|
33
|
+
# - production : Send request to EvoStream
|
34
|
+
config.environement = :test
|
35
|
+
end
|
19
36
|
INIT
|
20
37
|
|
21
38
|
# Create initializer in Rails project
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe Evostream::Commands::GetStreamInfo do
|
6
|
+
let(:command) { Evostream::Commands::GetStreamInfo.new(cmd) }
|
7
|
+
|
8
|
+
context 'id' do
|
9
|
+
let(:arg_value) { Faker::Number.between(1, 999) }
|
10
|
+
let(:argument) { 'id' }
|
11
|
+
|
12
|
+
include_examples 'command'
|
13
|
+
end
|
14
|
+
|
15
|
+
context 'local_stream_name' do
|
16
|
+
let(:arg_value) { Faker::Pokemon.name }
|
17
|
+
let(:argument) { 'local_stream_name' }
|
18
|
+
|
19
|
+
include_examples 'command'
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe Evostream::Commands::ListStreams do
|
6
|
+
let(:command) { Evostream::Commands::ListStreams.new(cmd) }
|
7
|
+
|
8
|
+
context 'disable_internal_streams' do
|
9
|
+
let(:arg_value) { Faker::Boolean.boolean }
|
10
|
+
let(:argument) { 'disable_internal_streams' }
|
11
|
+
|
12
|
+
include_examples 'command'
|
13
|
+
end
|
14
|
+
end
|
@@ -6,5 +6,7 @@ RSpec.shared_examples 'command' do
|
|
6
6
|
let(:cmd) { { argument => arg_value } }
|
7
7
|
let(:result) { "#{argument.camelize(:lower)}=#{arg_value} " }
|
8
8
|
|
9
|
-
it
|
9
|
+
it do
|
10
|
+
expect(command.instance_variable_get(:@command)[0] + ' ').to eql(result)
|
11
|
+
end
|
10
12
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: evostream-event
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.1.pre.52
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- VAILLANT Jeremy
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-08-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -269,6 +269,7 @@ files:
|
|
269
269
|
- lib/evostream/event/commands/create/dash.rb
|
270
270
|
- lib/evostream/event/commands/create/hls.rb
|
271
271
|
- lib/evostream/event/commands/destroy.rb
|
272
|
+
- lib/evostream/event/commands/get_stream_info.rb
|
272
273
|
- lib/evostream/event/commands/list_config.rb
|
273
274
|
- lib/evostream/event/commands/list_streams.rb
|
274
275
|
- lib/evostream/event/commands/push_stream.rb
|
@@ -287,6 +288,8 @@ files:
|
|
287
288
|
- spec/evostream/commands/create_hls_spec.rb
|
288
289
|
- spec/evostream/commands/create_spec.rb
|
289
290
|
- spec/evostream/commands/destroy_spec.rb
|
291
|
+
- spec/evostream/commands/get_stream_info_spec.rb
|
292
|
+
- spec/evostream/commands/list_stream_spec.rb
|
290
293
|
- spec/evostream/commands/push_stream_spec.rb
|
291
294
|
- spec/evostream/event/event_spec.rb
|
292
295
|
- spec/evostream/events/events_spec.rb
|
@@ -339,9 +342,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
339
342
|
version: '0'
|
340
343
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
341
344
|
requirements:
|
342
|
-
- - "
|
345
|
+
- - ">"
|
343
346
|
- !ruby/object:Gem::Version
|
344
|
-
version:
|
347
|
+
version: 1.3.1
|
345
348
|
requirements: []
|
346
349
|
rubyforge_project:
|
347
350
|
rubygems_version: 2.4.5
|