geo-core 0.0.4 → 0.0.5

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.
data/Gemfile.lock CHANGED
@@ -11,7 +11,9 @@ GEM
11
11
  autotest (4.4.6)
12
12
  ZenTest (>= 4.4.1)
13
13
  builder (3.0.4)
14
+ database_cleaner (0.9.1)
14
15
  diff-lcs (1.1.3)
16
+ geocoder (1.1.6)
15
17
  i18n (0.6.1)
16
18
  mongoid (3.0.17)
17
19
  activemodel (~> 3.1)
@@ -40,6 +42,8 @@ PLATFORMS
40
42
 
41
43
  DEPENDENCIES
42
44
  autotest
45
+ database_cleaner
46
+ geocoder
43
47
  mongoid
44
48
  rspec
45
49
  rspec-nc
Binary file
data/geo-core.gemspec CHANGED
@@ -13,6 +13,7 @@ Gem::Specification.new do |gem|
13
13
  gem.homepage = ""
14
14
 
15
15
  gem.add_dependency "mongoid"
16
+ gem.add_dependency "geocoder"
16
17
 
17
18
  gem.files = Dir['lib/**/*.rb'] + Dir['lib/*.yml'] + Dir['*.*']
18
19
  gem.require_paths = ["lib"]
data/lib/geo-core.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  require 'mongoid'
2
+ require 'geo-core/domain/orcamento'
3
+ require 'geo-core/domain/item_orcamento'
4
+ require 'geo-core/service/orcamento_service'
5
+
2
6
  current_path = File.expand_path File.dirname(__FILE__)
3
7
  Mongoid.load!(current_path << "/mongoid.yml", :development)
4
- Dir['./lib/domain/*.rb'].each {|file| require file }
5
- Dir['./lib/service/*.rb'].each {|file| require file }
6
- Dir['./lib/*.rb'].each {|file| require file }
@@ -1,15 +1,17 @@
1
- require_relative '../geo-core.rb'
2
-
1
+ require_relative '../../geo-core.rb'
3
2
  module Geo
4
- module Core
3
+ module Domain
5
4
  class ItemOrcamento
6
5
  include Mongoid::Document
7
6
  store_in collection: "itens_orcamento"
8
7
 
9
- belongs_to :orcamento, class_name: "Geo::Core::Orcamento"
8
+ belongs_to :orcamento, class_name: "Geo::Domain::Orcamento"
10
9
 
11
10
  field :codigo_material
12
11
  field :quantidade
12
+ field :endereco_instalacao
13
+ field :latitude, type: Float
14
+ field :longitude, type: Float
13
15
 
14
16
  validates :codigo_material, :quantidade, presence: true
15
17
  validates :quantidade, :numericality => true
File without changes
@@ -1,7 +1,7 @@
1
- require_relative '../geo-core.rb'
1
+ require_relative '../../geo-core.rb'
2
2
 
3
3
  module Geo
4
- module Core
4
+ module Domain
5
5
  class Orcamento
6
6
  include Mongoid::Document
7
7
  store_in collection: "orcamentos"
@@ -9,7 +9,7 @@ module Geo
9
9
  field :cliente
10
10
  field :descricao
11
11
 
12
- has_many :itens, class_name: 'Geo::Core::ItemOrcamento'
12
+ has_many :itens, class_name: 'Geo::Domain::ItemOrcamento'
13
13
 
14
14
  validates :cliente, :descricao, presence: true
15
15
 
@@ -0,0 +1,77 @@
1
+ require_relative '../domain/orcamento.rb'
2
+ require_relative '../domain/item_orcamento.rb'
3
+ require 'geocoder'
4
+
5
+ module Geo
6
+ module Service
7
+ class Orcamento
8
+ def self.novo
9
+ return Geo::Domain::Orcamento.new
10
+ end
11
+
12
+ #FIXME fazer tratamento de errors
13
+ def self.salvar(params)
14
+ begin
15
+ orcamento = Geo::Domain::Orcamento.new params
16
+ raise orcamento.errors unless orcamento.valid?
17
+ orcamento.save
18
+ orcamento.itens= Array.new
19
+ orcamento.itens.push criar_itens params[:itens_attributes]
20
+ return orcamento
21
+ rescue Exception => e
22
+ raise e
23
+ end
24
+ end
25
+
26
+ private
27
+ def self.criar_itens(param)
28
+ return if !param
29
+ itens = Array.new
30
+ param.each do |chave, valor|
31
+ item = Geo::Domain::ItemOrcamento.new valor
32
+ itens.push item if item.valid?
33
+ end
34
+ return itens
35
+ end
36
+
37
+
38
+ def self.todos
39
+ return Geo::Domain::Orcamento.all
40
+ end
41
+
42
+ def self.por_id id
43
+ return Geo::Domain::Orcamento.find id
44
+ end
45
+
46
+ def self.item_orcamento_por_id id
47
+ return Geo::Domain::ItemOrcamento.find id
48
+ end
49
+
50
+ def self.atualizar_localizacao(params)
51
+ item_orcamento= Geo::Domain::ItemOrcamento.find(params[:item_orcamento_id])
52
+ if item_orcamento and params[:latitude] and params[:longitude]
53
+ return atualizar_endereco(item_orcamento, params[:latitude], params[:longitude])
54
+ end
55
+ return nil
56
+ end
57
+
58
+ private
59
+ def self.atualizar_endereco(item_orcamento, latitude, longitude)
60
+ item_orcamento.latitude= latitude
61
+ item_orcamento.longitude= longitude
62
+ item_orcamento.endereco_instalacao = buscar_endereco(latitude, longitude)
63
+ if item_orcamento.save
64
+ return item_orcamento
65
+ end
66
+ return nil
67
+ end
68
+
69
+ def self.buscar_endereco(latitude, longitude)
70
+ return Geocoder.search("#{latitude},#{longitude}")[0].formatted_address
71
+ end
72
+ end
73
+ end
74
+ end
75
+
76
+
77
+
@@ -1,5 +1,5 @@
1
1
  module Geo
