rightmove 0.1.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
- blm (0.1.4)
4
+ blm (0.1.5)
5
5
  diff-lcs (1.1.2)
6
6
  git (1.2.5)
7
7
  jeweler (1.5.2)
data/Rakefile CHANGED
@@ -11,7 +11,6 @@ require 'rake'
11
11
 
12
12
  require 'jeweler'
13
13
  Jeweler::Tasks.new do |gem|
14
- # gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
15
14
  gem.name = "rightmove"
16
15
  gem.homepage = "http://github.com/robertmay/rightmove"
17
16
  gem.license = "MIT"
@@ -19,10 +18,7 @@ Jeweler::Tasks.new do |gem|
19
18
  gem.description = %Q{This library is used to parse a Rightmove format zip file}
20
19
  gem.email = "robotmay@gmail.com"
21
20
  gem.authors = ["Robert May"]
22
- # Include your dependencies below. Runtime dependencies are required when using your gem,
23
- # and development dependencies are only needed for development (ie running rake tasks, tests, etc)
24
- # gem.add_runtime_dependency 'jabber4r', '> 0.1'
25
- # gem.add_development_dependency 'rspec', '> 1.2.3'
21
+ gem.files.exclude 'spec'
26
22
  end
27
23
  Jeweler::RubygemsDotOrgTasks.new
28
24
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.0
1
+ 0.2.1
data/lib/rightmove.rb CHANGED
@@ -2,49 +2,64 @@ require 'zip/zipfilesystem'
2
2
  require 'blm'
3
3
 
4
4
  module Rightmove
5
- class Archive
6
- @@configuration = {
7
- :tmp_dir => "/tmp/rightmove/"
8
- }
9
-
5
+ class Archive
10
6
  def initialize(file = nil, options = {})
11
7
  open(file) unless file.nil?
12
- @@configuration.update(options)
13
8
  end
14
9
 
15
- def open(file, arguments)
16
- return false unless File.exists?(file)
17
- @file = file
10
+ def open(file, arguments = {})
11
+ self.zip_file = file
18
12
  read(arguments)
19
13
  end
20
14
 
21
15
  def document
22
16
  @document
23
17
  end
18
+
19
+ def zip_file
20
+ @zip_file
21
+ end
22
+
23
+ def zip_file=(file)
24
+ puts "derp"
25
+ if file.instance_of?(Zip::ZipFile)
26
+ @zip_file = file
27
+ else
28
+ return false unless File.exists?(file)
29
+ @zip_file = Zip::ZipFile.open(file)
30
+ end
31
+ end
24
32
 
25
33
  private
26
34
  def read(arguments)
27
- Zip::ZipFile.open(@file) do |zip|
28
- @zip_file = zip
29
- blm = @zip_file.entries.select! {|v| v.to_s =~ /\.blm/i }.first
30
- @document = BLM::Document.new( zip.read(blm) )
31
- instantiate_files if arguments[:instantiate_files]
32
- end
33
- @document
35
+ blm = self.zip_file.entries.select! {|v| v.to_s =~ /\.blm/i }.first
36
+ @document = BLM::Document.new( self.zip_file.read(blm) )
34
37
  end
