yomu 0.1.10 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 23b6ed327cc94e45aea195294d84bb8dd669f1a6
4
- data.tar.gz: c5ef3d9857242820b04f7c76f2f90834a7235a62
3
+ metadata.gz: ef1ce415813b44ff2a36e29a49b59768dd72f7f3
4
+ data.tar.gz: 17c69e97c25e156d101e6cef2c5b3f1fb149190d
5
5
  SHA512:
6
- metadata.gz: 195f73de69ed781c97f10fffac2971a258a2f23ede81e6ebbc1ce34400c38de4fccac93b765df37c0ca3ab105a95a682977fcc6c71a3d86f810a674e2226ed0e
7
- data.tar.gz: a5f562f9de92eedf29a2cf889f1083f03d19928f10998998131c06f3457613e40e06a7fd2f116a88bb74058e1bceb7fe62402aa6204e0fe1a81adcc71cf1c422
6
+ metadata.gz: 3ad3d4a04d785d0a31028f91d196d797d98e93f9289693d53987f9f72086c6e1c2a86057bc54055e2eb5db87324d370229cb92e8d2bc1ccccf8ecc09a8764f44
7
+ data.tar.gz: f1e70048c8c42b9750e14bb0b85250114e0674599663da6418cdc4d893947220247be46e16e002f909170b8f86526bd96c4610a515f1ee0c14728e2a77705a55
data/.travis.yml ADDED
@@ -0,0 +1,5 @@
1
+ language: ruby
2
+ rvm:
3
+ - 1.9.3
4
+ - 2.0.0
5
+ - 2.1.0
data/README.md CHANGED
@@ -1,4 +1,5 @@
1
- ![Google Analytics](https://ga-beacon.appspot.com/UA-31066891-2/yomu/code)
1
+ [![Build Status](https://travis-ci.org/Erol/yomu.png?branch=master)](https://travis-ci.org/Erol/yomu)
2
+ [![Code Climate](https://codeclimate.com/github/Erol/yomu.png)](https://codeclimate.com/github/Erol/yomu)
2
3
 
3
4
  # Yomu 読む
4
5
 
data/lib/yomu.rb CHANGED
@@ -2,7 +2,7 @@ require 'yomu/version'
2
2
 
3
3
  require 'net/http'
4
4
  require 'mime/types'
5
- require 'yaml'
5
+ require 'json'
6
6
 
7
7
  class Yomu
8
8
  GEMPATH = File.dirname(File.dirname(__FILE__))
@@ -21,11 +21,11 @@ class Yomu
21
21
  when :html
22
22
  '-h'
23
23
  when :metadata
24
- '-m'
24
+ '-m -j'
25
25
  when :mimetype
26
- '-m'
26
+ '-m -j'
27
27
  end
28
-
28
+
29
29
  result = IO.popen "#{java} -Djava.awt.headless=true -jar #{Yomu::JARPATH} #{switch}", 'r+' do |io|
30
30
  io.write data
31
31
  io.close_write
@@ -38,9 +38,9 @@ class Yomu
38
38
  when :html
39
39
  result
40
40
  when :metadata
41
- YAML.load quote(result)
41
+ JSON.parse(result)
42
42
  when :mimetype
43
- MIME::Types[YAML.load(quote(result))['Content-Type']].first
43
+ MIME::Types[JSON.parse(result)['Content-Type']].first
44
44
  end
45
45
  end
46
46
 
@@ -60,10 +60,10 @@ class Yomu
60
60
 
61
61
  def initialize(input)
62
62
  if input.is_a? String
63
- if input =~ URI::regexp
64
- @uri = URI.parse input
65
- elsif File.exists? input
63
+ if File.exists? input
66
64
  @path = input
65
+ elsif input =~ URI::regexp
66
+ @uri = URI.parse input
67
67
  else
68
68
  raise Errno::ENOENT.new "missing file or invalid URI - #{input}"
69
69
  end
@@ -91,9 +91,9 @@ class Yomu
91
91
  # yomu.html
92
92
 
93
93
  def html
94
- return @text if defined? @text
94
+ return @html if defined? @html
95
95
 
96
- @text = Yomu.read :html, data
96
+ @html = Yomu.read :html, data
97
97
  end
98
98
 
99
99
  # Returns the metadata hash of the Yomu document.
@@ -116,7 +116,9 @@ class Yomu
116
116
  def mimetype
117
117
  return @mimetype if defined? @mimetype
118
118
 
119
- @mimetype = MIME::Types[metadata['Content-Type']].first
119
+ type = metadata["Content-Type"].is_a?(Array) ? metadata["Content-Type"].first : metadata["Content-Type"]
120
+
121
+ @mimetype = MIME::Types[type].first
120
122
  end
121
123
 
122
124
  # Returns +true+ if the Yomu document was specified using a file path.
@@ -124,6 +126,18 @@ class Yomu
124
126
  # yomu = Yomu.new 'sample.pages'
125
127
  # yomu.path? #=> true
126
128
 
129
+
130
+ def creation_date
131
+ return @creation_date if defined? @creation_date
132
+
133
+ if metadata['Creation-Date']
134
+ @creation_date = Time.parse(metadata['Creation-Date'])
135
+ else
136
+ nil
137
+ end
138
+ end
139
+
140
+
127
141
  def path?
128
142
  defined? @path
129
143
  end
@@ -166,11 +180,6 @@ class Yomu
166
180
  @data
167
181
  end
168
182
 
169
- def self.quote(metadata)
170
- metadata.gsub(/: (.*: .*)$/, ': "\1"')
171
- end
172
- private_class_method :quote
173
-
174
183
  def self.java
175
184
  ENV['JAVA_HOME'] ? ENV['JAVA_HOME'] + '/bin/java' : 'java'
176
185
  end
data/lib/yomu/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  class Yomu
2
- VERSION = "0.1.10"
2
+ VERSION = '0.2.0'
3
3
  end
data/spec/yomu_spec.rb CHANGED
@@ -28,12 +28,6 @@ describe Yomu do
28
28
  expect( metadata['dc:title'] ).to eql 'problem: test'
29
29
  end
30
30
 
31
- it 'reads metadata time values as time values' do
32
- metadata = Yomu.read :metadata, data
33
-
34
- expect( metadata['Creation-Date'] ).to be_a Time
35
- end
36
-
37
31
  it 'reads mimetype' do
38
32
  mimetype = Yomu.read :mimetype, data
39
33
 
@@ -100,6 +94,14 @@ describe Yomu do
100
94
  end
101
95
  end
102
96
 
97
+
98
+ describe '.creation_date' do
99
+ let(:yomu) { Yomu.new 'spec/samples/sample.pages' }
100
+ it 'should retur Time' do
101
+ expect( yomu.creation_date ).to be_a Time
102
+ end
103
+ end
104
+
103
105
  describe '.java' do
104
106
  specify 'with no specified JAVA_HOME' do
105
107
  expect( Yomu.send(:java) ).to eql 'java'
@@ -120,7 +122,7 @@ describe Yomu do
120
122
  end
121
123
 
122
124
  specify '#metadata reads metadata' do
123
- expect( yomu.metadata['Content-Type'] ).to eql 'application/vnd.apple.pages'
125
+ expect( yomu.metadata['Content-Type'] ).to eql ["application/vnd.apple.pages", "application/vnd.apple.pages"]
124
126
  end
125
127
  end
126
128
 
@@ -144,7 +146,7 @@ describe Yomu do
144
146
  end
145
147
 
146
148
  specify '#metadata reads metadata' do
147
- expect( yomu.metadata['Content-Type'] ).to eql 'application/vnd.apple.pages'
149
+ expect( yomu.metadata['Content-Type'] ).to eql ["application/vnd.apple.pages", "application/vnd.apple.pages"]
148
150
  end
149
151
  end
150
152
  end
data/yomu.gemspec CHANGED
@@ -4,23 +4,24 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
  require 'yomu/version'
5
5
 
6
6
  Gem::Specification.new do |spec|
7
- spec.name = "yomu"
7
+ spec.name = 'yomu'
8
8
  spec.version = Yomu::VERSION
9
- spec.authors = ["Erol Fornoles"]
10
- spec.email = ["erol.fornoles@gmail.com"]
9
+ spec.authors = ['Erol Fornoles']
10
+ spec.email = ['erol.fornoles@gmail.com']
11
11
  spec.description = %q{Read text and metadata from files and documents (.doc, .docx, .pages, .odt, .rtf, .pdf)}
12
12
  spec.summary = %q{Read text and metadata from files and documents (.doc, .docx, .pages, .odt, .rtf, .pdf)}
13
- spec.homepage = "http://erol.github.com/yomu"
14
- spec.license = "MIT"
13
+ spec.homepage = 'http://erol.github.com/yomu'
14
+ spec.license = 'MIT'
15
15
 
16
16
  spec.files = `git ls-files`.split($/)
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
21
  spec.add_runtime_dependency 'mime-types', '~> 1.23'
22
+ spec.add_runtime_dependency 'json', '~> 1.8'
22
23
 
23
- spec.add_development_dependency "bundler", "~> 1.3"
24
- spec.add_development_dependency "rake"
25
- spec.add_development_dependency "rspec", "~> 2.14"
24
+ spec.add_development_dependency 'bundler', '~> 1.3'
25
+ spec.add_development_dependency 'rake'
26
+ spec.add_development_dependency 'rspec', '~> 2.14'
26
27
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yomu
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.10
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Erol Fornoles
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-02-27 00:00:00.000000000 Z
11
+ date: 2014-04-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mime-types
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.23'
27
+ - !ruby/object:Gem::Dependency
28
+ name: json
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.8'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.8'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: bundler
29
43
  requirement: !ruby/object:Gem::Requirement
@@ -76,6 +90,7 @@ extra_rdoc_files: []
76
90
  files:
77
91
  - ".gitignore"
78
92
  - ".rspec"
93
+ - ".travis.yml"
79
94
  - Gemfile
80
95
  - LICENSE
81
96
  - NOTICE.txt
@@ -111,7 +126,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
111
126
  version: '0'
112
127
  requirements: []
113
128
  rubyforge_project:
114
- rubygems_version: 2.2.0
129
+ rubygems_version: 2.2.2
115
130
  signing_key:
116
131
  specification_version: 4
117
132
  summary: Read text and metadata from files and documents (.doc, .docx, .pages, .odt,