mls 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -3,3 +3,4 @@
3
3
  Gemfile.lock
4
4
  pkg/*
5
5
  .rvmrc
6
+ coverage
data/Rakefile CHANGED
@@ -1,6 +1,18 @@
1
1
  require "bundler/gem_tasks"
2
+ require 'rake/testtask'
2
3
 
3
4
  task :console do
4
5
  exec 'irb -I lib -r mls.rb'
5
6
  end
6
7
  task :c => :console
8
+
9
+
10
+ Rake::TestTask.new do |t|
11
+ t.libs << 'lib' << 'test'
12
+ t.test_files = FileList['test/units/**/test*.rb']
13
+ t.warning = true
14
+ t.verbose = true
15
+ end
16
+
17
+ desc "Run tests"
18
+ task :default => :test
data/lib/mls.rb CHANGED
@@ -29,7 +29,7 @@ class MLS
29
29
 
30
30
  API_VERSION = '0.1.0'
31
31
 
32
- attr_accessor :url, :api_key, :auth_key, :logger
32
+ attr_accessor :url, :api_key, :auth_key, :logger, :asset_host
33
33
 
34
34
  def url=(uri)
35
35
  @url = uri
@@ -48,6 +48,10 @@ class MLS
48
48
  @connection ||= Net::HTTP.new(@host, @port)
49
49
  end
50
50
 
51
+ def asset_host
52
+ @asset_host ||= get('/asset_host').body
53
+ end
54
+
51
55
  def add_headers(req)
52
56
  req['Content-Type'] = 'application/json'
53
57
  req['X-42Floors-API-Version'] = API_VERSION
@@ -160,34 +164,22 @@ class MLS
160
164
 
161
165
  end
162
166
 
163
- #require File.expand_path('../mls/errors', __FILE__)
164
- #require File.expand_path('../mls/resource', __FILE__)
165
- #require File.expand_path('../mls/model', __FILE__)
166
- #require File.expand_path('../mls/property', __FILE__)
167
- #require File.expand_path('../mls/parser', __FILE__)
168
-
169
167
  require 'mls/errors'
170
168
  require 'mls/resource'
171
- require 'mls/model'
172
- require 'mls/property'
173
169
  require 'mls/parser'
174
170
 
175
- #require File.expand_path('../mls/properties/fixnum', __FILE__)
176
- #require File.expand_path('../mls/properties/boolean', __FILE__)
177
- #require File.expand_path('../mls/properties/decimal', __FILE__)
178
- #require File.expand_path('../mls/properties/datetime', __FILE__)
179
- #require File.expand_path('../mls/properties/string', __FILE__)
180
-
171
+ # Properties
172
+ require 'mls/property'
181
173
  require 'mls/properties/fixnum'
182
174
  require 'mls/properties/boolean'
183
175
  require 'mls/properties/decimal'
184
176
  require 'mls/properties/datetime'
185
177
  require 'mls/properties/string'
186
178
 
187
- #require File.expand_path('../mls/models/account', __FILE__)
188
- #require File.expand_path('../mls/models/listing', __FILE__)
189
- #require File.expand_path('../mls/models/address', __FILE__)
190
-
179
+ # Models
180
+ require 'mls/model'
191
181
  require 'mls/models/account'
192
182
  require 'mls/models/listing'
193
183
  require 'mls/models/address'
184
+ require 'mls/models/photo'
185
+ require 'mls/models/tour_request'
@@ -6,6 +6,7 @@ class MLS::Account < MLS::Resource
6
6
  property :id, Fixnum
7
7
  property :role, String, :default => 'user'
8
8
  property :name, String
9
+ property :title, String
9
10
  property :email, String
10
11
  property :password, String, :serialize => :if_present
11
12
  property :password_confirmation, String, :serialize => :if_present
@@ -19,11 +20,20 @@ class MLS::Account < MLS::Resource
19
20
  property :twitter, String
20
21
  property :facebook, String
21
22
  property :web, String
23
+ property :mls_number, String
22
24
 
25
+ property :city, String
23
26
  property :state, String
24
- property :zip, String
27
+ property :country, String
25
28
 
26
29
  property :auth_key, String
30
+
31
+ property :funding, String
32
+ property :message, String
33
+ property :population, String
34
+ property :growing, Boolean
35
+ property :move_in, String
36
+ property :extra_info, String
27
37
 
28
38
  def update!
29
39
  MLS.put('/account', to_hash) do |code, response|