2
2
  module Core
3
- VERSION = "0.0.4"
3
+ VERSION = "0.0.5"
4
4
  end
5
5
  end
data/lib/mongoid.yml CHANGED
@@ -4,9 +4,11 @@ development:
4
4
  database: geo
5
5
  hosts:
6
6
  - localhost:27017
7
- production:
7
+ test:
8
8
  sessions:
9
9
  default:
10
- database: geo
10
+ database: geo_test
11
11
  hosts:
12
- - localhost:27017
12
+ - localhost:27017
13
+ options:
14
+ raise_not_found_error: false
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: geo-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-01-16 00:00:00.000000000 Z
12
+ date: 2013-02-11 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: mongoid
@@ -27,6 +27,22 @@ dependencies:
27
27
  - - ! '>='
28
28
  - !ruby/object:Gem::Version
29
29
  version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: geocoder
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
30
46
  description: Apenas um teste
31
47
  email:
32
48
  - mrmarcondes@gmail.com
@@ -34,17 +50,16 @@ executables: []
34
50
  extensions: []
35
51
  extra_rdoc_files: []
36
52
  files:
37
- - lib/domain/item_orcamento.rb
38
- - lib/domain/material.rb
39
- - lib/domain/orcamento.rb
40
- - lib/domain_helper.rb
53
+ - lib/geo-core/domain/item_orcamento.rb
54
+ - lib/geo-core/domain/material.rb
55
+ - lib/geo-core/domain/orcamento.rb
56
+ - lib/geo-core/service/orcamento_service.rb
41
57
  - lib/geo-core/version.rb
42
58
  - lib/geo-core.rb
43
- - lib/service/orcamento_service.rb
44
59
  - lib/mongoid.yml
45
60
  - Gemfile.lock
46
- - geo-core-0.0.2.gem
47
- - geo-core-0.0.3.gem
61
+ - geo-core-0.0.4.gem
62
+ - geo-core-0.0.5.gem
48
63
  - geo-core.gemspec
49
64
  - LICENSE.txt
50
65
  - README.md
@@ -68,7 +83,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
68
83
  version: '0'
69
84
  requirements: []
70
85
  rubyforge_project:
71
- rubygems_version: 1.8.24
86
+ rubygems_version: 1.8.25
72
87
  signing_key:
73
88
  specification_version: 3
74
89
  summary: Apenas um teste
data/geo-core-0.0.2.gem DELETED
Binary file
data/geo-core-0.0.3.gem DELETED
Binary file
data/lib/domain_helper.rb DELETED
@@ -1,5 +0,0 @@
1
- require 'mongoid'
2
- Mongoid.load!("lib/mongoid.yml", :development)
3
- Dir['./lib/domain/*.rb'].each {|file| require file }
4
- Dir['./lib/service/*.rb'].each {|file| require file }
5
- Dir['./lib/*.rb'].each {|file| require file }
@@ -1,38 +0,0 @@
1
- require_relative '../domain/orcamento.rb'
2
- require_relative '../domain/item_orcamento.rb'
3
-
4
- module Geo
5
- module Service
6
- class Orcamento
7
- def self.novo
8
- return Geo::Core::Orcamento.new
9
- end
10
-
11
- #FIXME fazer tratamento de errors
12
- def self.salvar(params)
13
- begin
14
- orcamento = Geo::Core::Orcamento.new params
15
- raise orcamento.errors unless orcamento.valid?
16
- orcamento.save
17
- criar_itens_para orcamento, params[:itens_attributes]
18
- return orcamento
19
- rescue
20
- raise ""
21
- end
22
- end
23
-
24
- private
25
- def self.criar_itens_para(orcamento, param)
26
- itens = Array.new
27
- param.each do |chave, valor|
28
- item = Geo::Core::ItemOrcamento.new valor
29
- itens.push item if item.valid?
30
- end
31
- orcamento.itens.push itens
32
- end
33
- end
34
- end
35
- end
36
-
37
-
38
-