vtools 0.0.1

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 (47) hide show
  1. data/INSTALL +0 -0
  2. data/LICENSE +20 -0
  3. data/README.md +131 -0
  4. data/Rakefile +29 -0
  5. data/bin/vtools +22 -0
  6. data/doc/CONFIG.md +36 -0
  7. data/doc/HOOKS.md +37 -0
  8. data/doc/LIB_EXAMPLE.md +109 -0
  9. data/extconf.rb +7 -0
  10. data/lib/vtools.rb +79 -0
  11. data/lib/vtools/config.rb +91 -0
  12. data/lib/vtools/convert_options.rb +155 -0
  13. data/lib/vtools/converter.rb +98 -0
  14. data/lib/vtools/errors.rb +21 -0
  15. data/lib/vtools/handler.rb +43 -0
  16. data/lib/vtools/harvester.rb +71 -0
  17. data/lib/vtools/job.rb +48 -0
  18. data/lib/vtools/options.rb +101 -0
  19. data/lib/vtools/shared_methods.rb +131 -0
  20. data/lib/vtools/storage.rb +67 -0
  21. data/lib/vtools/thumbnailer.rb +93 -0
  22. data/lib/vtools/thumbs_options.rb +80 -0
  23. data/lib/vtools/version.rb +6 -0
  24. data/lib/vtools/version.rb~ +4 -0
  25. data/lib/vtools/video.rb +158 -0
  26. data/setup.rb +1585 -0
  27. data/spec/config_spec.rb +142 -0
  28. data/spec/convert_options_spec.rb +284 -0
  29. data/spec/converter_spec.rb +167 -0
  30. data/spec/errors_spec.rb +39 -0
  31. data/spec/fixtures/outputs/file_with_iso-8859-1.txt +35 -0
  32. data/spec/fixtures/outputs/file_with_no_audio.txt +18 -0
  33. data/spec/fixtures/outputs/file_with_non_supported_audio.txt +29 -0
  34. data/spec/fixtures/outputs/file_with_start_value.txt +19 -0
  35. data/spec/fixtures/outputs/file_with_surround_sound.txt +19 -0
  36. data/spec/handler_spec.rb +81 -0
  37. data/spec/harvester_spec.rb +189 -0
  38. data/spec/job_spec.rb +130 -0
  39. data/spec/options_spec.rb +52 -0
  40. data/spec/shared_methods_spec.rb +351 -0
  41. data/spec/spec_helper.rb +20 -0
  42. data/spec/storage_spec.rb +106 -0
  43. data/spec/thumbnailer_spec.rb +178 -0
  44. data/spec/thumbs_options_spec.rb +159 -0
  45. data/spec/video_spec.rb +274 -0
  46. data/vtools.gemspec +29 -0
  47. metadata +177 -0