@@ -56,19 +66,9 @@ class MLS::Account < MLS::Resource
56
66
  role != 'user' && role != ''
57
67
  end
58
68
 
59
- def favorites(page=nil, per_page=nil)
60
- params_hash = {:page => page, :per_page => per_page}
61
- Rails.logger.warn(params_hash)
62
- MLS.get('/account/favorites', params_hash) do |code, response|
63
- case code
64
- when 400
65
- @errors = MLS.parse(response.body)[:errors]
66
- return false
67
- else
68
- MLS.handle_response(response)
69
- return MLS::Listing::Parser.parse_collection(response.body)
70
- end
71
- end
69
+ def favorites
70
+ response = MLS.get('/account/favorites')
71
+ MLS::Listing::Parser.parse_collection(response.body)
72
72
  end
73
73
 
74
74
  def favorite(listing_id)
@@ -98,7 +98,7 @@ class MLS::Account < MLS::Resource
98
98
  end
99
99
  end
100
100
  end
101
-
101
+
102
102
  class << self
103
103
 
104
104
  def current
@@ -140,7 +140,6 @@ class MLS::Account < MLS::Resource
140
140
  return false
141
141
  end
142
142
 
143
-
144
143
  end
145
144
 
146
145
  end
@@ -0,0 +1,47 @@
1
+ class MLS::TourRequest < MLS::Resource
2
+ property :message, String
3
+
4
+ attr_accessor :listing
5
+
6
+ class << self
7
+ def get_all_for_account
8
+ MLS.get('/account/tour_requests') do |code, response|
9
+ case code
10
+ when 400
11
+ @errors = MLS.parse(response.body)[:errors]
12
+ return false
13
+ else
14
+ MLS.handle_response(response)
15
+ return MLS::TourRequest::Parser.parse_collection(response.body)
16
+ end
17
+ end
18
+ end
19
+
20
+ def create(listing_id, message, account_params={})
21
+ params = account_params
22
+ params[:id] = listing_id
23
+ params[:message] = message
24
+ MLS.post('/account/tour_requests', params) do |code, response|
25
+ case code
26
+ when 400
27
+ @errors = MLS.parse(response.body)[:errors]
28
+ return false
29
+ else
30
+ MLS.handle_response(response)
31
+ return true
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
37
+
38
+ class MLS::TourRequest::Parser < MLS::Parser
39
+
40
+ def listing=(listing)
41
+ @object.listing = MLS::Listing::Parser.build(listing)
42
+ end
43
+
44
+ def self.collection_root_element
45
+ :tour_requests
46
+ end
47
+ end
data/lib/mls/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module MLS
2
- VERSION = "0.2.0"
2
+ VERSION = "0.2.1"
3
3
  end
data/mls.gemspec CHANGED
@@ -18,12 +18,15 @@ Gem::Specification.new do |s|
18
18
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
19
  s.require_paths = ["lib"]
20
20
 
21
- # specify any dependencies here; for example:
21
+ # Developoment
22
22
  s.add_development_dependency 'rake'
23
23
  s.add_development_dependency 'rdoc'
24
24
  s.add_development_dependency 'bundler'
25
25
  s.add_development_dependency 'minitest'
26
26
  s.add_development_dependency 'turn'
27
+
28
+ # Runtime
27
29
  s.add_runtime_dependency 'activeresource'
28
30
  s.add_runtime_dependency 'yajl-ruby'
31
+ s.add_runtime_dependency 'simplecov'
29
32
  end
