geopolitical 0.8.1 → 0.8.2

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: c839075fc478bd86ac981d8de6663d082edb3eae
4
- data.tar.gz: 3e661f747bf2998c4878302f409bf5cf34acca6a
3
+ metadata.gz: 3ba638d2868ace9fb9e0caebe149994928b9d6ef
4
+ data.tar.gz: bb3a1a730a0f71772c57b120538282dde7110fad
5
5
  SHA512:
6
- metadata.gz: 969e0608da36268ece8f032962d79aabcfc261ab7873dc18a90bd76c79e586ff5db8af0d88e1f14c10166762da0ae4f885128b60cce0c8ce0419ce100b5bf882
7
- data.tar.gz: 191cfd245bc863f4fab038bf60abd36490a3b6cd4f2e5a3829155371aba9208691b529be1eef363746332f9d10a413b3b2dc8f515904ac0b333a806086a3d8da
6
+ metadata.gz: 56cbf39e36148afb57aad0bb868dfa0b31b75effea99b2c1e0939c1ba672a479a1b1b83ea202fc4d29abb6911441a3b95673ad972341dd637f1c2a7186d092d9
7
+ data.tar.gz: e0cee615ed978bb7b1a4df5c88d1f0c1a2241f393cbfeb1533f88e5ce4f14404873214dbd5ab0f472def1b344e3258e2a1d73547395b9ef220ebd2f96b79364f
data/README.md CHANGED
@@ -8,8 +8,30 @@ Geopolitical
8
8
 
9
9
  Geopolitical models ready to use!
10
10
 
11
- Use
12
- ---
11
+
12
+ With
13
+ ----
14
+
15
+
16
+ gem "geopolitical"
17
+
18
+
19
+
20
+ I have
21
+ ------
22
+
23
+
24
+ Hood, City, Region, Nation + Spot.
25
+
26
+
27
+
28
+ Geopolitical
29
+ ------------
30
+
31
+
32
+
33
+
34
+
13
35
 
14
36
 
15
37
 
@@ -1,11 +1,12 @@
1
1
  module Geopolitical
2
+ # Cities Public Controller
2
3
  class CitiesController < GeopoliticalController
3
4
  # allow "admin"
4
5
  inherit_resources
5
- before_filter :load_relatives, :only => [:new, :edit, :create, :update]
6
+ before_filter :load_relatives, only: [:new, :edit, :create, :update]
6
7
 
7
8
  def collection
8
- @cities = City.ordered.search(params[:search]).page(params[:page]) # @cc.nation.cities
9
+ @cities = City.ordered.search(params[:search]).page(params[:page])
9
10
  end
10
11
 
11
12
  private
@@ -17,7 +18,9 @@ module Geopolitical
17
18
  end
18
19
 
19
20
  def load_relatives
20
- @regions = Region.only(:name).map {|e| [e.name,e.id]}
21
+ @regions = Region.only(:name).map { |e| [e.name, e.id] }
21
22
  end
23
+
22
24
  end
25
+
23
26
  end
@@ -1,21 +1,20 @@
1
1
  module Geopolitical
2
- class GeopoliticalController < ActionController::Base
2
+ # Main Geopolitical Controller
3
+ class GeopoliticalController < ActionController::Base
3
4
 
4
- layout 'geopolitical'
5
+ layout 'geopolitical'
5
6
 
6
- def index
7
- @regions = Region.all
8
- @cities = City.all
9
- end
7
+ def index
8
+ @regions = Region.all
9
+ @cities = City.all
10
+ end
10
11
 
12
+ private
11
13
 
12
- private
14
+ def permitted_params
15
+ params.permit!
16
+ end
13
17
 
14
- def permitted_params
15
- params.permit!
16
18
  end
17
19
 
18
-
19
-
20
- end
21
20
  end
@@ -1,9 +1,10 @@
1
1
  module Geopolitical
2
+ # Hoods Main Public Interface
2
3
  class HoodsController < GeopoliticalController