35
-
36
- def instantiate_files
37
- @document.data.each_with_index do |row, index|
38
- row.attributes.each do |key, value|
39
- next unless value =~ /\.jpg/i
40
- matching_files = @zip_file.entries.select! {|v| v.to_s =~ /#{value}/ }
38
+ end
39
+ end
40
+
41
+ module BLM
42
+ class Row
43
+ def method_missing(method, arguments = {}, &block)
44
+ unless @attributes[method].nil?
45
+ value = @attributes[method]
46
+ if arguments[:instantiate_with]
47
+ return value unless value =~ /\.(jpg|png|gif)/i
48
+ if arguments[:instantiate_with].instance_of?(Zip::ZipFile)
49
+ zip = arguments[:instantiate_with]
50
+ else
51
+ zip = Zip::ZipFile.open(arguments[:instantiate_with])
52
+ end
53
+ matching_files = zip.entries.select! {|v| v.to_s =~ /#{value}/ }
41
54
  unless matching_files.empty?
42
- file = StringIO.new( @zip_file.read(matching_files.first) )
55
+ file = StringIO.new( zip.read(matching_files.first) )
43
56
  file.class.class_eval { attr_accessor :original_filename, :content_type }
44
57
  file.original_filename = matching_files.first.to_s
45
58
  file.content_type = "image/jpg"
46
- @document.data[index].attributes[key] = file
59
+ return file
47
60
  end
61
+ else
62
+ value
48
63
  end
49
64
  end
50
65
  end
@@ -4,15 +4,17 @@ describe Rightmove do
4
4
  context "manipulating the file" do
5
5
  before :all do
6
6
  @rm = Rightmove::Archive.new
7
+ @zip_file = Zip::ZipFile.open(File.dirname(__FILE__) + "/rightmove/example.zip")
7
8
  end
8
9
 
9
10
  it "should open the zip file and return useful data" do
10
11
  @rm.should respond_to(:open)
11
- @rm.open(File.dirname(__FILE__) + "/rightmove/example.zip", :instantiate_files => true).should be_a(BLM::Document)
12
+ @rm.open(@zip_file).should be_a(BLM::Document)
12
13
  end
13
14
 
14
- it "should return images as StringIO objects" do
15
- @rm.document.data.first.media_image_00.should be_a(StringIO)
15
+ it "should return images as StringIO objects if passed :instantiate_with" do
16
+ @rm.document.data.first.media_image_00(:instantiate_with => @zip_file).should be_a(StringIO)
17
+ @rm.document.data.first.media_image_00.should be_a(String)
16
18
  end
17
19
  end
18
20
  end
metadata CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
4
4
  prerelease: false
5
5
  segments:
6
6
  - 0
7
+ - 2
7
8
  - 1
8
- - 0
9
- version: 0.1.0
9
+ version: 0.2.1
10
10
  platform: ruby
11
11
  authors:
12
12
  - Robert May
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2011-01-26 00:00:00 +00:00
17
+ date: 2011-01-27 00:00:00 +00:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
@@ -112,7 +112,6 @@ extra_rdoc_files:
112
112
  - README.textile
113
113
  files:
114
114
  - .document
115
- - .rspec
116
115
  - Gemfile
117
116
  - Gemfile.lock
118
117
  - LICENSE.txt
@@ -120,8 +119,6 @@ files:
120
119
  - Rakefile
121
120
  - VERSION
122
121
  - lib/rightmove.rb
123
- - rightmove.gemspec
124
- - spec/rightmove/example.zip
125
122
  - spec/rightmove_spec.rb
126
123
  - spec/spec_helper.rb
127
124
  has_rdoc: true
@@ -138,7 +135,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
138
135
  requirements:
139
136
  - - ">="
140
137
  - !ruby/object:Gem::Version
141
- hash: -249771699
138
+ hash: -108944433
142
139
  segments:
143
140
  - 0
144
141
  version: "0"
data/.rspec DELETED
@@ -1 +0,0 @@
1
- --color
data/rightmove.gemspec DELETED
@@ -1,72 +0,0 @@
1
- # Generated by jeweler
2
- # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
- # -*- encoding: utf-8 -*-
5
-
6
- Gem::Specification.new do |s|
7
- s.name = %q{rightmove}
8
- s.version = "0.1.0"
9
-
10
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["Robert May"]
12
- s.date = %q{2011-01-26}
13
- s.description = %q{This library is used to parse a Rightmove format zip file}
14
- s.email = %q{robotmay@gmail.com}
15
- s.extra_rdoc_files = [
16
- "LICENSE.txt",
17
- "README.textile"
18
- ]
19
- s.files = [
20
- ".document",
21
- ".rspec",
22
- "Gemfile",
23
- "Gemfile.lock",
24
- "LICENSE.txt",
25
- "README.textile",
26
- "Rakefile",
27
- "VERSION",
28
- "lib/rightmove.rb",
29
- "rightmove.gemspec",
30
- "spec/rightmove/example.zip",
31
- "spec/rightmove_spec.rb",
32
- "spec/spec_helper.rb"
33
- ]
34
- s.homepage = %q{http://github.com/robertmay/rightmove}
35
- s.licenses = ["MIT"]
36
- s.require_paths = ["lib"]
37
- s.rubygems_version = %q{1.3.7}
38
- s.summary = %q{A library for parsing a Rightmove format zip file}
39
- s.test_files = [
40
- "spec/rightmove_spec.rb",
41
- "spec/spec_helper.rb"
42
- ]
43
-
44
- if s.respond_to? :specification_version then
45
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
46
- s.specification_version = 3
47
-
48
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
49
- s.add_runtime_dependency(%q<blm>, [">= 0"])
50
- s.add_runtime_dependency(%q<rubyzip>, [">= 0"])
51
- s.add_development_dependency(%q<rspec>, ["~> 2.3.0"])
52
- s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
53
- s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
54
- s.add_development_dependency(%q<rcov>, [">= 0"])
55
- else
56
- s.add_dependency(%q<blm>, [">= 0"])
57
- s.add_dependency(%q<rubyzip>, [">= 0"])
58
- s.add_dependency(%q<rspec>, ["~> 2.3.0"])
59
- s.add_dependency(%q<bundler>, ["~> 1.0.0"])
60
- s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
61
- s.add_dependency(%q<rcov>, [">= 0"])
62
- end
63
- else
64
- s.add_dependency(%q<blm>, [">= 0"])
65
- s.add_dependency(%q<rubyzip>, [">= 0"])
66
- s.add_dependency(%q<rspec>, ["~> 2.3.0"])
67
- s.add_dependency(%q<bundler>, ["~> 1.0.0"])
68
- s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
69
- s.add_dependency(%q<rcov>, [">= 0"])
70
- end
71
- end
72
-
Binary file