ish_models 0.0.3 → 0.0.6

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
  SHA1:
3
- metadata.gz: 669b08747fe005647df40af6afbb120239aa7a1b
4
- data.tar.gz: 8091e1bce7eb3fc5247970122596a28c2fd72753
3
+ metadata.gz: e8efda6f73dc85f020d688125566693bed7aca87
4
+ data.tar.gz: b907052ec21d45b83d0e084450c82dcf178ca0a4
5
5
  SHA512:
6
- metadata.gz: 7a5d8e9180fcb3a8adcf5ff8094dc63f69a55ea70d1673d6bb2bb578001471124303cee20cbc6d807f03e73d1e6022100b4c955f982b0c4f50f510275c94ab7a
7
- data.tar.gz: a7c1e0d057b6a6915baf104a0426970696dc3eac67325c572b04b63bf5f96cc97f73871762967bef665183b58953853f48e0e9f7fe3ce2a1f45099a8c1480ff9
6
+ metadata.gz: d410149815d472eef473f1a047a4c8dc54a11bcb7659484866e2503b9a284ef7bd2b44d742713d486a8ef69f64e36a153571725106a10bd9b743e7aa1a996995
7
+ data.tar.gz: 0857285ab83fca6aca9cf7304404767ee417ceac4c5ae62e55e2518af33aabd9256a10c8745d8e4357dd451c334a6cb35ed66c70c0cb758eed5d75bd7b46e1b3
data/lib/app_model2.rb ADDED
@@ -0,0 +1,33 @@
1
+ class AppModel2
2
+ include ::Mongoid::Document
3
+ include ::Mongoid::Timestamps
4
+
5
+ field :is_feature, :type => Boolean, :default => false
6
+ field :is_public, :type => Boolean, :default => true
7
+ field :is_done, :type => Boolean, :default => false
8
+ field :is_trash, :type => Boolean, :default => false
9
+ field :is_anonymous, :type => Boolean, :default => false
10
+
11
+ scope :fresh, ->{ where({ :is_trash => false }) }
12
+ scope :trash, ->{ where({ :is_trash => true }) }
13
+ scope :public, ->{ where({ :is_public => true }) }
14
+ scope :done, ->{ where({ :is_done => true }) }
15
+
16
+ default_scope ->{ where({ :is_public => true, :is_trash => false }).order_by({ :created_at => :desc }) }
17
+
18
+ field :x, :type => Float
19
+ field :y, :type => Float
20
+
21
+ def self.list conditions = { :is_trash => false }
22
+ out = self.where( conditions).order_by( :name => :asc )
23
+ [['', nil]] + out.map { |item| [ item.name, item.id ] }
24
+ end
25
+
26
+ private
27
+
28
+ def puts! arg, label=""
29
+ puts "+++ +++ #{label}"
30
+ puts arg.inspect
31
+ end
32
+
33
+ end
data/lib/aux_model.rb ADDED
@@ -0,0 +1,22 @@
1
+
2
+ module AuxModel
3
+
4
+ def add_newsitem item
5
+ n = Newsitem.new
6
+ case item.class.name
7
+ when 'Video'
8
+ n.video_id = item.id
9
+ when 'Photo'
10
+ raise 'Not Implemented'
11
+ when 'Report'
12
+ raise 'Not Implemented'
13
+ when 'Gallery'
14
+ raise 'Not Implmented'
15
+ else
16
+ raise 'Not Implemented'
17
+ end
18
+ self.newsitems << n
19
+ self.save
20
+ end
21
+
22
+ end
data/lib/city.rb CHANGED
@@ -1,8 +1,8 @@
1
1
 
2
2
  class City
3
3
 
4
- include Mongoid::Document
5
- include Mongoid::Timestamps
4
+ include ::Mongoid::Document
5
+ include ::Mongoid::Timestamps
6
6
 
7
7
  # this does not have to be validated because I can autogenerate this value, yes?
8
8
  field :name, :type => String
data/lib/gallery.rb CHANGED
@@ -1,4 +1,3 @@
1
- require 'string'
2
1
  class Gallery < AppModel2
3
2
 
4
3
  belongs_to :site
data/lib/ish_models.rb CHANGED
@@ -1,12 +1,17 @@
1
1
 
2
+ require 'app_model2.rb'
3
+ require 'aux_model.rb'
2
4
  require 'city.rb'
5
+ require 'country.rb'
6
+ require 'event.rb'
7
+ require 'feature.rb'
8
+ require 'gallery.rb'
9
+ require 'newsitem.rb'
10
+ require 'photo.rb'
11
+ require 'public_item.rb'
3
12
  require 'report.rb'