3
4
  inherit_resources
4
5
  # belongs_to :city
5
6
  # respond_to :html, :xml, :json
6
- before_filter :load_relatives, :only => [:new, :edit, :create, :update]
7
+ before_filter :load_relatives, only: [:new, :edit, :create, :update]
7
8
 
8
9
  def collection
9
10
  @hoods = Hood.ordered.page(params[:page])
@@ -12,7 +13,9 @@ module Geopolitical
12
13
  private
13
14
 
14
15
  def load_relatives
15
- @cities = City.only(:name).map {|e| [e.name,e.id]}
16
+ @cities = City.only(:name).map { |e| [e.name, e.id] }
16
17
  end
18
+
17
19
  end
20
+
18
21
  end
@@ -1,9 +1,10 @@
1
1
  module Geopolitical
2
+ # Nations Public Controller
2
3
  class NationsController < GeopoliticalController
3
4
  inherit_resources
4
5
 
5
6
  def collection
6
- @nations = Nation.ordered #.page(params[:page])
7
+ @nations = Nation.ordered
7
8
  end
8
9
 
9
10
  private
@@ -1,7 +1,8 @@
1
1
  module Geopolitical
2
+ # Main Regions Controller
2
3
  class RegionsController < GeopoliticalController
3
4
  inherit_resources
4
- before_filter :get_relatives, :only => [:new, :edit, :create, :update]
5
+ before_filter :get_relatives, only: [:new, :edit, :create, :update]
5
6
 
6
7
  def collection
7
8
  @regions = Region.ordered.page(params[:page])
@@ -1,4 +1,5 @@
1
1
  module Geopolitical
2
+ # Main Zones Controller
2
3
  class ZonesController < GeopoliticalController
3
4
  inherit_resources
4
5
 
@@ -9,4 +10,5 @@ module Geopolitical
9
10
  private
10
11
 
11
12
  end
13
+
12
14
  end
@@ -1,4 +1,5 @@
1
1
  module Geopolitical
2
+ # Geopolitical Views Helper
2
3
  module ApplicationHelper
3
4
  end
4
5
  end
@@ -1,3 +1,6 @@
1
+ #
2
+ # Geopolitical Address
3
+ #
1
4
  class Address
2
5
  include Mongoid::Document
3
6
  # include Mongoid::Symbolize
@@ -5,9 +8,9 @@ class Address
5
8
  include Mongoid::Geospatial
6
9
 
7
10
  field :zip, type: String
8
- field :name, type: String
9
- field :title, type: String
10
- field :number, type: String
11
+ field :name, type: String # My house, my work...
12
+ field :title, type: String # St, Rd, Av, Area, Park Foo
13
+ field :number, type: String # least surprise fail
11
14
  field :extra, type: String
12
15
  field :info, type: String
13
16
 
@@ -18,14 +21,22 @@ class Address
18
21
  field :region_name, type: String
19
22
  field :nation_name, type: String
20
23
 
21
- embedded_in :addressable, polymorphic: true
24
+ # embedded_in :addressable, polymorphic: true
25
+ belongs_to :addressable, polymorphic: true
22
26
 
23
27
  belongs_to :nation
24
28
  belongs_to :region
25
29
  belongs_to :city
26
30
  belongs_to :hood
27
31
 
28
- validates :name, presence: true
32
+ validates :title, presence: true
33
+
34
+ before_save :set_caches
35
+
36
+ def set_caches
37
+ self.city_name ||= city.name if city
38
+ self.nation_name ||= nation.name if nation
39
+ end
29
40
 
30
41
  def print_location
31
42
  "#{hood_name} #{city_name} - #{region_name} "
@@ -59,7 +70,7 @@ class Address
59
70
  def to_s
60
71
  "#{name} #{number}" + print_location
61
72
  end
62
- #index tie_id: 1, created_at: -1
73
+ # index tie_id: 1, created_at: -1
63
74
  # symbolize :kind, :in => [:street, :avenue, :road], default: :street
