fish0 0.0.2 → 0.0.3

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: a10b284fa17f596b6c6b8609f6809e12d037b577
4
- data.tar.gz: 23173e0c419135398b2df7fd5d0bef36d2a54542
3
+ metadata.gz: 18dc1bb6da6a9dc1e1f0e90a95139a126b168e65
4
+ data.tar.gz: 7346f345340e2df28e1b5e0bd0f4455db4810520
5
5
  SHA512:
6
- metadata.gz: e89ca6f4f76fbfb93f97dc48dd114681a6fb43631f32d1e558597318654b03599f3ca508bb3c3c73d4ad5f430b764512b545c99c47f0b8c3746e7bcc82161e3f
7
- data.tar.gz: c2b5ae2664218099af0489d7cc4cc503e474ad5b16f13804b1cac5bd3c45b6627b0aed514f6af95144e692fa4d517d16c27298713f5107c7fb6702ac03515931
6
+ metadata.gz: a94aec1dff4294f4d67cbd2b92846742cc5c21f57e34cff980ea5a4577faa82c29f8d2762d40bd1826be138149b3c47461fe0fef2a0544271693a2d9a04098f7
7
+ data.tar.gz: 734e46038abacfa5fd257b7c03d1b918905f64bec6d997798e55b6aa601ed3ca752c5561f73bbb3c882dbcb9abc3b9e3abd93319d1b181ade064c87320629344
data/README.md CHANGED
@@ -1,8 +1,16 @@
1
1
  # Fish0
2
2
 
3
- The fish doesn't think because the fish knows everything.
3
+ > The fish doesn't think because the fish knows everything.
4
4
 
5
- Fish0 is the plugin for read-only content websites with MongoDB storage. Works perfect with Rambler&Co CQRS projects
5
+ Fish0 is the plugin for read-only content websites with MongoDB storage. Works perfect with Rambler&Co CQRS architecture.
6
+
7
+ ## Installation
8
+
9
+ Simply add gem to your `Gemfile`
10
+
11
+ ````
12
+ gem 'fish0'
13
+ ````
6
14
 
7
15
  ## Configuration
8
16
 
@@ -0,0 +1,39 @@
1
+ module Fish0
2
+ module Concerns
3
+ module Base
4
+ extend ActiveSupport::Concern
5
+
6
+ included do
7
+ class << self
8
+ delegate :all, to: :repository
9
+ delegate :where, to: :repository
10
+ delegate :first, to: :repository
11
+ delegate :last, to: :repository
12
+ delegate :search, to: :repository
13
+ delegate :order_by, to: :repository
14
+ delegate :limit, to: :repository
15
+ delegate :skip, to: :repository
16
+ delegate :projection, to: :repository
17
+
18
+ def first!
19
+ first || raise(RecordNotFound, "can't find in #{collection} with #{conditions}")
20
+ end
21
+
22
+ def last!
23
+ last || raise(RecordNotFound, "can't find in #{collection} with #{conditions}")
24
+ end
25
+
26
+ private
27
+
28
+ def collection
29
+ name.tableize
30
+ end
31
+
32
+ def repository
33
+ Fish0::Repository.new(collection)
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,3 @@
1
+ module Fish0
2
+ class RecordNotFound < StandardError; end
3
+ end
@@ -0,0 +1,6 @@
1
+ module Fish0
2
+ class Model
3
+ include Fish0::Concerns::Base
4
+ include Fish0::Concerns::ViewModel
5
+ end
6
+ end
@@ -38,8 +38,9 @@ module Fish0
38
38
  to_entity.call(element) if element
39
39
  end
40
40
 
41
- def first!
42
- first || raise(RecordNotFound, "can't find in #{collection} with #{conditions}")
41
+ def last
42
+ element = all.last
43
+ to_entity.call(element) if element
43
44
  end
44
45
 
45
46
  def where(query)
@@ -67,12 +68,6 @@ module Fish0
67
68
  self
68
69
  end
69
70
 
70
- def follow_after(item)
71
- raise ArgumentError unless item.respond_to?(:published_at)
72
-
73
- order_by(published_at: -1).where(published_at: { '$lt': item.published_at })
74
- end
75
-
76
71
  protected
77
72
 
78
73
  def fetch
data/lib/fish0/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Fish0
2
- VERSION = '0.0.2'.freeze
2
+ VERSION = '0.0.3'.freeze
3
3
  end
data/lib/fish0.rb CHANGED
@@ -1,11 +1,13 @@
1
1
  require 'mongo'
2
2
  require 'fish0/version'
3
- require 'fish0/record_not_found'
3
+ require 'fish0/exceptions'
4
4
  require 'fish0/repository'
5
5
  require 'fish0/paginator'
6
6
  require 'fish0/concerns/cacheable'
7
7
  require 'fish0/concerns/paginatable'
8
8
  require 'fish0/concerns/view_model'
9
+ require 'fish0/concerns/base'
10
+ require 'fish0/model'
9
11
 
10
12
  module Fish0
11
13
  class << self
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fish0
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dmitry Zuev
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0.35'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rspec
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '3.4'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '3.4'
69
83
  description: |-
70
84
  Plugin for read-only content websites with MongoDB storage.
71
85
  Works perfect with Rambler&Co CQRS projects
@@ -79,11 +93,13 @@ files:
79
93
  - README.md
80
94
  - Rakefile
81
95
  - lib/fish0.rb
96
+ - lib/fish0/concerns/base.rb
82
97
  - lib/fish0/concerns/cacheable.rb
83
98
  - lib/fish0/concerns/paginatable.rb
84
99
  - lib/fish0/concerns/view_model.rb
100
+ - lib/fish0/exceptions.rb
101
+ - lib/fish0/model.rb
85
102
  - lib/fish0/paginator.rb
86
- - lib/fish0/record_not_found.rb
87
103
  - lib/fish0/repository.rb
88
104
  - lib/fish0/version.rb
89
105
  homepage: https://github.com/rambler-digital-solutions/fish0
@@ -106,7 +122,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
106
122
  version: '0'
107
123
  requirements: []
108
124
  rubyforge_project:
109
- rubygems_version: 2.4.5.1
125
+ rubygems_version: 2.5.1
110
126
  signing_key:
111
127
  specification_version: 4
112
128
  summary: Plugin for read-only content websites
@@ -1,4 +0,0 @@
1
- module Fish0
2
- class RecordNotFound < StandardError
3
- end
4
- end