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 +4 -0
- data/geo-core-0.0.4.gem +0 -0
- data/geo-core.gemspec +1 -0
- data/lib/geo-core.rb +4 -3
- data/lib/{domain → geo-core/domain}/item_orcamento.rb +6 -4
- data/lib/{domain → geo-core/domain}/material.rb +0 -0
- data/lib/{domain → geo-core/domain}/orcamento.rb +3 -3
- data/lib/geo-core/service/orcamento_service.rb +77 -0
- data/lib/geo-core/version.rb +1 -1
- data/lib/mongoid.yml +5 -3
- metadata +25 -10
- data/geo-core-0.0.2.gem +0 -0
- data/geo-core-0.0.3.gem +0 -0
- data/lib/domain_helper.rb +0 -5
- data/lib/service/orcamento_service.rb +0 -38
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
|
data/geo-core-0.0.4.gem
ADDED
Binary file
|
data/geo-core.gemspec
CHANGED
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 '
|
2
|
-
|
1
|
+
require_relative '../../geo-core.rb'
|
3
2
|
module Geo
|
4
|
-
module
|
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::
|
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 '
|
1
|
+
require_relative '../../geo-core.rb'
|
2
2
|
|
3
3
|
module Geo
|
4
|
-
module
|
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::
|
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
|
+
|
data/lib/geo-core/version.rb
CHANGED
data/lib/mongoid.yml
CHANGED
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
|
+
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-
|
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/
|
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.
|
47
|
-
- geo-core-0.0.
|
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.
|
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,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
|
-
|