hexdump 0.2.1 → 0.2.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,2 @@
1
+ doc/
2
+ pkg/
data/.yardopts CHANGED
@@ -1 +1 @@
1
- --markup markdown --title "hexdump Documentation" --protected
1
+ --markup markdown --title "hexdump Documentation" --protected --quiet
@@ -1,3 +1,18 @@
1
+ ### 0.2.3 / 2012-05-28
2
+
3
+ * Fixed a typo in the gemspec, which incorrectly set
4
+ `required_rubygems_version` to the same value as `required_ruby_version`.
5
+
6
+ ### 0.2.2 / 2012-05-27
7
+
8
+ * Added {Hexdump::VERSION}.
9
+ * Rescue `RangeError`s in {Hexdump::Dumper#format_printable}.
10
+ * Fixed a typo in `benchmarks/hexdump.rb` (thanks ColMcp).
11
+ * Fixed a typo in Source URL, in the README (thanks Lawrence Woodman).
12
+ * Documented the `:endian` option for {Hexdump.dump}.
13
+ * Replaced ore-tasks with
14
+ [rubygems-tasks](https://github.com/postmodern/rubygems-tasks#readme).
15
+
1
16
  ### 0.2.1 / 2011-06-11
2
17
 
3
18
  * Fixed a major bug in {Hexdump::Dumper#dump}, where the line buffers
data/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # hexdump
2
2
 
3
- * [Homepage](http://github.com/postmoderm/hexdump)
4
- * [Issues](http://github.com/postmoderm/hexdump/issues)
3
+ * [Source](https://github.com/postmodern/hexdump)
4
+ * [Issues](https://github.com/postmodern/hexdump/issues)
5
5
  * [Documentation](http://rubydoc.info/gems/hexdump/frames)
6
6
  * [Email](mailto:postmodern.mod3 at gmail.com)
7
7
 
data/Rakefile CHANGED
@@ -2,13 +2,13 @@ require 'rubygems'
2
2
  require 'rake'
3
3
 
4
4
  begin
5
- gem 'ore-tasks', '~> 0.4'
6
- require 'ore/tasks'
5
+ gem 'rubygems-tasks', '~> 0.1'
6
+ require 'rubygems/tasks'
7
7
 
8
- Ore::Tasks.new
8
+ Gem::Tasks.new
9
9
  rescue LoadError => e
10
- STDERR.puts e.message
11
- STDERR.puts "Run `gem install ore-tasks` to install 'ore/tasks'."
10
+ warn e.message
11
+ warn "Run `gem install rubygems-tasks` to install 'rubygems/tasks'."
12
12
  end
13
13
 
14
14
  begin
@@ -26,7 +26,7 @@ task :test => :spec
26
26
  task :default => :spec
27
27
 
28
28
  begin
29
- gem 'yard', '~> 0.6.0'
29
+ gem 'yard', '~> 0.7'
30
30
  require 'yard'
31
31
 
32
32
  YARD::Rake::YardocTask.new
@@ -26,11 +26,11 @@ Benchmark.bm(27) do |b|
26
26
  end
27
27
 
28
28
  b.report('hexdump ascii=true (block)') do
29
- Hexdump.dump(DATA, :ascci => true) { |index,hex,print| }
29
+ Hexdump.dump(DATA, :ascii => true) { |index,hex,print| }
30
30
  end
31
31
 
32
32
  b.report('hexdump ascii=true') do
33
- Hexdump.dump(DATA, :ascci => true, :output => OUTPUT)
33
+ Hexdump.dump(DATA, :ascii => true, :output => OUTPUT)
34
34
  end
35
35
 
36
36
  [2, 4, 8].each do |word_size|
@@ -1,16 +1,15 @@
1
1
  name: hexdump
2
- version: 0.2.1
3
2
  summary: Hexdump Strings and IO objects.
4
3
  description: Simple and Fast hexdumping for Ruby.
5
4
  license: MIT
6
5
  authors: Postmodern
7
6
  email: postmodern.mod3@gmail.com
8
- homepage: http://github.com/postmodern/hexdump
7
+ homepage: https://github.com/postmodern/hexdump#readme
9
8
  has_yard: true
10
9
 
11
10
  required_ruby_version: ">= 1.8.7"
12
11
 
13
12
  development_dependencies:
14
- ore-tasks: ~> 0.4
13
+ rubygems-tasks: ~> 0.1
15
14
  rspec: ~> 2.4
16
- yard: ~> 0.6.0
15
+ yard: ~> 0.7
@@ -1,15 +1,60 @@
1
- # -*- encoding: utf-8 -*-
1
+ # encoding: utf-8
2
2
 
3
- begin
4
- Ore::Specification.new do |gemspec|
5
- # custom logic here
3
+ require 'yaml'
4
+
5
+ Gem::Specification.new do |gem|
6
+ gemspec = YAML.load_file('gemspec.yml')
7
+
8
+ gem.name = gemspec.fetch('name')
9
+ gem.version = gemspec.fetch('version') do
10
+ lib_dir = File.join(File.dirname(__FILE__),'lib')
11
+ $LOAD_PATH << lib_dir unless $LOAD_PATH.include?(lib_dir)
12
+
13
+ require 'hexdump/version'
14
+ Hexdump::VERSION
15
+ end
16
+
17
+ gem.summary = gemspec['summary']
18
+ gem.description = gemspec['description']
19
+ gem.licenses = Array(gemspec['license'])
20
+ gem.authors = Array(gemspec['authors'])
21
+ gem.email = gemspec['email']
22
+ gem.homepage = gemspec['homepage']
23
+
24
+ glob = lambda { |patterns| gem.files & Dir[*patterns] }
25
+
26
+ gem.files = `git ls-files`.split($/)
27
+ gem.files = glob[gemspec['files']] if gemspec['files']
28
+
29
+ gem.executables = gemspec.fetch('executables') do
30
+ glob['bin/*'].map { |path| File.basename(path) }
6
31
  end
7
- rescue NameError
8
- begin
9
- require 'ore/specification'
10
- retry
11
- rescue LoadError
12
- STDERR.puts "The '#{__FILE__}' file requires Ore."
13
- STDERR.puts "Run `gem install ore-core` to install Ore."
32
+ gem.default_executable = gem.executables.first if Gem::VERSION < '1.7.'
33
+
34
+ gem.extensions = glob[gemspec['extensions'] || 'ext/**/extconf.rb']
35
+ gem.test_files = glob[gemspec['test_files'] || '{test/{**/}*_test.rb']
36
+ gem.extra_rdoc_files = glob[gemspec['extra_doc_files'] || '*.{txt,md}']
37
+
38
+ gem.require_paths = Array(gemspec.fetch('require_paths') {
39
+ %w[ext lib].select { |dir| File.directory?(dir) }
40
+ })
41
+
42
+ gem.requirements = gemspec['requirements']
43
+ gem.required_ruby_version = gemspec['required_ruby_version']
44
+ gem.required_rubygems_version = gemspec['required_rubygems_version']
45
+ gem.post_install_message = gemspec['post_install_message']
46
+
47
+ split = lambda { |string| string.split(/,\s*/) }
48
+
49
+ if gemspec['dependencies']
50
+ gemspec['dependencies'].each do |name,versions|
51
+ gem.add_dependency(name,split[versions])
52
+ end
53
+ end
54
+
55
+ if gemspec['development_dependencies']
56
+ gemspec['development_dependencies'].each do |name,versions|
57
+ gem.add_development_dependency(name,split[versions])
58
+ end
14
59
  end
15
60
  end
@@ -1,2 +1,3 @@
1
1
  require 'hexdump/hexdump'
2
2
  require 'hexdump/extensions'
3
+ require 'hexdump/version'
@@ -27,9 +27,9 @@ module Hexdump
27
27
  # Format Strings for the various bases
28
28
  FORMATS = {
29
29
  :hexadecimal => proc { |width| "%.#{width}x" },
30
- :decimal => proc { |width| "%#{width}.d" },
31
- :octal => proc { |width| "%.#{width}o" },
32
- :binary => proc { |width| "%.#{width}b" }
30
+ :decimal => proc { |width| "%#{width}.d" },
31
+ :octal => proc { |width| "%.#{width}o" },
32
+ :binary => proc { |width| "%.#{width}b" }
33
33
  }
34
34
 
35
35
  # Character to represent unprintable characters
@@ -160,6 +160,10 @@ module Hexdump
160
160
  # @option options [Integer] :width (16)
161
161
  # The number of bytes to dump for each line.
162
162
  #
163
+ # @option options [Integer] :endian (:little)
164
+ # The endianness that the bytes are organized in. Supported endianness
165
+ # include `:little` and `:big`.
166
+ #
163
167
  # @option options [Integer] :word_size (1)
164
168
  # The number of bytes within a word.
165
169
  #
@@ -245,7 +249,7 @@ module Hexdump
245
249
  end
246
250
 
247
251
  if @word_size > 1
248
- word = 0
252
+ word = 0
249
253
  count = 0
250
254
 
251
255
  init_shift = if @endian == :big
@@ -269,7 +273,7 @@ module Hexdump
269
273
  if count >= @word_size
270
274
  yield word
271
275
 
272
- word = 0
276
+ word = 0
273
277
  count = 0
274
278
  shift = init_shift
275
279
  end
@@ -316,13 +320,13 @@ module Hexdump
316
320
  printable = []
317
321
 
318
322
  each_word(data) do |word|
319
- numeric << format_numeric(word)
323
+ numeric << format_numeric(word)
320
324
  printable << format_printable(word)
321
325
 
322
326
  count += 1
323
327
 
324
328
  if count >= @width
325
- yield(index,numeric,printable)
329
+ yield index, numeric, printable
326
330
 
327
331
  numeric.clear
328
332
  printable.clear
@@ -334,7 +338,7 @@ module Hexdump
334
338
 
335
339
  if count > 0
336
340
  # yield the remaining data
337
- yield(index,numeric,printable)
341
+ yield index, numeric, printable
338
342
  end
339
343
  end
340
344
 
@@ -365,11 +369,11 @@ module Hexdump
365
369
  index = 0
366
370
  count = 0
367
371
 
368
- numeric = ''
372
+ numeric = ''
369
373
  printable = ''
370
374
 
371
375
  each_word(data) do |word|
372
- numeric << format_numeric(word) << ' '
376
+ numeric << format_numeric(word) << ' '
373
377
  printable << format_printable(word)
374
378
 
375
379
  count += 1
@@ -377,11 +381,11 @@ module Hexdump
377
381
  if count >= @width
378
382
  output << sprintf(line_format,index,numeric,printable)
379
383
 
380
- numeric = ''
384
+ numeric = ''
381
385
  printable = ''
382
386
 
383
387
  index += (@width * @word_size)
384
- count = 0
388
+ count = 0
385
389
  end
386
390
  end
387
391
 
@@ -431,7 +435,11 @@ module Hexdump
431
435
  if @word_size == 1
432
436
  PRINTABLE[word]
433
437
  elsif (RUBY_VERSION > '1.9.' && (word >= -2 && word <= 0x7fffffff))
434
- word.chr(Encoding::UTF_8)
438
+ begin
439
+ word.chr(Encoding::UTF_8)
440
+ rescue RangeError
441
+ UNPRINTABLE
442
+ end
435
443
  else
436
444
  UNPRINTABLE
437
445
  end
@@ -30,6 +30,10 @@ module Hexdump
30
30
  # @option options [Integer] :width (16)
31
31
  # The number of bytes to dump for each line.
32
32
  #
33
+ # @option options [Integer] :endian (:little)
34
+ # The endianness that the bytes are organized in. Supported endianness
35
+ # include `:little` and `:big`.
36
+ #
33
37
  # @option options [Integer] :word_size (1)
34
38
  # The number of bytes within a word.
35
39
  #
@@ -0,0 +1,4 @@
1
+ module Hexdump
2
+ # hexdump version
3
+ VERSION = '0.2.3'
4
+ end
metadata CHANGED
@@ -1,64 +1,76 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: hexdump
3
- version: !ruby/object:Gem::Version
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.3
4
5
  prerelease:
5
- version: 0.2.1
6
6
  platform: ruby
7
- authors:
7
+ authors:
8
8
  - Postmodern
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
-
13
- date: 2011-06-11 00:00:00 Z
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
16
- name: ore-tasks
17
- prerelease: false
18
- requirement: &id001 !ruby/object:Gem::Requirement
12
+ date: 2012-05-28 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rubygems-tasks
16
+ requirement: !ruby/object:Gem::Requirement
19
17
  none: false
20
- requirements:
18
+ requirements:
21
19
  - - ~>
22
- - !ruby/object:Gem::Version
23
- version: "0.4"
20
+ - !ruby/object:Gem::Version
21
+ version: '0.1'
24
22
  type: :development
25
- version_requirements: *id001
26
- - !ruby/object:Gem::Dependency
27
- name: rspec
28
23
  prerelease: false
29
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: '0.1'
30
+ - !ruby/object:Gem::Dependency
31
+ name: rspec
32
+ requirement: !ruby/object:Gem::Requirement
30
33
  none: false
31
- requirements:
34
+ requirements:
32
35
  - - ~>
33
- - !ruby/object:Gem::Version
34
- version: "2.4"
36
+ - !ruby/object:Gem::Version
37
+ version: '2.4'
35
38
  type: :development
36
- version_requirements: *id002
37
- - !ruby/object:Gem::Dependency
38
- name: yard
39
39
  prerelease: false
40
- requirement: &id003 !ruby/object:Gem::Requirement
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: '2.4'
46
+ - !ruby/object:Gem::Dependency
47
+ name: yard
48
+ requirement: !ruby/object:Gem::Requirement
41
49
  none: false
42
- requirements:
50
+ requirements:
43
51
  - - ~>
44
- - !ruby/object:Gem::Version
45
- version: 0.6.0
52
+ - !ruby/object:Gem::Version
53
+ version: '0.7'
46
54
  type: :development
47
- version_requirements: *id003
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: '0.7'
48
62
  description: Simple and Fast hexdumping for Ruby.
49
- email:
50
- - postmodern.mod3@gmail.com
63
+ email: postmodern.mod3@gmail.com
51
64
  executables: []
52
-
53
65
  extensions: []
54
-
55
- extra_rdoc_files:
56
- - README.md
66
+ extra_rdoc_files:
57
67
  - ChangeLog.md
58
68
  - LICENSE.txt
59
- files:
69
+ - README.md
70
+ files:
60
71
  - .document
61
72
  - .gemtest
73
+ - .gitignore
62
74
  - .rspec
63
75
  - .yardopts
64
76
  - ChangeLog.md
@@ -76,38 +88,34 @@ files:
76
88
  - lib/hexdump/extensions/string.rb
77
89
  - lib/hexdump/extensions/string_io.rb
78
90
  - lib/hexdump/hexdump.rb
91
+ - lib/hexdump/version.rb
79
92
  - spec/dumper_spec.rb
80
93
  - spec/extensions_spec.rb
81
94
  - spec/hexdump_spec.rb
82
95
  - spec/spec_helper.rb
83
- homepage: http://github.com/postmodern/hexdump
84
- licenses:
96
+ homepage: https://github.com/postmodern/hexdump#readme
97
+ licenses:
85
98
  - MIT
86
99
  post_install_message:
87
100
  rdoc_options: []
88
-
89
- require_paths:
101
+ require_paths:
90
102
  - lib
91
- required_ruby_version: !ruby/object:Gem::Requirement
103
+ required_ruby_version: !ruby/object:Gem::Requirement
92
104
  none: false
93
- requirements:
94
- - - ">="
95
- - !ruby/object:Gem::Version
105
+ requirements:
106
+ - - ! '>='
107
+ - !ruby/object:Gem::Version
96
108
  version: 1.8.7
97
- required_rubygems_version: !ruby/object:Gem::Requirement
109
+ required_rubygems_version: !ruby/object:Gem::Requirement
98
110
  none: false
99
- requirements:
100
- - - ">="
101
- - !ruby/object:Gem::Version
102
- version: "0"
111
+ requirements:
112
+ - - ! '>='
113
+ - !ruby/object:Gem::Version
114
+ version: '0'
103
115
  requirements: []
104
-
105
- rubyforge_project: hexdump
106
- rubygems_version: 1.8.1
116
+ rubyforge_project:
117
+ rubygems_version: 1.8.24
107
118
  signing_key:
108
119
  specification_version: 3
109
120
  summary: Hexdump Strings and IO objects.
110
- test_files:
111
- - spec/dumper_spec.rb
112
- - spec/hexdump_spec.rb
113
- - spec/extensions_spec.rb
121
+ test_files: []