4
-
5
- =begin
6
- class IshModels
7
- def self.hi
8
- puts '+++ +++ Hello world from ish models!'
9
- end
10
- end
11
- =end
13
+ require 'site.rb'
14
+ require 'tag.rb'
15
+ require 'venue.rb'
16
+ require 'video.rb'
12
17
 
@@ -0,0 +1,11 @@
1
+
2
+ require 'report.rb'
3
+
4
+ =begin
5
+ class IshModels
6
+ def self.hi
7
+ puts '+++ +++ Hello world from ish models!'
8
+ end
9
+ end
10
+ =end
11
+
data/lib/newsitem.rb ADDED
@@ -0,0 +1,50 @@
1
+ class Newsitem
2
+ include Mongoid::Document
3
+ include Mongoid::Timestamps
4
+ # include Mongoid::Paranoia
5
+
6
+ embedded_in :user
7
+ embedded_in :site
8
+ embedded_in :city
9
+ embedded_in :tag
10
+
11
+ belongs_to :photo
12
+ belongs_to :report
13
+ belongs_to :gallery
14
+ belongs_to :video
15
+
16
+ field :name, :type => String
17
+ field :descr, :type => String
18
+ field :image_path, :type => String
19
+ field :link_path, :type => String
20
+ field :username, :type => String # @TODO do I use this???
21
+ field :partial_name, :type => String, :default => nil # @deprecated, but let's not remove it.
22
+
23
+ field :weight, :type => Integer, :default => 10
24
+ field :n_upvotes, :type => Integer, :default => 0
25
+ field :n_downvotes, :type => Integer, :default => 0
26
+ field :upvoting_users, :type => Array, :default => []
27
+ field :downvoting_users, :type => Array, :default => []
28
+ field :is_feature, :type => Boolean, :default => false
29
+
30
+ default_scope ->{ order_by({ :created_at => :desc }) }
31
+
32
+ def self.from_params item
33
+ n = Newsitem.new
34
+ n.descr = item[:descr]
35
+ n.username = item[:username]
36
+
37
+ unless item[:report_id].blank?
38
+ n.report = Report.find item[:report_id]
39
+ end
40
+
41
+ unless item[:gallery_id].blank?
42
+ n.gallery = Gallery.find item[:gallery_id]
43
+ end
44
+
45
+ n.partial_name = item.partial_name unless item.partial_name.blank?
46
+
47
+ return n
48
+ end
49
+
50
+ end
data/lib/photo.rb ADDED
@@ -0,0 +1,70 @@
1
+
2
+ class Photo
3
+ require 'aws-sdk'
4
+ require 'aws-sdk-v1'
5
+
6
+ include Mongoid::Document
7
+ include Mongoid::Timestamps
8
+ include Mongoid::Paperclip
9
+
10
+ belongs_to :user, :inverse_of => :photos
11
+ validates :user, :presence => true
12
+ field :username, :type => String
13
+
14
+ has_and_belongs_to_many :viewers, :class_name => 'User', :inverse_of => :viewable_photos
15
+
16
+ belongs_to :profile_user, :class_name => 'User', :inverse_of => :profile_photo
17
+ belongs_to :profile_city, :class_name => 'City', :inverse_of => :profile_photo
18
+ belongs_to :profile_venue, :class_name => 'Venue', :inverse_of => :profile_photo
19
+
20
+ belongs_to :report
21
+ belongs_to :tag
22
+ belongs_to :venue
23
+ belongs_to :feature
24
+ belongs_to :gallery
25
+
26
+ field :name, :type => String
27
+ field :descr, :type => String
28
+
29
+ field :weight, :type => Integer, :default => 10
30
+
31
+ field :is_public, :type => Boolean, :default => true
32
+ field :is_trash, :type => Boolean, :default => false
33
+
34
+ # default_scope ->{ where({ :is_trash => false, :is_public => true }) }
35
+ default_scope ->{ where({ :is_trash => false }) }
36
+
37
+ has_mongoid_attached_file :photo,
38
+ :styles => {
39
+ :mini => '20x20#',
40
+ :thumb => "100x100#",
41
+ # :two_hundred => '200x200#',
42
+ :small => "400x400>",
43
+ # :small_square => "400x400#",
44
+ # :large_square => '950x650',
45
+ :large => '950x650>'
46
+ },
47
+ :storage => :s3,
48
+ :s3_credentials => ::S3_CREDENTIALS,
49
+ :path => "photos/:style/:id/:filename"
50
+
51
+ def self.n_per_manager_gallery
52
+ 25
53
+ end
54
+
55
+ validates_attachment_content_type :photo, :content_type => ["image/jpg", "image/jpeg", "image/png", "image/gif"]
56
+
57
+ set_callback(:create, :before) do |doc|
58
+ # if doc.is_public
59
+ # Site.languages.each do |lang|
60
+ # n = Newsitem.new({
61
+ # # :descr => t('photos.new'),
62
+ # :photo => doc, :username => doc.user.username })
63
+ # Site.where( :domain => DOMAIN, :lang => lang ).first.newsitems << n
64
+ # end
65
+ # end
66
+ end
67
+
68
+ end
69
+
70
+
@@ -0,0 +1,60 @@
1
+ class PublicItem
2
+
3
+ =begin
4
+ ## let's try to make it work with newsitems, without publicitems yet.
5
+
6
+ include Mongoid::Document
7
+ include Mongoid::Timestamps
8
+
9
+ belongs_to :site
10
+ belongs_to :city
11
+ belongs_to :tag
12
+
13
+ field :username
14
+
15
+ # acts as a report
16
+ # acts as a gallery
17
+ # acts as a video
18
+ has_many :photos
19
+
20
+ belongs_to :photo
21
+ belongs_to :report
22
+ belongs_to :gallery
23
+ belongs_to :video
24
+
25
+ field :name, :type => String
26
+ field :descr, :type => String
27
+ field :image_path, :type => String
28
+ field :link_path, :type => String
29
+ field :username, :type => String # @TODO do I use this???
30
+ field :partial_name, :type => String, :default => nil # @deprecated, but let's not remove it.
31
+
32
+ field :weight, :type => Integer, :default => 10
33
+ field :n_upvotes, :type => Integer, :default => 0
34
+ field :n_downvotes, :type => Integer, :default => 0
35
+ field :upvoting_users, :type => Array, :default => []
36
+ field :downvoting_users, :type => Array, :default => []
37
+ field :is_feature, :type => Boolean, :default => false
38
+
39
+ default_scope ->{ order_by({ :created_at => :desc }) }
40
+
41
+ def self.from_params item
42
+ n = Newsitem.new
43
+ n.descr = item[:descr]
44
+ n.username = item[:username]
45
+
46
+ unless item[:report_id].blank?
47
+ n.report = Report.find item[:report_id]
48
+ end
49
+
50
+ unless item[:gallery_id].blank?
51
+ n.gallery = Gallery.find item[:gallery_id]
52
+ end
53
+
54
+ n.partial_name = item.partial_name unless item.partial_name.blank?
55
+
56
+ return n
57
+ end
58
+ =end
59
+
60
+ end
data/lib/report.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  class Report
2
- include Mongoid::Document
3
- include Mongoid::Timestamps
2
+ include ::Mongoid::Document
3
+ include ::Mongoid::Timestamps
4
4
 
