vigilem-core 0.0.9

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.
Files changed (61) hide show
  1. checksums.yaml +7 -0
  2. data/lib/vigilem/core.rb +9 -0
  3. data/lib/vigilem/core/abstract_device.rb +97 -0
  4. data/lib/vigilem/core/adapters.rb +2 -0
  5. data/lib/vigilem/core/adapters/adapter.rb +57 -0
  6. data/lib/vigilem/core/adapters/basic_adapter.rb +43 -0
  7. data/lib/vigilem/core/adapters/buffered_adapter.rb +28 -0
  8. data/lib/vigilem/core/buffer.rb +151 -0
  9. data/lib/vigilem/core/buffer_handler.rb +95 -0
  10. data/lib/vigilem/core/default_buffer.rb +45 -0
  11. data/lib/vigilem/core/demultiplexer.rb +225 -0
  12. data/lib/vigilem/core/device.rb +43 -0
  13. data/lib/vigilem/core/event_handler.rb +156 -0
  14. data/lib/vigilem/core/eventable.rb +80 -0
  15. data/lib/vigilem/core/hooks.rb +36 -0
  16. data/lib/vigilem/core/hooks/callback.rb +66 -0
  17. data/lib/vigilem/core/hooks/callback_proc.rb +25 -0
  18. data/lib/vigilem/core/hooks/conditional_hook.rb +62 -0
  19. data/lib/vigilem/core/hooks/hook.rb +193 -0
  20. data/lib/vigilem/core/hooks/inheritable.rb +24 -0
  21. data/lib/vigilem/core/hooks/meta_callback.rb +53 -0
  22. data/lib/vigilem/core/hooks/utils.rb +23 -0
  23. data/lib/vigilem/core/hub.rb +50 -0
  24. data/lib/vigilem/core/input_system_handler.rb +55 -0
  25. data/lib/vigilem/core/lockable_pipeline_component.rb +30 -0
  26. data/lib/vigilem/core/multiplexer.rb +168 -0
  27. data/lib/vigilem/core/pipeline.rb +68 -0
  28. data/lib/vigilem/core/stat.rb +121 -0
  29. data/lib/vigilem/core/system.rb +9 -0
  30. data/lib/vigilem/core/system/check.rb +33 -0
  31. data/lib/vigilem/core/transfer_agent.rb +67 -0
  32. data/lib/vigilem/core/version.rb +5 -0
  33. data/spec/bug_notes.txt +12 -0
  34. data/spec/given_helper.rb +12 -0
  35. data/spec/spec_helper.rb +7 -0
  36. data/spec/vigilem/core/abstract_device_spec.rb +103 -0
  37. data/spec/vigilem/core/adapters/adapter_spec.rb +28 -0
  38. data/spec/vigilem/core/adapters/basic_adapter_spec.rb +53 -0
  39. data/spec/vigilem/core/adapters/buffered_adapter_spec.rb +16 -0
  40. data/spec/vigilem/core/buffer_handler_spec.rb +51 -0
  41. data/spec/vigilem/core/buffer_spec.rb +236 -0
  42. data/spec/vigilem/core/default_buffer_spec.rb +17 -0
  43. data/spec/vigilem/core/demultiplexer_spec.rb +166 -0
  44. data/spec/vigilem/core/device_spec.rb +62 -0
  45. data/spec/vigilem/core/event_handler_spec.rb +134 -0
  46. data/spec/vigilem/core/hooks/callback_proc_spec.rb +66 -0
  47. data/spec/vigilem/core/hooks/hook_spec.rb +230 -0
  48. data/spec/vigilem/core/hooks/inheritable_spec.rb +19 -0
  49. data/spec/vigilem/core/hooks/meta_callback_spec.rb +69 -0
  50. data/spec/vigilem/core/hooks/utils_spec.rb +25 -0
  51. data/spec/vigilem/core/hooks_spec.rb +50 -0
  52. data/spec/vigilem/core/hub_spec.rb +51 -0
  53. data/spec/vigilem/core/input_system_handler_spec.rb +33 -0
  54. data/spec/vigilem/core/lockable_pipeline_component_spec.rb +19 -0
  55. data/spec/vigilem/core/multiplexer_spec.rb +113 -0
  56. data/spec/vigilem/core/pipeline_spec.rb +5 -0
  57. data/spec/vigilem/core/stat_spec.rb +63 -0
  58. data/spec/vigilem/core/system/check_spec.rb +24 -0
  59. data/spec/vigilem/core/system_spec.rb +29 -0
  60. data/spec/vigilem/core/transfer_agent_spec.rb +80 -0
  61. metadata +273 -0
