iterm2-viewer 0.0.3 → 0.0.4

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
  SHA1:
3
- metadata.gz: 00ade4c0971642bec72b2e0982f40f31b0b802e1
4
- data.tar.gz: 045f7d2ca65386bc955388bc529dadb84a75671e
3
+ metadata.gz: 4c939586a9e3fcfe8bb750d994245c67c77ef1b3
4
+ data.tar.gz: d3acb5b1f9ae229d1ac4699965a2e204e5c01ad2
5
5
  SHA512:
6
- metadata.gz: 21cd093e1df2539c3fd2ac86e31d3e224b5824da552a2e512bf5a3c68a6c94d5a0d165e75d966f68379a419ed01a719efbb45f187cb1c1e5b88ae4850276d0be
7
- data.tar.gz: e1c3e35bb45b7db5bf440051d46d6bdf49540ff6fa10c7370834fa32940af4b5786d7b91583c008ee9e6b234710c78e901f33b68c796323c3b49a7f5d93f3270
6
+ metadata.gz: 0ac2ed4d9b107d109a00c8cad44ed0049ec68074211d69337201532b9a314fc8673105bcfd0287c0b413d0a4242e22b70e8bdfc3386e9cc6371351711d7a928a
7
+ data.tar.gz: eceed5eab5b7a1c9cb5db0ab26d0fe7c925f89ee5d8771e8b6466b759bc29a6203ef90fa228ff4262b4b2ab9642938f80d18a9b875e3444e3475911e580fc531
data/Guardfile ADDED
@@ -0,0 +1,37 @@
1
+ # A sample Guardfile
2
+ # More info at https://github.com/guard/guard#readme
3
+
4
+ guard :bundler do
5
+ watch('Gemfile')
6
+ watch(/^.+\.gemspec/)
7
+ end
8
+
9
+ guard :inch do
10
+ watch(/.+\.rb/)
11
+ end
12
+
13
+ guard :reek do
14
+ watch(%r{.+\.rb$})
15
+ end
16
+
17
+ guard :rubocop, cli: ['--format', 'simple'] do
18
+ watch(%r{.+\.rb$})
19
+ watch(%r{(?:.+/)?\.rubocop\.yml$}) { |m| File.dirname(m[0]) }
20
+ end
21
+
22
+ guard :yard do
23
+ watch(%r{bin/.+\.rb})
24
+ watch(%r{lib/.+\.rb})
25
+ end
26
+
27
+ guard :minitest do
28
+ # with Minitest::Unit
29
+ watch(%r{^test/(.*)\/?test_(.*)\.rb$})
30
+ watch(%r{^lib/(.*/)?([^/]+)\.rb$}) { |m| "test/#{m[1]}test_#{m[2]}.rb" }
31
+ watch(%r{^test/test_helper\.rb$}) { 'test' }
32
+
33
+ # with Minitest::Spec
34
+ # watch(%r{^spec/(.*)_spec\.rb$})
35
+ # watch(%r{^lib/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
36
+ # watch(%r{^spec/spec_helper\.rb$}) { 'spec' }
37
+ end
data/bin/iterm2-viewer CHANGED
@@ -1,143 +1,27 @@
1
1
  #!/usr/bin/env ruby
2
2
  # encoding: utf-8
3
3
 
