ish_models 0.0.33.135 → 0.0.33.139

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6c5a6043e8144f6fae57963f58a0880eb171044ae3bbc62d36ae013c0db3be04
4
- data.tar.gz: e3414aeaba21e5273054e14d8bf037ec798418c1a97a894e5861d8811ef2d224
3
+ metadata.gz: ca15ab4eb3ebc3e6a6ea6766fa2b80281bcf89eefe3efd35ac7e531545147e6f
4
+ data.tar.gz: ccd4b15972edb2bd61320bd17e2b3443062130f532d460fe2fd6185722d649e1
5
5
  SHA512:
6
- metadata.gz: b2154545c111a45447bfa2bd1421e65afe4b68b17368fedf0de098e4cace9ea03cc9db25e3c0e7cd9f8b380a270fe7ce75b0544d8fa66d233ca4800e19046ee2
7
- data.tar.gz: 99a571b6c35ed885e7b204dc922f5289451d0d4dc3d01ce1dd6f03a970dddf9b1c297d815353853c85c319c0ca60f0c22bff36ca37d3ef60a20476a926c6c16a
6
+ metadata.gz: 650afa1a9f2a769facc5361560dc94436793fca21992532348a48bcaf5c4fc627194221a4527700034613cedba247d2dcf9d490b2c3e0dbe54038b905efcee8a
7
+ data.tar.gz: 803f1bcbb5bad0ac64125fd3d370ff9da205f7ba231b29b276c67b2f8648d30be064f6cc29bf213300001f57993e94ca5a0eb3dace6e4e277c08490714c2c619
data/lib/city.rb CHANGED
@@ -36,7 +36,7 @@ class City
36
36
  has_one :profile_photo, :class_name => 'Photo', :inverse_of => :profile_city
37
37
  has_one :guide, :class_name => '::IshModels::UserProfile', :inverse_of => :guide_city
38
38
 
39
- embeds_many :features
39
+ has_many :features
40
40
 
41
41
  field :calendar_frame, :type => String
42
42
  field :is_active, type: Boolean, default: true
data/lib/feature.rb CHANGED
@@ -1,31 +1,25 @@
1
1
 
2
- class Feature
3
-
2
+ class Feature
4
3
  include Mongoid::Document
5
4
  include Mongoid::Timestamps
6
5
 
7
- field :name, :type => String
8
- field :subhead, :type => String
6
+ field :name
7
+ field :subhead
9
8
 
10
- field :image_path, :type => String
11
- field :link_path, :type => String
12
- field :partial_name, :type => String
13
- field :inner_html, :type => String
14
- field :weight, :type => Integer, :default => 10
15
-
16
- belongs_to :photo, :optional => true
17
- belongs_to :report, :optional => true
18
- belongs_to :gallery, :optional => true
19
- belongs_to :video, :optional => true
20
- # has_one :photo
21
- # has_one :report
22
- # has_one :gallery
23
- # has_one :video
9
+ field :image_path
10
+ field :link_path
11
+ field :partial_name
12
+ field :inner_html
13
+ field :weight, type: Integer, default: 10
24
14
 
25
- embedded_in :venue
26
- embedded_in :site
27
- embedded_in :city
28
- embedded_in :tag
15
+ belongs_to :city, optional: true
16
+ belongs_to :gallery, optional: true
17
+ belongs_to :photo, optional: true
18
+ belongs_to :report, optional: true
19
+ belongs_to :site, optional: true
20
+ belongs_to :tag, optional: true
21
+ belongs_to :video, optional: true
22
+ belongs_to :venue, optional: true
29
23
 
30
24
  def self.all
31
25
  self.order_by( :created_at => :desc )
@@ -34,5 +28,5 @@ class Feature
34
28
  def self.n_features
35
29
  4
36
30
  end
37
-
31
+
38
32
  end
data/lib/gallery.rb CHANGED
@@ -3,9 +3,13 @@ require 'kaminari/mongoid'
3
3
  class Gallery
4
4
  include ::Mongoid::Document
5
5
  include ::Mongoid::Timestamps
6
+ include Ish::Utils
6
7
 
7
8
  PER_PAGE = 6
8
9
 
10
+ field :name
11
+ validates :name, :uniqueness => true # , :allow_nil => false
12
+
9
13
  field :is_public, type: Boolean, default: false
10
14
  field :is_trash, type: Boolean, default: false