64
75
 
65
76
  end
data/app/models/city.rb CHANGED
@@ -1,3 +1,6 @@
1
+ #
2
+ # Cities
3
+ #
1
4
  class City
2
5
  include Mongoid::Document
3
6
  include Mongoid::Geospatial
@@ -7,10 +10,10 @@ class City
7
10
  field :zip, type: String
8
11
  field :slug, type: String
9
12
  field :name, type: String, localize: true
13
+ field :ascii, type: String
10
14
  field :area, type: Integer
11
15
  field :souls, type: Integer
12
- field :geom, type: Point, spatial: true
13
- # field :ascii, type: String
16
+ field :geom, type: Point, spatial: true
14
17
 
15
18
  spatial_scope :geom
16
19
 
@@ -20,34 +23,32 @@ class City
20
23
  belongs_to :nation
21
24
  has_many :hoods
22
25
 
23
-
24
26
  index name: 1
25
27
 
26
28
  scope :ordered, order_by(name: 1)
27
29
 
28
30
  validates :slug, presence: true, uniqueness: true
29
- validates :name, uniqueness: { :scope => :region_id }
31
+ validates :name, uniqueness: { scope: :region_id }
30
32
 
31
33
  # scope :close_to, GeoHelper::CLOSE
32
34
 
33
35
  before_validation :set_defaults
34
36
 
35
-
36
37
  def set_defaults
37
38
  self.nation ||= region.try(:nation)
38
39
  end
39
40
 
40
41
  def abbr
42
+ return unless region || nation
41
43
  region ? region.abbr : nation.abbr
42
44
  end
43
45
 