@@ -0,0 +1,24 @@
1
+ require 'spec_helper'
2
+
3
+ require 'vigilem/support/system'
4
+
5
+ require 'vigilem/core/system'
6
+
7
+ describe Vigilem::Core::System do
8
+
9
+ describe '::check' do
10
+ describe ':os' do
11
+ it 'checks to see if the os is the same as the argument' do
12
+ expect(described_class.check[:os].call(/#{described_class.os}/i)).to be_truthy
13
+ end
14
+ end
15
+
16
+ describe ':input_system' do
17
+ it 'checks to see if the arg passed in matches an available input_system/Stat' do
18
+ pending('test gets implemented')
19
+ raise NotImplementedError
20
+ end
21
+ end
22
+
23
+ end
24
+ end
@@ -0,0 +1,29 @@
1
+
2
+ describe Vigilem::Core::System do
3
+
4
+ describe '::`mask_name`' do
5
+ it 'will respond_to? :mac?' do
6
+ expect(described_class).to respond_to(:mac?)
7
+ end
8
+
9
+ it 'will respond_to? :linux?' do
10
+ expect(described_class).to respond_to(:linux?)
11
+ end
12
+
13
+ it 'will respond_to? :windows?' do
14
+ expect(described_class).to respond_to(:windows?)
15
+ end
16
+
17
+ it 'will respond_to? :bsd?' do
18
+ expect(described_class).to respond_to(:bsd?)
19
+ end
20
+
21
+ it 'will respond_to? :nix?' do
22
+ expect(described_class).to respond_to(:nix?)
23
+ end
24
+
25
+ it 'will respond_to? :aix?' do
26
+ expect(described_class).to respond_to(:aix?)
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,80 @@
1
+ require 'spec_helper'
2
+
3
+ require 'tempfile'
4
+
5
+ require 'vigilem/core/transfer_agent'
6
+
7
+ describe Vigilem::Core::TransferAgent do
8
+
9
+ let(:outputs) { [[[], {:func => :concat}], [[], {:func => :concat}], [[], {:func => :concat}]] }
10
+
11
+ let(:connection) { [] }
12
+
13
+ before(:each) do
14
+ @ios = [Tempfile.new('foo'), Tempfile.new('bar'),
15
+ Tempfile.new('fizz'), Tempfile.new('buzz')]
16
+ end
17
+
18
+ class TAMultiplexerHost
19
+ include Vigilem::Core::Multiplexer
20
+ def initialize(inpts, out=nil)
21
+ initialize_multiplexer(inpts, out)
22
+ end
23
+
24
+ def sweep(events=1)
25
+ inputs.flat_map do |ipt|
26
+ begin
27
+ ipt.readline.chomp("\r").chomp("\n")
28
+ rescue EOFError
29
+ end
30
+ end.compact.sort {|a,b| a.split('|').first.to_i <=> a.split('|').first.to_i }
31
+ end
32
+
33
+ end
34
+
35
+ after(:each) do
36
+ @ios.map(&:close)
37
+ described_class.instance_variable_set(:@transfer_agents, nil)
38
+ end
39
+
40
+ let(:demuxer) { Vigilem::Core::Demultiplexer.new(connection, outputs) }
41
+
42
+ let(:muxer) { TAMultiplexerHost.new(@ios) }
43
+
44
+ describe '#initialize' do
45
+ it 'connects the demultiplexer and multiplexer' do
46
+ ta = described_class.new(demuxer, muxer)
47
+ expect(ta.multiplexer.out).to eql(ta.demultiplexer.input)
48
+ end
49
+ end
50
+
51
+ describe '#relay' do
52
+
53
+ let(:ta) { described_class.new(demuxer, muxer) }
54
+
55
+ let(:event_one) { "#{Time.now.to_i}|some value|some other value" }
56
+
57
+ let(:event_two) { "#{Time.now.to_i + 1}|some value 2|some other value 2" }
58
+
59
+ before(:each) do
60
+ @ios[0].puts event_one
61
+ @ios[0].flush
62
+ @ios[2].puts event_two
63
+ @ios[2].flush
64
+ @ios[0].rewind
65
+ @ios[2].rewind
66
+ end
67
+
68
+ it 'relays input values to the observers defaults to 1' do
69
+ ta.relay
70
+ expect(outputs.map(&:first)).to eql(0.upto(outputs.size - 1).map { [event_one] })
71
+ end
72
+
73
+ it 'relays at most the number of input values to observers sepcified in the argument' do
74
+ ta.relay(2)
75
+ expect(outputs.map(&:first)).to eql(0.upto(outputs.size - 1).map { [event_one, event_two] })
76
+ end
77
+
78
+ end
79
+
80
+ end
metadata ADDED
@@ -0,0 +1,273 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: vigilem-core
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.9
5
+ platform: ruby
6
+ authors:
7
+ - jtzero
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-03-04 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: vigilem-support
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: hashery
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: thread_safe
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: yard
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: bundler
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ~>
74
+ - !ruby/object:Gem::Version
75
+ version: '1.7'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ~>
81
+ - !ruby/object:Gem::Version
82
+ version: '1.7'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rake
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ~>
88
+ - !ruby/object:Gem::Version
89
+ version: '10.0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ~>
95
+ - !ruby/object:Gem::Version
96
+ version: '10.0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: rspec
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ~>
102
+ - !ruby/object:Gem::Version
103
+ version: '3.1'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ~>
109
+ - !ruby/object:Gem::Version
110
+ version: '3.1'
111
+ - !ruby/object:Gem::Dependency
112
+ name: rspec-given
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - '>='
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: turnip
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - '>='
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - '>='
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: guard-rspec
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - '>='
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - '>='
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ description: Core components for Vigilem handlers and Converters
154
+ email: jtzero511@gmail
155
+ executables: []
156
+ extensions: []
157
+ extra_rdoc_files: []
158
+ files:
159
+ - lib/vigilem/core.rb
160
+ - lib/vigilem/core/abstract_device.rb
161
+ - lib/vigilem/core/adapters.rb
162
+ - lib/vigilem/core/adapters/adapter.rb
163
+ - lib/vigilem/core/adapters/basic_adapter.rb
164
+ - lib/vigilem/core/adapters/buffered_adapter.rb
165
+ - lib/vigilem/core/buffer.rb
166
+ - lib/vigilem/core/buffer_handler.rb
167
+ - lib/vigilem/core/default_buffer.rb
168
+ - lib/vigilem/core/demultiplexer.rb
169
+ - lib/vigilem/core/device.rb
170
+ - lib/vigilem/core/event_handler.rb
171
+ - lib/vigilem/core/eventable.rb
172
+ - lib/vigilem/core/hooks.rb
173
+ - lib/vigilem/core/hooks/callback.rb
174
+ - lib/vigilem/core/hooks/callback_proc.rb
175
+ - lib/vigilem/core/hooks/conditional_hook.rb
176
+ - lib/vigilem/core/hooks/hook.rb
177
+ - lib/vigilem/core/hooks/inheritable.rb
178
+ - lib/vigilem/core/hooks/meta_callback.rb
179
+ - lib/vigilem/core/hooks/utils.rb
180
+ - lib/vigilem/core/hub.rb
181
+ - lib/vigilem/core/input_system_handler.rb
182
+ - lib/vigilem/core/lockable_pipeline_component.rb
183
+ - lib/vigilem/core/multiplexer.rb
184
+ - lib/vigilem/core/pipeline.rb
185
+ - lib/vigilem/core/stat.rb
186
+ - lib/vigilem/core/system.rb
187
+ - lib/vigilem/core/system/check.rb
188
+ - lib/vigilem/core/transfer_agent.rb
189
+ - lib/vigilem/core/version.rb
190
+ - spec/bug_notes.txt
191
+ - spec/given_helper.rb
192
+ - spec/spec_helper.rb
193
+ - spec/vigilem/core/abstract_device_spec.rb
194
+ - spec/vigilem/core/adapters/adapter_spec.rb
195
+ - spec/vigilem/core/adapters/basic_adapter_spec.rb
196
+ - spec/vigilem/core/adapters/buffered_adapter_spec.rb
197
+ - spec/vigilem/core/buffer_handler_spec.rb
198
+ - spec/vigilem/core/buffer_spec.rb
199
+ - spec/vigilem/core/default_buffer_spec.rb
200
+ - spec/vigilem/core/demultiplexer_spec.rb
201
+ - spec/vigilem/core/device_spec.rb
202
+ - spec/vigilem/core/event_handler_spec.rb
203
+ - spec/vigilem/core/hooks/callback_proc_spec.rb
204
+ - spec/vigilem/core/hooks/hook_spec.rb
205
+ - spec/vigilem/core/hooks/inheritable_spec.rb
206
+ - spec/vigilem/core/hooks/meta_callback_spec.rb
207
+ - spec/vigilem/core/hooks/utils_spec.rb
208
+ - spec/vigilem/core/hooks_spec.rb
209
+ - spec/vigilem/core/hub_spec.rb
210
+ - spec/vigilem/core/input_system_handler_spec.rb
211
+ - spec/vigilem/core/lockable_pipeline_component_spec.rb
212
+ - spec/vigilem/core/multiplexer_spec.rb
213
+ - spec/vigilem/core/pipeline_spec.rb
214
+ - spec/vigilem/core/stat_spec.rb
215
+ - spec/vigilem/core/system/check_spec.rb
216
+ - spec/vigilem/core/system_spec.rb
217
+ - spec/vigilem/core/transfer_agent_spec.rb
218
+ homepage: http://rubygems.org/gems/vigilem-core
219
+ licenses:
220
+ - MIT
221
+ metadata:
222
+ source_code: hg@bitbucket.com/jtzero/vigilem-core
223
+ project_page: http://bitbucket.com/jtzero/vigilem-core
224
+ bug_tracker: http://bitbucket.com/jtzero/vigilem-core/issues
225
+ post_install_message:
226
+ rdoc_options: []
227
+ require_paths:
228
+ - lib
229
+ required_ruby_version: !ruby/object:Gem::Requirement
230
+ requirements:
231
+ - - '>='
232
+ - !ruby/object:Gem::Version
233
+ version: '0'
234
+ required_rubygems_version: !ruby/object:Gem::Requirement
235
+ requirements:
236
+ - - '>='
237
+ - !ruby/object:Gem::Version
238
+ version: '0'
239
+ requirements: []
240
+ rubyforge_project:
241
+ rubygems_version: 2.4.6
242
+ signing_key:
243
+ specification_version: 4
244
+ summary: Core components for Vigilem handlers and Converters
245
+ test_files:
246
+ - spec/bug_notes.txt
247
+ - spec/given_helper.rb
248
+ - spec/spec_helper.rb
249
+ - spec/vigilem/core/abstract_device_spec.rb
250
+ - spec/vigilem/core/adapters/adapter_spec.rb
251
+ - spec/vigilem/core/adapters/basic_adapter_spec.rb
252
+ - spec/vigilem/core/adapters/buffered_adapter_spec.rb
253
+ - spec/vigilem/core/buffer_handler_spec.rb
254
+ - spec/vigilem/core/buffer_spec.rb
255
+ - spec/vigilem/core/default_buffer_spec.rb
256
+ - spec/vigilem/core/demultiplexer_spec.rb
257
+ - spec/vigilem/core/device_spec.rb
258
+ - spec/vigilem/core/event_handler_spec.rb
259
+ - spec/vigilem/core/hooks/callback_proc_spec.rb
260
+ - spec/vigilem/core/hooks/hook_spec.rb
261
+ - spec/vigilem/core/hooks/inheritable_spec.rb
262
+ - spec/vigilem/core/hooks/meta_callback_spec.rb
263
+ - spec/vigilem/core/hooks/utils_spec.rb
264
+ - spec/vigilem/core/hooks_spec.rb
265
+ - spec/vigilem/core/hub_spec.rb
266
+ - spec/vigilem/core/input_system_handler_spec.rb
267
+ - spec/vigilem/core/lockable_pipeline_component_spec.rb
268
+ - spec/vigilem/core/multiplexer_spec.rb
269
+ - spec/vigilem/core/pipeline_spec.rb
270
+ - spec/vigilem/core/stat_spec.rb
271
+ - spec/vigilem/core/system/check_spec.rb
272
+ - spec/vigilem/core/system_spec.rb
273
+ - spec/vigilem/core/transfer_agent_spec.rb