11
15
  field :is_done, type: Boolean, default: false
@@ -19,51 +23,46 @@ class Gallery
19
23
 
20
24
  default_scope ->{ where({ :is_public => true, :is_trash => false }).order_by({ :created_at => :desc }) }
21
25
 
22
- field :x, :type => Float
23
- field :y, :type => Float
26
+ field :x, :type => Float
27
+ field :y, :type => Float
28
+ field :subhead
29
+ field :descr, :as => :description
30
+ field :lang, :default => 'en'
31
+ field :issue
32
+ field :username
33
+
34
+ field :slug
35
+ index({ :slug => -1 }, { :unique => true })
36
+ validates :slug, presence: true, uniqueness: true
37
+ before_validation :set_slug, :on => :create
38
+
39
+ ## @TODO: I should have a redirect service, instead of this specific thing. But only after making $50.
40
+ # embeds_many :gallery_names, :class_name => '::Ish::GalleryName'
41
+
24
42
 
25
43
  def self.list conditions = { :is_trash => false }
26
44
  out = self.unscoped.where( conditions ).order_by( :created_at => :desc )
27
45
  [['', nil]] + out.map { |item| [ "#{item.created_at.strftime('%Y%m%d')} #{item.name}", item.id ] }
28
46
  end
29
47
 
30
- belongs_to :site, :optional => true
31
- # validates :site, :presence => true
32
-
48
+ belongs_to :site, :optional => true
33
49
  belongs_to :user_profile, :optional => true, :class_name => 'IshModels::UserProfile', :inverse_of => :galleries
34
- field :username, :type => String
35
- has_and_belongs_to_many :shared_profiles, :class_name => 'IshModels::UserProfile', :inverse_of => :shared_galleries
36
-
37
- field :name
38
- validates :name, :uniqueness => true # , :allow_nil => false
39
50
 
40
- field :galleryname
41
- index({ :galleryname => -1 }, { :unique => true })
42
- def slug
43
- galleryname
44
- end
45
- embeds_many :gallery_names, :class_name => '::Ish::GalleryName'
46
- def self.find_by_slug slug
47
- ::Gallery.where( galleryname: slug ).first
48
- end
49
-
50
- field :subhead, :type => String
51
- field :descr, :type => String, :as => :description
52
- field :lang, :type => String, :default => 'en'
51
+ has_and_belongs_to_many :shared_profiles, :class_name => 'IshModels::UserProfile', :inverse_of => :shared_galleries
52
+ has_and_belongs_to_many :tags
53
53
 
54
+ has_many :newsitems
54
55
  has_many :photos
55
56
 
56
- has_and_belongs_to_many :tags
57
57
  belongs_to :city, :optional => true
58
58
  belongs_to :venue, :optional => true
59
+ belongs_to :newsparent, polymorphic: true, optional: true
59
60
 
60
- has_many :newsitems
61
61
 
62
62
  set_callback(:create, :before) do |doc|
63
63
  if doc.user_profile && doc.user_profile.name
64
64
  doc.username = doc.user_profile.name
65
65
  end
66
- doc.galleryname ||= doc.id.to_s
67
66
 
68
67
  #
69
68
  # newsitems
@@ -107,16 +106,13 @@ class Gallery
107
106
 
108
107
  # @deprecated, use Gallery::ACTIONS
109
108
  def self.actions
110
- [ 'show_mini', 'show_long', 'show' ]
109
+ ACTIONS
111
110
  end
112
111
  ACTIONS = [ 'show_mini', 'show_long', 'show' ]
113
112
 
114
- field :issue
115
-
116
113
  RENDER_TITLES = 'index_titles' # view name
117
114
  RENDER_THUMBS = 'index_thumbs' # view name
118
115
 
119
- belongs_to :newsparent, polymorphic: true, optional: true
120
116
 
121
117
  set_callback :update, :after do |doc|
122
118
  Site.update_all updated_at: Time.now
data/lib/gameui/map.rb CHANGED
@@ -4,7 +4,7 @@ class ::Gameui::Map
4
4
  include Mongoid::Timestamps
5
5
 
6
6
  has_many :markers, :class_name => '::Gameui::Marker', inverse_of: :map
7
- has_many :newsitems, inverse_of: :map
7
+ has_many :newsitems, inverse_of: :map, order: :created_at.desc
8
8
 
9
9
  field :slug