4
- # Resolve dependencies
5
- lib = File.expand_path('../lib', __FILE__)
6
- $LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..', 'lib')
7
-
8
- # Dependencies
9
- require 'base64'
10
- require 'mime/types'
11
-
12
- # Core module of application
13
- module Viewer
14
-
15
- # Metaclass
16
- class << self
17
- # @return [Symbol] instance of configuration hash
18
- # @return [Symbol] show interface for initialization withs arguments
19
- attr_accessor :configuration, :show
20
- end
21
-
22
- # public method for overriding default configuration
23
- # @return [Hash] of parameters
24
- def self.configure
25
- self.configuration ||= Configuration.new
26
- yield(configuration)
27
- end
28
-
29
- # Configuration class
30
- class Configuration
31
- attr_accessor :viewport
32
-
33
- # Defaults configuration
34
- def initialize
35
- @viewport =
36
- {
37
- width: 'auto',
38
- height: 'auto',
39
- keep_aspect_ratio: true
40
- }
41
- end
42
- end
43
-
44
- # initialization method which pass the arguments from the shell
45
- def self.show(arguments)
46
- Base.new arguments if arguments.any?
47
- end
48
-
49
- # Validate and render objects passed in arguments
50
- class Base
51
- # Insaniate and render media objects
52
- def initialize(routes)
53
- routes.each { |object| render Media.new object if exist? object }
54
- end
55
-
56
- # Determine is file exist or not
57
- # @return [Boolean] availability of object
58
- def exist?(object)
59
- File.file? object
60
- end
61
-
62
- # Create new instance of renderable object
63
- class Media < String
64
- # @return [Symbol] renderable validator which determine that file is supportable or not
65
- # @return [Symbol] data return base64 string of file
66
- attr_reader :renderable, :data
67
-
68
- # Create new media object
69
- def initialize(data)
70
- super(data)
71
- @mime ||= MIME::Types.of(self).first
72
- @data ||= construct
73
- end
74
-
75
- # Construct base64 blob from binary
76
- # @return [String] base64 data of binary file
77
- # if file is renderable
78
- # @return [Boolean] false
79
- # if object can not be render
80
- def construct
81
- if self.renderable?
82
- source = open self
83
- Base64.encode64(source.read)
84
- else
85
- nil
86
- end
87
- end
88
-
89
- # Detect current kind such as (application, image, docuemtn) and so on of selected file
90
- # @return [String] current kind of file
91
- def kind
92
- @mime.media_type
93
- end
94
-
95
- # Detect current type such as (.png, .pdf, .txt) and so on of selected file
96
- # @return [String] current type of file
97
- def type
98
- @mime.sub_type
99
- end
100
-
101
- # Determine whether that type is renderable
102
- # @note Renderable Types and MIME's listed below in Type module
103
- # @return [Boolean] current condition
104
- def type_renderable?
105
- Type.const_get kind.capitalize
106
- rescue NameError
107
- false
108
- end
109
-
110
- # Determine whether that type is renderable
111
- # @note Renderable Types and MIME's listed below in Type module
112
- # @return [Boolean]
113
- def kind_renderable?
114
- type_renderable? ? (Type.const_get(kind.capitalize)::MIME.include? type) : false
115
- end
116
- alias_method :renderable?, :kind_renderable?
117
-
118
- # Store renderable types and kinds
119
- module Type
120
- module Image
121
- MIME = %w(jpeg jpg png tiff gif)
4
+ lib = File.expand_path(File.dirname(__FILE__) + '/../lib')
5
+ $LOAD_PATH.unshift(lib) if File.directory?(lib) && !$LOAD_PATH.include?(lib)
6
+
7
+ require 'iterm2/viewer'
8
+
9
+ module Iterm2
10
+ module Viewer
11
+ # Command line interface
12
+ # @param [String, #arguments] routes to files
13
+ class << self
14
+ def show(arguments)
15
+ # initialize whenever application called from iTerm2
16
+ if ENV['TERM_PROGRAM'] == 'iTerm.app'
17
+ arguments.each do |route|
18
+ Render.new Media.new route if File.file? route
19
+ end
122
20
  end
123
- end
124
- end
125
-
126
- # Render object in command line
127
- # @todo add options support
128
- # @param object [Viewer::Base::Media]
129
- def render(object)
130
- # @see http://iterm2.com/images.html
131
- # @note based on https://raw.githubusercontent.com/gnachman/iTerm2/master/tests/imgcat
132
- puts "\033]1337;File=;inline=1:#{object.data}\a\n" if object.renderable?
21
+ end
133
22
  end
134
23
  end
135
24
  end
136
25
 
137
- # Override defaults
138
- Viewer.configure do |config|
139
- config.viewport[:width] = 10
140
- end
141
-
142
26
  # Run application with shell parameters
143
- Viewer.show ARGV
27
+ Iterm2::Viewer.show ARGV
@@ -1,49 +1,50 @@
1
- # coding: utf-8
1
+ # encoding: utf-8
2
2
  lib = File.expand_path('../lib', __FILE__)
3
3
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
  require 'iterm2/viewer/version'
5
5
 
6
6
  Gem::Specification.new do |spec|
7
- spec.name = "iterm2-viewer"
7
+ spec.name = 'iterm2-viewer'
8
8
  spec.version = Iterm2::Viewer::VERSION
9
- spec.authors = [" Andrey"]
10
- spec.email = ["andrey@antipov.me"]
9
+ spec.authors = ['Andrey']
10
+ spec.email = ['andrey@antipov.me']
11
11
  spec.summary = %q{Display media files in iTerm2.}
12
12
  spec.description = %q{Display media files in terminal. iTerm2 is required}
13
- spec.homepage = "https://github.com/AndreyAntipov/iterm2-viewer"
14
- spec.license = "MIT"
13
+ spec.homepage = 'https://github.com/AndreyAntipov/iterm2-viewer'
14
+ spec.license = 'MIT'
15
15
 
16
16
  spec.files = `git ls-files -z`.split("\x0")
17
17
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
- spec.require_paths = ["lib"]
19
+ spec.require_paths = ['lib']
20
20
 
21
- spec.add_development_dependency "bundler", "~> 1.7"
22
- spec.add_development_dependency "rake", "~> 10.0"
21
+ spec.add_development_dependency 'bundler', '~> 1.7'
22
+ spec.add_development_dependency 'rake', '~> 10.0'
23
23
 
24
24
  # runtime dependency
25
25
  spec.add_runtime_dependency 'mime-types'
26
26
 
27
27
  # docs
28
28
  spec.add_development_dependency 'yard'
29
- spec.add_development_dependency 'inch'
30
29
 
31
- # tests
30
+ # code coverage
32
31
  spec.add_development_dependency 'simplecov'