@@ -0,0 +1,7 @@
1
+ require 'simplecov'
2
+ SimpleCov.start do
3
+ add_filter "/test/"
4
+ end
5
+
6
+ require 'test/unit'
7
+ require 'mls'
@@ -0,0 +1,51 @@
1
+ require 'test_helper'
2
+
3
+ class TestAccount < ::Test::Unit::TestCase
4
+
5
+ def test_properties
6
+ account = MLS::Account.new
7
+
8
+ assert account.respond_to?(:id)
9
+ assert account.respond_to?(:role)
10
+ assert account.respond_to?(:name)
11
+ assert account.respond_to?(:email)
12
+ assert account.respond_to?(:password)
13
+ assert account.respond_to?(:password_confirmation)
14
+ assert account.respond_to?(:perishable_token)
15
+ assert account.respond_to?(:perishable_token_set_at)
16
+ assert account.respond_to?(:phone)
17
+ assert account.respond_to?(:company)
18
+ assert account.respond_to?(:license)
19
+ assert account.respond_to?(:linkedin)
20
+ assert account.respond_to?(:twitter)
21
+ assert account.respond_to?(:facebook)
22
+ assert account.respond_to?(:web)
23
+ assert account.respond_to?(:mls_number)
24
+ assert account.respond_to?(:state)
25
+ assert account.respond_to?(:country)
26
+ assert account.respond_to?(:auth_key)
27
+ assert account.respond_to?(:funding)
28
+ assert account.respond_to?(:message)
29
+ assert account.respond_to?(:population)
30
+ assert account.respond_to?(:growing)
31
+ assert account.respond_to?(:move_in)
32
+ assert account.respond_to?(:extra_info)
33
+ end
34
+
35
+ def test_methods
36
+ account = MLS::Account.new
37
+
38
+ assert account.respond_to?(:update!)
39
+ assert account.respond_to?(:create!)
40
+ assert account.respond_to?(:agent?)
41
+ assert account.respond_to?(:favorites)
42
+ assert account.respond_to?(:favorite)
43
+ end
44
+
45
+ def test_class_methods
46
+ assert MLS::Account.respond_to?(:current)
47
+ assert MLS::Account.respond_to?(:authenticate)
48
+ assert MLS::Account.respond_to?(:reset_password!)
49
+ assert MLS::Account.respond_to?(:update_password!)
50
+ end
51
+ end
@@ -0,0 +1,29 @@
1
+ require 'test_helper'
2
+
3
+ class TestAddress < ::Test::Unit::TestCase
4
+
5
+ def test_properties
6
+ address = MLS::Address.new
7
+
8
+ assert address.respond_to?(:id)
9
+ assert address.respond_to?(:name)
10
+ assert address.respond_to?(:slug)
11
+ assert address.respond_to?(:latitude)
12
+ assert address.respond_to?(:longitude)
13
+ assert address.respond_to?(:formatted_address)
14
+ assert address.respond_to?(:street_number)
15
+ assert address.respond_to?(:street)
16
+ assert address.respond_to?(:neighborhood)
17
+ assert address.respond_to?(:city)
18
+ assert address.respond_to?(:county)
19
+ assert address.respond_to?(:state)
20
+ assert address.respond_to?(:country)
21
+ assert address.respond_to?(:postal_code)
22
+ end
23
+
24
+ def test_class_methods
25
+ assert MLS::Address.respond_to?(:query)
26
+ assert MLS::Address.respond_to?(:box_cluster)
27
+ end
28
+
29
+ end
@@ -0,0 +1,74 @@
1
+ require 'test_helper'
2
+
3
+ class TestListing < ::Test::Unit::TestCase
4
+
5
+ def test_properties
6
+ listing = MLS::Listing.new
7
+
8
+ assert listing.respond_to?(:id)
9
+ assert listing.respond_to?(:address_id)
10
+ assert listing.respond_to?(:use_id)
11
+ assert listing.respond_to?(:use)
12
+ assert listing.respond_to?(:account_id)
13
+ assert listing.respond_to?(:hidden)
14
+ assert listing.respond_to?(:name)
15
+ assert listing.respond_to?(:kind)
16
+ assert listing.respond_to?(:space_type)
17
+ assert listing.respond_to?(:unit)
18
+ assert listing.respond_to?(:floor)
19
+ assert listing.respond_to?(:comments)
20
+ assert listing.respond_to?(:total_size)
21
+ assert listing.respond_to?(:maximum_contiguous_size)
22
+ assert listing.respond_to?(:minimum_divisable_size)
23
+ assert listing.respond_to?(:lease_type)
24
+ assert listing.respond_to?(:rate)
25
+ assert listing.respond_to?(:rate_units)
26
+ assert listing.respond_to?(:rate_per_month)
27
+ assert listing.respond_to?(:rate_per_year)
28
+ assert listing.respond_to?(:tenant_improvements)
29
+ assert listing.respond_to?(:nnn_expenses)
30
+ assert listing.respond_to?(:sublease_expiration)
31
+ assert listing.respond_to?(:available_on)
32
+ assert listing.respond_to?(:maximum_term_length)
33
+ assert listing.respond_to?(:minimum_term_length)
34
+ assert listing.respond_to?(:offices)
35
+ assert listing.respond_to?(:conference_rooms)
36
+ assert listing.respond_to?(:bathrooms)
37
+ assert listing.respond_to?(:desks)
38
+ assert listing.respond_to?(:kitchen)
39
+ assert listing.respond_to?(:showers)
40
+ assert listing.respond_to?(:bike_rack)
41
+ assert listing.respond_to?(:bikes_allowed)
42
+ assert listing.respond_to?(:server_room)
43
+ assert listing.respond_to?(:reception_area)
44
+ assert listing.respond_to?(:turnkey)
45
+ assert listing.respond_to?(:patio)
46
+ assert listing.respond_to?(:copy_room)
47
+ assert listing.respond_to?(:dog_friendly)
48
+ assert listing.respond_to?(:cabling)
49
+ assert listing.respond_to?(:ready_to_move_in)
50
+ assert listing.respond_to?(:recent_space_improvements)
51
+ assert listing.respond_to?(:printers)
52
+ assert listing.respond_to?(:furniture_available)
53
+ assert listing.respond_to?(:created_at)
54
+ assert listing.respond_to?(:updated_at)
55
+ end
56
+
57
+ def test_attr_accessors
58
+ listing = MLS::Listing.new
59
+
60
+ assert listing.respond_to?(:address)
61
+ assert listing.respond_to?(:agents)
62
+ end
63
+
64
+ def test_instance_methods
65
+ listing = MLS::Listing.new
66
+
67
+ assert listing.respond_to?(:photos)
68
+ end
69
+
70
+ def test_class_methods
71
+ assert MLS::Listing.respond_to?(:find)
72
+ end
73
+
74
+ end
@@ -0,0 +1,11 @@
1
+ require 'test_helper'
2
+
3
+ class TestPhoto < ::Test::Unit::TestCase
4
+
5
+ def test_instance_methods
6
+ photo = MLS::Photo.new({})
7
+
8
+ assert photo.respond_to?(:url)
9
+ end
10
+
11
+ end
@@ -0,0 +1,26 @@
1
+ require 'test_helper'
2
+
3
+ class TestTourRequest < ::Test::Unit::TestCase
4
+
5
+ def test_properties
6
+ tr = MLS::TourRequest.new
7
+
8
+ assert tr.respond_to?(:message)
9
+ end
10
+
11
+ def test_attr_accessors
12
+ tr = MLS::TourRequest.new
13
+
14
+ assert tr.respond_to?(:listing)
15
+ end
16
+
17
+ def test_class_methods
18
+ assert MLS::TourRequest.respond_to?(:get_all_for_account)
19
+ assert MLS::TourRequest.respond_to?(:create)
20
+ end
21
+
22
+ def test_parser
23
+ assert defined?(MLS::TourRequest::Parser)
24
+ end
25
+
26
+ end
@@ -0,0 +1,4 @@
1
+ require 'test_helper'
2
+
3
+ class TestBoolean < ::Test::Unit::TestCase
4
+ end
@@ -0,0 +1,24 @@
1
+ require 'test_helper'
2
+
3
+ class TestErrors < ::Test::Unit::TestCase
4
+
5
+ def test_exception
6
+ assert defined?(MLS::Exception)
7
+ end
8
+
9
+ def test_bad_request
10
+ assert defined?(MLS::BadRequest)
11
+ end
12
+
13
+ def test_unauthorized
14
+ assert defined?(MLS::Unauthorized)
15
+ end
16
+
17
+ def test_not_found
18
+ assert defined?(MLS::NotFound)
19
+ end
20
+
21
+ def test_api_version_unsupported
22
+ assert defined?(MLS::ApiVersionUnsupported)
23
+ end
24
+ end
@@ -0,0 +1,34 @@
1
+ require 'test_helper'
2
+
3
+ class TestMLS < ::Test::Unit::TestCase
4
+
5
+ def test_API_VERSION
6
+ assert_equal "0.1.0", MLS::API_VERSION
7
+ end
8
+
9
+ def test_attr_accessors
10
+ mls = MLS.instance
11
+
12
+ assert mls.respond_to?(:url)
13
+ assert mls.respond_to?(:url=)
14
+ assert mls.respond_to?(:api_key)
15
+ assert mls.respond_to?(:auth_key)
16
+ assert mls.respond_to?(:logger)
17
+ assert mls.respond_to?(:connection)
18
+ assert mls.respond_to?(:add_headers)
19
+
20
+ assert mls.respond_to?(:put)
21
+ assert mls.respond_to?(:post)
22
+ assert mls.respond_to?(:get)
23
+ assert mls.respond_to?(:delete)
24
+
25
+ assert mls.respond_to?(:handle_response)
26
+ assert mls.respond_to?(:ping)
27
+ assert mls.respond_to?(:auth_ping)
28
+ assert mls.respond_to?(:default_logger)
29
+ end
30
+
31
+ def test_class_methods
32
+ assert MLS.respond_to?(:parse)
33
+ end
34
+ end
@@ -0,0 +1,24 @@
1
+ require 'test_helper'
2
+
3
+ class MyModel
4
+ include MLS::Model
5
+
6
+ end
7
+
8
+ class TestModel < ::Test::Unit::TestCase
9
+
10
+ def test_instance_methods
11
+ model = MyModel.new
12
+
13
+ assert model.respond_to?(:property)
14
+ assert model.respond_to?(:properties)
15
+ assert model.respond_to?(:property_module)
16
+ assert model.respond_to?(:create_reader_for)
17
+ assert model.respond_to?(:create_writer_for)
18
+ assert model.respond_to?(:model_name)
19
+ assert model.respond_to?(:param_key)
20
+ assert model.respond_to?(:root_element)
21
+ assert model.respond_to?(:collection_root_element)
22
+ end
23
+
24
+ end
@@ -0,0 +1,32 @@
1
+ require 'test_helper'
2
+
3
+ class MyParser < MLS::Parser; end
4
+
5
+ class TestParser < ::Test::Unit::TestCase
6
+
7
+ def test_attr_readers
8
+ parser = MyParser.new
9
+
10
+ assert parser.respond_to?(:object)
11
+ end
12
+
13
+ def test_instance_methods
14
+ parser = MyParser.new
15
+
16
+ assert parser.respond_to?(:parse)
17
+ assert parser.respond_to?(:update_attributes)
18
+ assert parser.respond_to?(:extract_attributes)
19
+ end
20
+
21
+ def test_class_methods
22
+ assert MyParser.respond_to?(:parse)
23
+ assert MyParser.respond_to?(:parse_collection)
24
+ assert MyParser.respond_to?(:build)
25
+ assert MyParser.respond_to?(:update)
26
+ assert MyParser.respond_to?(:extract_attributes)
27
+ assert MyParser.respond_to?(:object_class)
28
+ assert MyParser.respond_to?(:root_element)
29
+ assert MyParser.respond_to?(:collection_root_element)
30
+ end
31
+
32
+ end
@@ -0,0 +1,35 @@
1
+ require 'test_helper'
2
+
3
+ class TestProperty < ::Test::Unit::TestCase
4
+
5
+ def test_DEFAULT_OPTIONS
6
+ assert_equal :always, MLS::Property::DEFAULT_OPTIONS[:serialize]
7
+ end
8
+
9
+ def test_attr_readers
10
+ property = MLS::Property.new(:name => "blah")
11
+
12
+ assert property.respond_to?(:model)
13
+ assert property.respond_to?(:name)
14
+ assert property.respond_to?(:instance_variable_name)
15
+ assert property.respond_to?(:options)
16
+ assert property.respond_to?(:default)
17
+ assert property.respond_to?(:reader_visibility)
18
+ assert property.respond_to?(:writer_visibility)
19
+ end
20
+
21
+ def test_instance_methods
22
+ property = MLS::Property.new(:name => "blah")
23
+
24
+ assert property.respond_to?(:set_default_value)
25
+ assert property.respond_to?(:determine_visibility)
26
+ end
27
+
28
+ def test_class_methods
29
+ assert MLS::Property.respond_to?(:determine_class)
30
+ assert MLS::Property.respond_to?(:inherited)
31
+ assert MLS::Property.respond_to?(:demodulized_names)
32
+ assert MLS::Property.respond_to?(:find_class)
33
+ end
34
+
35
+ end
@@ -0,0 +1,29 @@
1
+ require 'test_helper'
2
+
3
+ class MyResource < MLS::Resource; end
4
+
5
+ class TestResource < ::Test::Unit::TestCase
6
+
7
+ def test_attr_readers
8
+ resource = MyResource.new
9
+
10
+ assert resource.respond_to?(:errors)
11
+ assert resource.respond_to?(:persisted)
12
+ end
13
+
14
+ def test_instance_methods
15
+ resource = MyResource.new
16
+
17
+ assert resource.respond_to?(:new_record?)
18
+ assert resource.respond_to?(:persisted?)
19
+ assert resource.respond_to?(:save)
20
+
21
+ assert resource.respond_to?(:properties)
22
+ assert resource.respond_to?(:set_default_values)
23
+ assert resource.respond_to?(:update_attributes)
24
+
25
+ assert resource.respond_to?(:to_hash)
26
+ assert resource.respond_to?(:to_key)
27
+ end
28
+
29
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mls
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-07-23 00:00:00.000000000 Z
12
+ date: 2012-07-24 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
16
- requirement: &70151949432680 !ruby/object:Gem::Requirement
16
+ requirement: &70354219663760 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *70151949432680
24
+ version_requirements: *70354219663760
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rdoc
27
- requirement: &70151949432160 !ruby/object:Gem::Requirement
27
+ requirement: &70354219663300 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *70151949432160
35
+ version_requirements: *70354219663300
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: bundler
38
- requirement: &70151949431660 !ruby/object:Gem::Requirement
38
+ requirement: &70354219662840 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70151949431660
46
+ version_requirements: *70354219662840
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: minitest
49
- requirement: &70151949431180 !ruby/object:Gem::Requirement
49
+ requirement: &70354219662380 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70151949431180
57
+ version_requirements: *70354219662380
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: turn
60
- requirement: &70151949430400 !ruby/object:Gem::Requirement
60
+ requirement: &70354219661960 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '0'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *70151949430400
68
+ version_requirements: *70354219661960
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: activeresource
71
- requirement: &70151949429880 !ruby/object:Gem::Requirement
71
+ requirement: &70354219661540 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: '0'
77
77
  type: :runtime