10
10
  validates :slug, uniqueness: true, presence: true
@@ -24,6 +24,12 @@ class ::Gameui::Map
24
24
  field :name
25
25
  field :description
26
26
 
27
+ ## Possible keys: description, map, markers, newsitems,
28
+ field :labels, type: Object, default: {}
29
+ ## Possible keys:
30
+ ## config.description.collapsible
31
+ field :config, type: Object, default: {}
32
+
27
33
  # @deprecated, dont use!
28
34
  field :img_path
29
35
 
data/lib/gameui/marker.rb CHANGED
@@ -6,7 +6,8 @@ class ::Gameui::Marker
6
6
  belongs_to :map, :class_name => '::Gameui::Map'
7
7
 
8
8
  field :slug
9
- validates :slug, uniqueness: true, presence: true
9
+ validates_uniqueness_of :slug, scope: :map_id
10
+ validates_presence_of :slug
10
11
 
11
12
  field :description
12
13
 
data/lib/ish/utils.rb ADDED
@@ -0,0 +1,29 @@
1
+
2
+ module Ish::Utils
3
+
4
+ private
5
+
6
+ def set_slug
7
+ return if slug
8
+ if name
9
+ new_slug = name.downcase.gsub(/[^a-z0-9\s]/i, '').gsub(' ', '-')
10
+ else
11
+ new_slug = '1'
12
+ end
13
+ if self.class.where( slug: new_slug ).first
14
+ loop do
15
+ if new_slug[new_slug.length-1].to_i != 0
16
+ # inrement last digit
17
+ last_digit = new_slug[new_slug.length-1].to_i
18
+ new_slug = "#{new_slug[0...new_slug.length-1]}#{last_digit+1}"
19
+ else
20
+ # add '-1' to the end
21
+ new_slug = "#{new_slug}-1"
22
+ end
23
+ break if !self.class.where( slug: new_slug ).first
24
+ end
25
+ end
26
+ self.slug = new_slug
27
+ end
28
+
29
+ end
@@ -16,11 +16,13 @@ class IshModels::UserProfile
16
16
  field :fb_long_access_token
17
17
  field :fb_expires_in
18
18
 
19
- field :lang, :type => String, :default => :en
19
+ field :lang, default: 'en'
20
20
 
21
21
  ROLES = [ :admin, :manager, :guy ]
22
22
  field :role_name, :type => Symbol
23
23
 
24
+ has_one :profile_photo, :class_name => 'Photo', :inverse_of => :profile_city
25
+
24
26
  belongs_to :user
25
27
  belongs_to :current_city, :class_name => 'City', :inverse_of => :current_users, :optional => true
26
28
  belongs_to :guide_city, :class_name => 'City', :inverse_of => :guide, :optional => true
@@ -90,16 +92,3 @@ class IshModels::UserProfile
90
92
  end
91
93
 
92
94
  Profile = IshModels::UserProfile
93
-
94
- =begin
95
- field :about, :type => String
96
- field :education, :type => String
97
- field :objectives, :type => String
98
- field :current_employment, :type => String
99
- field :past_employment, :type => String
100
- field :pdf_resume_path, :type => String
101
- field :doc_resume_path, :type => String
102
-
103
- TAGS = [ :social, :professional ]
104
- field :tag, :type => Symbol
105
- =end
data/lib/ish_models.rb CHANGED
@@ -34,23 +34,24 @@ require 'gameui/map_bookmark.rb'
34
34
  require 'gameui/marker.rb'
35
35
  require 'gameui/premium_purchase.rb'
36
36
 
37
+ # require 'ish/alphavantage_stockwatcher.rb'
37
38
  require 'ish/ameritrade'
39
+ require 'ish/campaign.rb'
38
40
  require 'ish/covered_call'
39
41
  require 'ish/crawler.rb'
40
42
  require 'ish/gallery_name.rb'
41
43
  require 'ish/image_asset.rb'
42
44
  require 'ish/input_error.rb'
45
+ require 'ish/invoice.rb'
43
46
  require 'ish/iron_condor.rb'
44
47
  require 'ish/iron_condor_watcher.rb'
48
+ require 'ish/issue.rb'
49
+ require 'ish/lead.rb'
45
50
  require 'ish/payment.rb'
46
51
  require 'ish/stock_action.rb'
47
52
  require 'ish/stock_option.rb'