5
5
  field :name, :type => String
6
6
  validates :name, :presence => true
data/lib/site.rb CHANGED
@@ -1,4 +1,3 @@
1
-
2
1
  class Site
3
2
 
4
3
  include Mongoid::Document
data/lib/venue.rb CHANGED
@@ -1,10 +1,6 @@
1
-
2
- require 'string'
3
-
4
1
  class Venue
5
-
6
- include Mongoid::Document
7
- include Mongoid::Timestamps
2
+ include ::Mongoid::Document
3
+ include ::Mongoid::Timestamps
8
4
 
9
5
  field :name, :type => String
10
6
  validates :name, :uniqueness => true, :allow_nil => false
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.3
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - piousbox
@@ -9,19 +9,45 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
  date: 2017-05-10 00:00:00.000000000 Z
12
- dependencies: []
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: mongoid
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 6.1.0
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 6.1.0
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: 6.1.0
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 6.1.0
13
33
  description: models of ish
14
34
  email: victor@wasya.co
15
35
  executables: []
16
36
  extensions: []
17
37
  extra_rdoc_files: []
18
38
  files:
39
+ - lib/app_model2.rb
40
+ - lib/aux_model.rb
19
41
  - lib/city.rb
20
42
  - lib/country.rb
21
43
  - lib/event.rb
22
44
  - lib/feature.rb
23
45
  - lib/gallery.rb
24
46
  - lib/ish_models.rb
47
+ - lib/ish_models.rb~
48
+ - lib/newsitem.rb
49
+ - lib/photo.rb
50
+ - lib/public_item.rb
25
51
  - lib/report.rb
26
52
  - lib/site.rb
27
53
  - lib/tag.rb