78
78
  prerelease: false
79
- version_requirements: *70151949429880
79
+ version_requirements: *70354219661540
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: yajl-ruby
82
- requirement: &70151949429420 !ruby/object:Gem::Requirement
82
+ requirement: &70354219661100 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ! '>='
@@ -87,7 +87,18 @@ dependencies:
87
87
  version: '0'
88
88
  type: :runtime
89
89
  prerelease: false
90
- version_requirements: *70151949429420
90
+ version_requirements: *70354219661100
91
+ - !ruby/object:Gem::Dependency
92
+ name: simplecov
93
+ requirement: &70354219660680 !ruby/object:Gem::Requirement
94
+ none: false
95
+ requirements:
96
+ - - ! '>='
97
+ - !ruby/object:Gem::Version
98
+ version: '0'
99
+ type: :runtime
100
+ prerelease: false
101
+ version_requirements: *70354219660680
91
102
  description: Ruby library for integrating with the 42Floors MLS
92
103
  email:
93
104
  - james@42floors.com
@@ -106,6 +117,7 @@ files:
106
117
  - lib/mls/models/address.rb
107
118
  - lib/mls/models/listing.rb
108
119
  - lib/mls/models/photo.rb
120
+ - lib/mls/models/tour_request.rb
109
121
  - lib/mls/models/use.rb