48
53
  require 'ish/stock_watch.rb'
49
- # require 'ish/alphavantage_stockwatcher.rb'
50
- require 'ish/invoice.rb'
51
- require 'ish/lead.rb'
52
- require 'ish/campaign.rb'
53
- require 'ish/issue.rb'
54
+ require 'ish/utils.rb'
54
55
  require 'ish/yahoo_stockwatcher.rb'
55
56
 
56
57
  # obsolete, use `ish` namespace now
data/lib/newsitem.rb CHANGED
@@ -20,6 +20,10 @@ class Newsitem
20
20
 
21
21
  field :name
22
22
  field :descr
23
+ def description
24
+ descr
25
+ end
26
+
23
27
  field :image_path
24
28
  field :link_path
25
29
  field :username
data/lib/photo.rb CHANGED
@@ -5,17 +5,16 @@ class Photo
5
5
  include Mongoid::Timestamps
6
6
  include Mongoid::Paperclip
7
7
 
8
- # belongs_to :user, :inverse_of => :photos
9
- # validates :user, :presence => true
10
- # field :username, :type => String
11
-
12
8
  has_and_belongs_to_many :viewers, :class_name => 'User', :inverse_of => :viewable_photos
13
9
 
14
10
  belongs_to :user_profile, :class_name => 'IshModels::UserProfile', :optional => true
15
- def user; user_profile; end
16
- belongs_to :profile_city, :class_name => 'City', :inverse_of => :profile_photo, :optional => true
17
- belongs_to :profile_venue, :class_name => 'Venue', :inverse_of => :profile_photo, :optional => true
18
- belongs_to :profile_event, :class_name => 'Event', :inverse_of => :profile_photo, :optional => true
11
+ def user
12
+ user_profile
13
+ end
14
+ belongs_to :profile_city, :class_name => 'City', :inverse_of => :profile_photo, :optional => true
15
+ belongs_to :user_profile, :class_name => 'IshModels::UserProfile', :inverse_of => :profile_photo, :optional => true
16
+ belongs_to :profile_venue, :class_name => 'Venue', :inverse_of => :profile_photo, :optional => true
17
+ belongs_to :profile_event, :class_name => 'Event', :inverse_of => :profile_photo, :optional => true
19
18
 
20
19
  belongs_to :report, :optional => true
21
20
  belongs_to :venue, :optional => true
data/lib/report.rb CHANGED
@@ -1,20 +1,25 @@
1
1
  class Report
2
2
  include ::Mongoid::Document
3
3
  include ::Mongoid::Timestamps
4
+ include Ish::Utils
4
5
 
5
6
  field :name, :type => String
6
7
  validates :name, :presence => true
7
8
  # index({ :name => 1 }, { :unique => true })
8
9
  index({ :name => 1, :is_trash => 1 })
9
10
 
10
- field :name_seo, :type => String
11
- validates :name_seo, :uniqueness => true, :presence => true
12
- index({ :name_seo => 1 }, { :unique => true })
11
+ field :slug
12
+ validates :slug, :uniqueness => true, :presence => true
13
+ index({ :slug => 1 }, { :unique => true })
14
+ before_validation :set_slug, :on => :create
13
15
 
14
- field :descr, :type => String
16
+ ## Can be one of: default (nil), longscroll
17
+ field :item_type, type: String
18
+
19
+ field :descr, :type => String
15
20
 
16
21
  field :is_trash, :type => Boolean, :default => false
17
- index :is_trash => 1, :is_public => 1
22
+ index :is_trash => 1, :is_public => 1
18
23
 
19
24
  field :is_public, :type => Boolean, :default => true
20
25
  index({ :is_public => 1 })
@@ -27,13 +32,13 @@ class Report
27
32
 
28
33
  field :is_done, :type => Boolean, :default => true
29
34
  index({ :is_done => 1 })
30
-
35
+
31
36
  field :x, :type => Float
32
37
  field :y, :type => Float
33
38
 
34
39
  field :lang, :type => String, :default => 'en'
35
40
  index({ :lang => 1 })
36
-
41
+
37
42
  belongs_to :user_profile, :optional => true, :class_name => 'IshModels::UserProfile'
38
43
 
39
44
  # validates :user, :presence => true, :allow_nil => false
@@ -43,14 +48,14 @@ class Report
43
48
 
44
49
  field :issue
45
50
  field :subhead