44
- def self.search txt
46
+ def self.search(txt)
45
47
  where(slug: /#{txt}/i)
46
48
  end
47
49
 
48
- def <=> other
49
- self.slug <=> other.slug
50
+ def <=>(other)
51
+ slug <=> other.slug
50
52
  end
51
53
 
52
-
53
54
  end
data/app/models/hood.rb CHANGED
@@ -1,3 +1,6 @@
1
+ #
2
+ # Hood/Neighborhood
3
+ #
1
4
  class Hood
2
5
  include Mongoid::Document
3
6
 
data/app/models/nation.rb CHANGED
@@ -1,7 +1,12 @@
1
+ #
2
+ # Nation/Country/Flag
3
+ #
1
4
  class Nation
2
5
  include Mongoid::Document
3
6
  include Geopolitical::Helpers
4
7
 
8
+ field :_id, type: String, default: ->{ abbr }
9
+
5
10
  field :gid, type: Integer # geonames id
6
11
  field :slug, type: String
7
12
  field :name, type: String, localize: true
@@ -11,8 +16,8 @@ class Nation
11
16
  field :cash, type: String
12
17
  field :lang, type: String
13
18
 
14
- has_many :regions, :dependent => :destroy
15
- has_many :cities, :dependent => :destroy
19
+ has_many :regions, dependent: :destroy
20
+ has_many :cities, dependent: :destroy
16
21
 
17
22
  scope :ordered, order_by(name: 1)
18
23
 
@@ -20,5 +25,4 @@ class Nation
20
25
 
21
26
  alias :currency :cash
22
27
 
23
-
24
28
  end
data/app/models/region.rb CHANGED
@@ -1,3 +1,6 @@
1
+ #
2
+ # Region/Province/Estado
3
+ #
1
4
  class Region
2
5
  include Mongoid::Document
3
6
  include Geopolitical::Helpers
@@ -10,13 +13,11 @@ class Region
10
13
 
11
14
  belongs_to :nation
12
15
 
13
- has_many :cities, :dependent => :destroy
16
+ has_many :cities, dependent: :destroy
14
17
 
15
18
  scope :ordered, order_by(name: 1)
16
19
 
17
20
  validates :nation, presence: true
18
- validates :name, presence: true, uniqueness: { :scope => :nation_id }
19
-
20
-
21
+ validates :name, presence: true, uniqueness: { scope: :nation_id }
21
22
 
22
23
  end
data/app/models/zone.rb CHANGED
@@ -1,3 +1,5 @@
1
+ #
2
+ # User created zones
1
3
  class Zone
2
4
  include Mongoid::Document
3
5
 
@@ -7,13 +9,12 @@ class Zone
7
9
  field :abbr, type: String
8
10
  field :kind, type: String
9
11
 
10
- has_many :zone_members, :dependent => :destroy
12
+ has_many :zone_members, dependent: :destroy
11
13
 
12
14
  scope :ordered, order_by(name: 1)
13
15
 
14
16
  validates :name, presence: true, uniqueness: true
15
17
 
16
-
17
18
  def members
18
19
  zone_members.map(&:member)
19
20
  end
@@ -1,9 +1,10 @@
1
+ #
2
+ # Zone x Member (polymorphic geopolitical model)
3
+ #
1
4
  class ZoneMember
2
5
  include Mongoid::Document
3
6
 
4
7
  belongs_to :zone
5
8
  belongs_to :member, polymorphic: true
6
9
 
7
-
8
-
9
10
  end
@@ -0,0 +1,6 @@
1
+ .address
2
+ %i.icon-map-marker
3
+ #{address.name}, #{address.number}
4
+ %span.gray= "#{address.zip} #{address.print_location}"
5
+ -# - if address.info
6
+ -# %span.gray= address.info
@@ -0,0 +1,17 @@
1
+ =# vjs 'cep'
2
+ %fieldset.address
3
+ .row.pull-right= f.link_to_remove "&times;".html_safe, :class => "close"
4
+ .row
5
+ -# .col-sm-3= f.select :kind, Address.get_kind_values, {}, :class => "input-auto"
6
+ .col-sm-12= ftext f, :title, :placeholder => "Nome"
7
+
8
+ .row
9
+ -# .col-sm-3= f.select :kind, Address.get_kind_values, {}, :class => "input-auto"
10
+ .col-sm-8= ftext f, :name, :placeholder => "Nome da Rua, Av...", :class => "street-field col-sm-12"
11
+ .col-sm-2= ftext f, :number, :class => "", :placeholder => "Num"
12
+ .col-sm-2= ftext f, :zip, :placeholder => "CEP", :class => "cep"
13
+ .row
14
+ .col-sm-4= ftext f, :city_name, :class => "city-field"
15
+ .col-sm-4= ftext f, :hood_name, :placeholder => "Bairro", :class => "input-small col-sm-12"
16
+ .col-sm-4= ftext f, :info, :placeholder => "Extra" #, :class => "col-sm-12"
17
+ %hr
data/config/routes.rb CHANGED
@@ -1,4 +1,4 @@
1
- #Rails.application.routes.draw
1
+ # Rails.application.routes.draw
2
2
  Geopolitical::Engine.routes.draw do
3
3
  resources :zones
4
4
  resources :hoods
@@ -8,5 +8,5 @@ Geopolitical::Engine.routes.draw do
8
8
 
9
9
  resource :geopolitical
10
10
 
11
- root :to => "geopolitical#index"
11
+ root to: 'geopolitical#index'
12
12
  end
data/lib/geopolitical.rb CHANGED
@@ -1,8 +1,13 @@
1
- require "mongoid"
2
- require "mongoid_geospatial"
3
- require "geopolitical/engine"
4
- require "geopolitical/helpers"
1
+ require 'mongoid'
2
+ require 'mongoid_geospatial'
3
+ require 'geopolitical/engine'
4
+ require 'geopolitical/helpers'
5
5
 
6
+ #
7
+ # Geopolitical
8
+ #
9
+ # Nations, Regions, Cities...
10
+ #
11
+ #
6
12
  module Geopolitical
7
-
8
13
  end