33
- spec.add_development_dependency 'factory_girl'
32
+ spec.add_development_dependency 'inch'
33
+
34
+ # code metrics
34
35
  spec.add_development_dependency 'rubocop'
35
36
  spec.add_development_dependency 'reek'
36
- spec.add_development_dependency 'rspec'
37
- spec.add_development_dependency 'rspec-expectations'
38
- spec.add_development_dependency 'fuubar'
37
+
38
+ # tests
39
+ spec.add_development_dependency 'minitest'
40
+ spec.add_development_dependency 'minitest-reporters'
39
41
 
40
42
  # automation
41
43
  spec.add_development_dependency 'guard'
42
44
  spec.add_development_dependency 'guard-inch'
43
- spec.add_development_dependency 'guard-rubocop'
44
45
  spec.add_development_dependency 'guard-yard'
45
46
  spec.add_development_dependency 'guard-reek'
46
- spec.add_development_dependency 'guard-rspec'
47
+ spec.add_development_dependency 'guard-rubocop'
48
+ spec.add_development_dependency 'guard-minitest'
47
49
  spec.add_development_dependency 'guard-bundler'
48
-
49
50
  end
data/lib/iterm2/viewer.rb CHANGED
@@ -1,7 +1,8 @@
1
- require "iterm2/viewer/version"
1
+ require 'iterm2/viewer/version'
2
+ require 'iterm2/viewer/media'
3
+ require 'iterm2/viewer/render'
2
4
 
3
5
  module Iterm2
4
6
  module Viewer
5
- # Your code goes here...
6
7
  end
7
8
  end
@@ -1,5 +1,5 @@
1
1
  module Iterm2
2
2
  module Viewer
3
- VERSION = "0.0.3"
3
+ VERSION = '0.0.4'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: iterm2-viewer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
- - " Andrey"
7
+ - Andrey
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-10-15 00:00:00.000000000 Z
11
+ date: 2014-11-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -66,20 +66,6 @@ dependencies:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
- - !ruby/object:Gem::Dependency
70
- name: inch
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - ">="
74
- - !ruby/object:Gem::Version
75
- version: '0'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- version: '0'
83
69
  - !ruby/object:Gem::Dependency
84
70
  name: simplecov
85
71
  requirement: !ruby/object:Gem::Requirement
@@ -95,7 +81,7 @@ dependencies:
95
81
  - !ruby/object:Gem::Version
96
82
  version: '0'
97
83
  - !ruby/object:Gem::Dependency
98
- name: factory_girl
84
+ name: inch
99
85
  requirement: !ruby/object:Gem::Requirement
100
86
  requirements:
101
87
  - - ">="
@@ -137,21 +123,7 @@ dependencies:
137
123
  - !ruby/object:Gem::Version
138
124
  version: '0'
139
125
  - !ruby/object:Gem::Dependency
140
- name: 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
- - !ruby/object:Gem::Dependency
154
- name: rspec-expectations
126
+ name: minitest
155
127
  requirement: !ruby/object:Gem::Requirement
156
128
  requirements:
157
129
  - - ">="
@@ -165,7 +137,7 @@ dependencies:
165
137
  - !ruby/object:Gem::Version
166
138
  version: '0'
167
139
  - !ruby/object:Gem::Dependency
168
- name: fuubar
140
+ name: minitest-reporters
169
141
  requirement: !ruby/object:Gem::Requirement
170
142
  requirements:
171
143
  - - ">="
@@ -207,7 +179,7 @@ dependencies:
207
179
  - !ruby/object:Gem::Version
208
180
  version: '0'
209
181
  - !ruby/object:Gem::Dependency
210
- name: guard-rubocop
182
+ name: guard-yard
211
183
  requirement: !ruby/object:Gem::Requirement
212
184
  requirements:
213
185
  - - ">="
@@ -221,7 +193,7 @@ dependencies:
221
193
  - !ruby/object:Gem::Version
222
194
  version: '0'
223
195
  - !ruby/object:Gem::Dependency
224
- name: guard-yard
196
+ name: guard-reek
225
197
  requirement: !ruby/object:Gem::Requirement
226
198
  requirements:
227
199
  - - ">="
@@ -235,7 +207,7 @@ dependencies:
235
207
  - !ruby/object:Gem::Version
236
208
  version: '0'
237
209
  - !ruby/object:Gem::Dependency
238
- name: guard-reek
210
+ name: guard-rubocop
239
211
  requirement: !ruby/object:Gem::Requirement
240
212
  requirements:
241
213
  - - ">="
@@ -249,7 +221,7 @@ dependencies:
249
221
  - !ruby/object:Gem::Version
250
222
  version: '0'
251
223
  - !ruby/object:Gem::Dependency
252
- name: guard-rspec
224
+ name: guard-minitest
253
225
  requirement: !ruby/object:Gem::Requirement
254
226
  requirements:
255
227
  - - ">="
@@ -286,6 +258,7 @@ extra_rdoc_files: []
286
258
  files:
287
259
  - ".gitignore"
288
260
  - Gemfile
261
+ - Guardfile
289
262
  - LICENSE.txt
290
263
  - README.md
291
264
  - Rakefile