46
-
51
+
47
52
  belongs_to :city, :optional => true
48
53
  belongs_to :site, :optional => true
49
54
  belongs_to :cities_user, :optional => true
50
55
 
51
56
  has_and_belongs_to_many :tags
52
57
  has_and_belongs_to_many :venues
53
-
58
+
54
59
  has_one :photo
55
60
 
56
61
  field :n_upvotes, :default => 0
@@ -59,15 +64,15 @@ class Report
59
64
  default_scope ->{
60
65
  where({ is_public: true, is_trash: false }).order_by({ created_at: :desc })
61
66
  }
62
-
67
+
63
68
  has_many :newsitems
64
69
 
65
70
  def self.list conditions = { :is_trash => false }
66
71
  out = self.where( conditions ).order_by( :name => :asc ).limit( 100 )
67
72
  [['', nil]] + out.map { |item| [ item.name, item.id ] }
68
73
  end
69
-
70
- PER_PAGE = 20
74
+
75
+ PER_PAGE = 20
71
76
  def self.paginates_per
72
77
  self::PER_PAGE
73
78
  end
@@ -75,33 +80,30 @@ class Report
75
80
  def venue
76
81
  return self.venues[0] || nil
77
82
  end
78
-
83
+
79
84
  def self.all
80
85
  self.where( :is_public => true, :is_trash => false ).order_by( :created_at => :desc )
81
86
  end
82
-
87
+
83
88
  def self.not_tagged
84
89
  Report.where( :tag_ids => nil, :city => nil )
85
90
  end
86
-
91
+
87
92
  def self.for_homepage args
88
93
  begin
89
94
  tag_ids = args[:main_tag].children_tags.map { |tag| tag._id } + [ args[:main_tag]._id ]
90
95
  return Report.where( :tag_ids.in => tag_ids ).page args[:page]
91
96
  rescue
92
- return Report.page args[:page]
97
+ return Report.page args[:page]
93
98
  end
94
99
  end
95
100
 
96
- before_validation :set_name_seo, :on => :create
97
- def set_name_seo
98
- self.name_seo ||= self.name.gsub(' ', '-').gsub('.', '')
99
- end
101
+
100
102
 
101
103
  set_callback :update, :after do |doc|
102
104
  Site.update_all updated_at: Time.now
103
105
  end
104
-
106
+
105
107
  set_callback :create, :after do |doc|
106
108
  if doc.is_public
107
109
 
@@ -115,7 +117,7 @@ class Report
115
117
  v.newsitems << n
116
118
  v.save
117
119
  end
118
- end
120
+ end
119
121
 
120
122
  unless doc.city.blank?
121
123
  city = City.find doc.city.id
@@ -131,7 +133,7 @@ class Report
131
133
  end
132
134
  end
133
135
  end
134
-
136
+
135
137
  def self.clear
136
138
  if Rails.env.test?
137
139
  self.unscoped.each { |r| r.remove }
@@ -149,5 +151,5 @@ class Report
149
151
  end
150
152
  def premium?; is_premium; end
151
153
  has_many :premium_purchases, class_name: '::Gameui::PremiumPurchase', as: :item
152
-
154
+
153
155
  end
data/lib/site.rb CHANGED
@@ -30,7 +30,7 @@ class Site
30
30
  field :is_primary, :type => Boolean, :default => false
31
31
  field :is_private, :type => Boolean, :default => false
32
32
  field :private_user_emails, :type => Array, :default => []
33
-
33
+
34
34
  field :homepage_layout, :type => String, :default => 'show'
35
35
  field :layout, :type => String, :default => 'application'
36
36
 
@@ -40,9 +40,8 @@ class Site
40
40
  has_many :videos
41
41
  has_many :newsitems, :order => :created_at.desc
42
42
  has_many :issues, :class_name => 'Ish::Issue'
43
+ has_many :features, :order => :created_at.desc
43
44
 
44
- embeds_many :features, :order => :created_at.desc
45
-
46
45
  default_scope ->{ where({ :is_trash => false }).order_by({ :domain => :asc, :lang => :asc }) }
47
46
 
48
47
  set_callback :create, :before do |doc|
@@ -61,7 +60,7 @@ class Site
61
60
  end
62
61
 
63
62
  LANGUAGES = [ 'en', 'ru', 'pt' ]
64
-
63
+
65
64
  # manager uses it.
66
65
  def self.list