@@ -0,0 +1,29 @@
1
+ # -*- encoding: binary -*-
2
+
3
+ $LOAD_PATH.unshift 'lib'
4
+ require "vtools/version"
5
+
6
+ Gem::Specification.new do |s|
7
+
8
+ s.name = "vtools"
9
+ s.summary = "Daemon tools to operate the video (get info, encode & generate thumbnails)."
10
+ s.description = File.read(File.join(File.dirname(__FILE__), 'README.md'))
11
+
12
+ s.extensions = 'extconf.rb'
13
+ s.requirements = ['ffmpeg v >= 1.8', 'ffmpegthumbnailer v >= 2', 'gem Daemons v >= 1.1.4']
14
+
15
+ s.files = Dir['**/**']
16
+ s.test_files = Dir["spec/*_spec.rb"]
17
+ s.executables = ["vtools"]
18
+
19
+ s.version = VTools::VERSION.join('.')
20
+ s.author = "tofir"
21
+ s.email = "v.tofir@gmail.com"
22
+ s.homepage = "http://tofir.comuv.com"
23
+ s.platform = Gem::Platform::RUBY
24
+ s.required_ruby_version = ">=1.9"
25
+
26
+ s.add_dependency 'daemons', '>= 1.1.4'
27
+ s.add_dependency 'json'
28
+ s.add_development_dependency 'rspec'
29
+ end
metadata ADDED
@@ -0,0 +1,177 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: vtools
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - tofir
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2011-11-23 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: daemons
16
+ requirement: &79101960 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: 1.1.4
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *79101960
25
+ - !ruby/object:Gem::Dependency
26
+ name: json
27
+ requirement: &79101770 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: *79101770
36
+ - !ruby/object:Gem::Dependency
37
+ name: rspec
38
+ requirement: &79101540 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ type: :development
45
+ prerelease: false
46
+ version_requirements: *79101540
47
+ description: ! "# VTools\n\nDaemon video processor tools to operate the video (get
48
+ info, encode & generate thumbnails).\nUnder the hood ffmpeg & ffmpegthumbnailer
49
+ are used.\nSome ideas has been taken at the streamio-ffmpeg gem (parse output methods).\n\nProject
50
+ was developed for the [WebTV](http://web.tv)\n\n## Installation\n\n (sudo) gem
51
+ install vtools\n\nPlease read changelog to check ffmpeg versions compatibility.\n\n##
52
+ Usage\n\n### Getting started\n\nBefore start, daemon should be correctly configured,
53
+ to have valid access to the storage.\nMandatory methods are: **connect**, **recv**
54
+ and **send**.\n\n``` ruby\n#--file library.rb--#\n# encoding: binary\n\n#to setup
55
+ storage:\nVTools::Storage.setup do\n\n # connection setup\n connect_action do\n
56
+ \ # ... connect to the storage (persistent)\n end\n\n # message reciever\n #
57
+ should return JSON encoded string\n # see complete storage setup reference for
58
+ details\n recv_action do\n # ... job data recieve algorithm\n end\n\n # message
59
+ sender\n # recieves hash: { :data => execution_result, :action => executed_action
60
+ }\n # execution_result can be video object or array with thumbnails\n send_action
61
+ do |result|\n # ... send action here\n end\nend\n\n# storage can be setup separate\nVTools::Storage.connect_action
62
+ do\n # ... connect to the storage\nend\n```\n\n### Setup message (JSON)\n\n```\n{
63
+ \"action\" : \"convert|thumbs|info\", \"file\" : \"path/to/file\", \"setup\" : <
64
+ setup > }\n# setup can be:\n# -- \"predefined_set_id\"\n# -- { ffmpeg_options_hash
65
+ }\n# -- { \"set\": \"predefined_set_str\", ffmpeg_options_hash }\n```\n\n### User
66
+ friendly option names\n\n```\nconverter (ffmpeg)\n preserve_aspect (true or false)\n
67
+ \ extension (result file extension)\n width, height\n resolution\n duration\n\nthumbnailer
68
+ (ffmpegthumbnailer)\n thumb_count\n thumb_start_point (in percents)\n time (time
69
+ offset, alias for -t)\n quality (0 - 10)\n width\n```\n\n## Start\n\nTo
70
+ launch daemon is enough to require library with storage setup:\n (sudo) vtools
71
+ start -- -r library\n\n## Options\n\n### Daemon options are\n start\n stop\n restart\n\n###
72
+ Application options are:\n -c or --config-file - load config from file\n -r or
73
+ --require - load ruby library file (can be used more than once)\n\n### To see
74
+ complete options list use\n vtools --help\n\n### Using logger\n\nBy default the
75
+ `logger` gem is used. But there is possibility to set custom logger, that is compatible
76
+ with the default logger.\n\n``` ruby\nVTools.logger = CustomLoger.new($stdout)\n```\n\n###
77
+ Additioinal methods\n\nPath generator is used by the thumnailer, converter or both
78
+ to generate necessary dir tree logic for the media.\nIt accepts file name and should
79
+ return relative path (excluding file name itself)\n\n``` ruby\n# path generator
80
+ (used to )\nVTools.path_generator do |file_name|\n # ..\nend\n\n```\n\n**Network
81
+ calls** (TCP GET request, that will return message body content, ignoring response
82
+ headers)\n\n``` ruby\n\n# http calls\nVTools.network_call \"site.com/some/uri\"\nVTools.network_call
83
+ \"www.site.com\"\nVTools.network_call \"http://www.site.com\"\n```\n"
84
+ email: v.tofir@gmail.com
85
+ executables:
86
+ - vtools
87
+ extensions:
88
+ - extconf.rb
89
+ extra_rdoc_files: []
90
+ files:
91
+ - bin/vtools
92
+ - README.md
93
+ - Rakefile
94
+ - lib/vtools.rb
95
+ - lib/vtools/video.rb
96
+ - lib/vtools/harvester.rb
97
+ - lib/vtools/storage.rb
98
+ - lib/vtools/converter.rb
99
+ - lib/vtools/version.rb
100
+ - lib/vtools/errors.rb
101
+ - lib/vtools/job.rb
102
+ - lib/vtools/convert_options.rb
103
+ - lib/vtools/version.rb~
104
+ - lib/vtools/thumbnailer.rb
105
+ - lib/vtools/shared_methods.rb
106
+ - lib/vtools/handler.rb
107
+ - lib/vtools/config.rb
108
+ - lib/vtools/options.rb
109
+ - lib/vtools/thumbs_options.rb
110
+ - INSTALL
111
+ - spec/job_spec.rb
112
+ - spec/convert_options_spec.rb
113
+ - spec/fixtures/outputs/file_with_start_value.txt
114
+ - spec/fixtures/outputs/file_with_surround_sound.txt
115
+ - spec/fixtures/outputs/file_with_iso-8859-1.txt
116
+ - spec/fixtures/outputs/file_with_no_audio.txt
117
+ - spec/fixtures/outputs/file_with_non_supported_audio.txt
118
+ - spec/config_spec.rb
119
+ - spec/harvester_spec.rb
120
+ - spec/storage_spec.rb
121
+ - spec/errors_spec.rb
122
+ - spec/handler_spec.rb
123
+ - spec/converter_spec.rb
124
+ - spec/video_spec.rb
125
+ - spec/spec_helper.rb
126
+ - spec/thumbnailer_spec.rb
127
+ - spec/options_spec.rb
128
+ - spec/shared_methods_spec.rb
129
+ - spec/thumbs_options_spec.rb
130
+ - doc/HOOKS.md
131
+ - doc/LIB_EXAMPLE.md
132
+ - doc/CONFIG.md
133
+ - LICENSE
134
+ - setup.rb
135
+ - vtools.gemspec
136
+ - extconf.rb
137
+ homepage: http://tofir.comuv.com
138
+ licenses: []
139
+ post_install_message:
140
+ rdoc_options: []
141
+ require_paths:
142
+ - lib
143
+ required_ruby_version: !ruby/object:Gem::Requirement
144
+ none: false
145
+ requirements:
146
+ - - ! '>='
147
+ - !ruby/object:Gem::Version
148
+ version: '1.9'
149
+ required_rubygems_version: !ruby/object:Gem::Requirement
150
+ none: false
151
+ requirements:
152
+ - - ! '>='
153
+ - !ruby/object:Gem::Version
154
+ version: '0'
155
+ requirements:
156
+ - ffmpeg v >= 1.8
157
+ - ffmpegthumbnailer v >= 2
158
+ - gem Daemons v >= 1.1.4
159
+ rubyforge_project:
160
+ rubygems_version: 1.8.10
161
+ signing_key:
162
+ specification_version: 3
163
+ summary: Daemon tools to operate the video (get info, encode & generate thumbnails).
164
+ test_files:
165
+ - spec/job_spec.rb
166
+ - spec/convert_options_spec.rb
167
+ - spec/config_spec.rb
168
+ - spec/harvester_spec.rb
169
+ - spec/storage_spec.rb
170
+ - spec/errors_spec.rb
171
+ - spec/handler_spec.rb
172
+ - spec/converter_spec.rb
173
+ - spec/video_spec.rb
174
+ - spec/thumbnailer_spec.rb
175
+ - spec/options_spec.rb
176
+ - spec/shared_methods_spec.rb
177
+ - spec/thumbs_options_spec.rb