110
122
  - lib/mls/models/user.rb
111
123
  - lib/mls/parser.rb
@@ -118,6 +130,19 @@ files:
118
130
  - lib/mls/resource.rb
119
131
  - lib/mls/version.rb
120
132
  - mls.gemspec
133
+ - test/test_helper.rb
134
+ - test/units/models/test_account.rb
135
+ - test/units/models/test_address.rb
136
+ - test/units/models/test_listing.rb
137
+ - test/units/models/test_photo.rb
138
+ - test/units/models/test_tour_request.rb
139
+ - test/units/properties/test_boolean.rb
140
+ - test/units/test_errors.rb
141
+ - test/units/test_mls.rb
142
+ - test/units/test_model.rb
143
+ - test/units/test_parser.rb
144
+ - test/units/test_property.rb
145
+ - test/units/test_resource.rb
121
146
  homepage: http://mls.42floors.com
122
147
  licenses: []
123
148
  post_install_message:
@@ -142,4 +167,17 @@ rubygems_version: 1.8.15
142
167
  signing_key:
143
168
  specification_version: 3
144
169
  summary: 42Floors MLS Client
145
- test_files: []
170
+ test_files:
171
+ - test/test_helper.rb
172
+ - test/units/models/test_account.rb
173
+ - test/units/models/test_address.rb
174
+ - test/units/models/test_listing.rb
175
+ - test/units/models/test_photo.rb
176
+ - test/units/models/test_tour_request.rb
177
+ - test/units/properties/test_boolean.rb
178
+ - test/units/test_errors.rb
179
+ - test/units/test_mls.rb
180
+ - test/units/test_model.rb
181
+ - test/units/test_parser.rb
182
+ - test/units/test_property.rb
183
+ - test/units/test_resource.rb