67
66
  out = self.all.order_by( :domain => :asc, :lang => :asc )
@@ -79,7 +78,7 @@ class Site
79
78
  def n_private_reports
80
79
  self.reports.unscoped.where( :is_public => false, :is_trash => false ).length
81
80
  end
82
-
81
+
83
82
  def its_locales
84
83
  Site.where( :domain => self.domain ).map { |s| s.lang.to_sym }
85
84
  end
data/lib/tag.rb CHANGED
@@ -1,12 +1,13 @@
1
1
  class Tag
2
2
  include Mongoid::Document
3
3
  include Mongoid::Timestamps
4
+ include Ish::Utils
4
5
 
5
6
  field :name, :type => String
6
7
  # validates :name, :uniqueness => true, :allow_nil => false
7
8
 
8
- field :name_seo, :as => :tagname
9
- validates :name_seo, :uniqueness => true, :allow_nil => false
9
+ field :slug
10
+ validates :slug, :uniqueness => true, presence: true, allow_nil: false
10
11
 
11
12
  field :descr, :type => String, :default => ''
12
13
 
@@ -19,8 +20,7 @@ class Tag
19
20
  has_many :children_tags, :class_name => 'Tag', :inverse_of => :parent_tag
20
21
  belongs_to :parent_tag, :class_name => 'Tag', :inverse_of => :children_tags, :optional => true
21
22
 
22
- embeds_many :features
23
- # embeds_many :newsitems
23
+ has_many :features
24
24
  has_many :newsitems
25
25
 
26
26
  belongs_to :site, :optional => true
@@ -36,11 +36,7 @@ class Tag
36
36
  where({ :is_public => true, :is_trash => false }).order_by({ :name => :asc })
37
37
  }
38
38
 
39
- before_create do |d|
40
- if d.name_seo.blank?
41
- d.name_seo = d.name.gsub(' ', '-')
42
- end
43
- end
39
+ before_validation :set_slug
44
40
 
45
41
  def self.clear
46
42
  if Rails.env.test?
@@ -72,9 +68,9 @@ class Tag
72
68
  4
73
69
  end
74
70
 
75
- # @deprecated I don't even know why I have this. Should be simplified into non-being.
76
71
  def self.n_features
77
72
  4
78
73
  end
74
+ field :n_features, type: Integer, default: 4
79
75
 
80
76
  end
data/lib/venue.rb CHANGED
@@ -1,14 +1,16 @@
1
1
  class Venue
2
2
  include ::Mongoid::Document
3
3
  include ::Mongoid::Timestamps
4
+ include Ish::Utils
4
5
 
5
6
  field :address
6
7
 
7
8
  field :name, :type => String
8
9
  validates :name, :uniqueness => true, :allow_nil => false
9
10
 
10
- field :name_seo, :type => String
11
- validates :name_seo, :uniqueness => true, :allow_nil => false
11
+ field :slug
12
+ validates :slug, :uniqueness => true, :allow_nil => false
13
+ before_validation :set_slug
12
14
 
13
15
  field :subhead
14
16
  field :descr
@@ -41,9 +43,8 @@ class Venue
41
43
  has_many :reports
42
44
  has_many :galleries
43
45
  has_many :photos
44
-
45
- embeds_many :newsitems
46
- embeds_many :features
46
+ has_many :newsitems
47
+ has_many :features
47
48
 
48
49
  PER_PAGE = 6
49
50
 
@@ -52,9 +53,7 @@ class Venue
52
53
  [['', nil]] + out.map { |item| [ item.name, item.id ] }
53
54
  end
54
55
 
55
- set_callback :create, :before do |doc|
56
- doc.name_seo = doc.name.gsub(' ', '-')
57
- end
56
+
58
57
 
59
58
  set_callback :save, :before do |doc|
60
59
  if doc.city
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ish_models
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.33.135
4
+ version: 0.0.33.139
5
5
  platform: ruby
6
6
  authors:
7
7
  - piousbox
@@ -137,6 +137,7 @@ files:
137
137
  - lib/ish/stock_action.rb
138
138
  - lib/ish/stock_option.rb
139
139
  - lib/ish/stock_watch.rb
140
+ - lib/ish/utils.rb
140
141
  - lib/ish/yahoo_stockwatcher.rb
141
142
  - lib/ish_models.rb
142
143
  - lib/ish_models/cache_key.rb