mongosteen 0.1.0
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 +7 -0
- data/CONTRIBUTING.md +24 -0
- data/Gemfile +3 -0
- data/LICENSE.md +21 -0
- data/README.md +28 -0
- data/Rakefile +3 -0
- data/lib/mongoid/fake_criteria.rb +24 -0
- data/lib/mongoid/serializable_id.rb +19 -0
- data/lib/mongoid/sorted_relations.rb +61 -0
- data/lib/mongosteen.rb +48 -0
- data/lib/mongosteen/actions.rb +37 -0
- data/lib/mongosteen/base_helpers.rb +59 -0
- data/lib/mongosteen/class_methods.rb +7 -0
- data/lib/mongosteen/engine.rb +5 -0
- data/lib/mongosteen/permitted_params.rb +46 -0
- data/lib/mongosteen/version.rb +3 -0
- data/mongosteen.gemspec +35 -0
- metadata +146 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: a2c5e9a3b1fb54ca264fbc34e957dc6ca0b8a0d8
|
4
|
+
data.tar.gz: f2be921ba553aaf9ab72f9da5d62606ca48c7fc6
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 80f24df9d54d67e47e1c0ec5fb0ac3bb8b4e7f2edf232870cca933c2028efdf657d5cd2930fa30c9717689faf2bc7271d72bcb04171e7ce4a68a04e1b0e533ba
|
7
|
+
data.tar.gz: 8b4a72708186e3f209acd208de62a5eba5df49f4059a996de049a43fa436eeb086d74b447cd69e50e1795f42522b13a575ead23a611e753cfe7070812dbdb59a
|
data/CONTRIBUTING.md
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
We love pull requests. Here’s a quick guide:
|
2
|
+
|
3
|
+
1. Fork the repository.
|
4
|
+
2. Make your changes in a topic branch.
|
5
|
+
3. Squash your commits into a single one (more on that [here](http://gitready.com/advanced/2009/02/10/squashing-commits-with-rebase.html)).
|
6
|
+
4. Rebase against `origin/master`, push to your fork and submit a pull request.
|
7
|
+
5. If you are writing a new feature please add documentation for it by making another pull request to the `gh-pages` branch.
|
8
|
+
|
9
|
+
At this point you’re waiting on us. We like to at least comment on, if not
|
10
|
+
accept, pull requests within three business days (and, typically, one business
|
11
|
+
day). We may suggest some changes or improvements or alternatives.
|
12
|
+
|
13
|
+
Some things that will increase the chance that your pull request is accepted:
|
14
|
+
|
15
|
+
* Fix a bug, refactor code or expand an existing feature.
|
16
|
+
* Use the right syntax and naming conventions.
|
17
|
+
* Update parts of the documentation that are affected by your contribution.
|
18
|
+
|
19
|
+
**Git Commit Messages**
|
20
|
+
|
21
|
+
* Capitalize your commit messages.
|
22
|
+
* Start your message with a verb.
|
23
|
+
* Use present tense.
|
24
|
+
* Refer to the issue/PR number in your squashed commit message.
|
data/Gemfile
ADDED
data/LICENSE.md
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
The MIT License (MIT)
|
2
|
+
|
3
|
+
Copyright © 2015 [Slate Studio, LLC.](http://slatestudio.com)
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the “Software”), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
13
|
+
copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21
|
+
SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+

|
2
|
+
|
3
|
+
# Mongosteen
|
4
|
+
|
5
|
+
## An easy way to add restful actions
|
6
|
+
|
7
|
+
Mongosteen is a library that helps to easily add restful actions to mongoid models with support of search, pagination, scopes, history, json config.
|
8
|
+
|
9
|
+
- search
|
10
|
+
- pagination
|
11
|
+
- scopes
|
12
|
+
- json config
|
13
|
+
- history
|
14
|
+
|
15
|
+
## The Mongosteen family
|
16
|
+
|
17
|
+
- [Character](https://github.com/slate-studio/chr): A simple and lightweight library for building data management web apps
|
18
|
+
- [Character Admin](https://github.com/slate-studio/chr-admin): Flexible javascript admin solution for Rails applications
|
19
|
+
|
20
|
+
## Credits
|
21
|
+
|
22
|
+
[](http://slatestudio.com)
|
23
|
+
|
24
|
+
Mongosteen is maintained and funded by [Slate Studio, LLC](http://slatestudio.com). Tweet your questions or suggestions to [@slatestudio](https://twitter.com/slatestudio) and while you’re at it follow us too.
|
25
|
+
|
26
|
+
## License
|
27
|
+
|
28
|
+
Copyright © 2015 [Slate Studio, LLC](http://slatestudio.com). Mongosteen is free software, and may be redistributed under the terms specified in the [license](LICENSE.md).
|
data/Rakefile
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
# NOTE: this is required by sorted_relations.rb
|
2
|
+
module Mongoid
|
3
|
+
class FakeCriteria
|
4
|
+
def initialize(documents)
|
5
|
+
@documents = documents
|
6
|
+
end
|
7
|
+
|
8
|
+
def limit(quantity)
|
9
|
+
Mongoid::FakeCriteria.new(@documents[0..quantity-1])
|
10
|
+
end
|
11
|
+
|
12
|
+
def raw
|
13
|
+
@documents
|
14
|
+
end
|
15
|
+
|
16
|
+
def as_json(options={})
|
17
|
+
@documents.as_json(options)
|
18
|
+
end
|
19
|
+
|
20
|
+
def method_missing(*args, &block)
|
21
|
+
@documents.send(*args, &block)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Mongoid
|
2
|
+
module SerializableId
|
3
|
+
extend ActiveSupport::Concern
|
4
|
+
|
5
|
+
def serializable_hash(options={})
|
6
|
+
attrs = super(options)
|
7
|
+
attrs.each_pair do |k, v|
|
8
|
+
if k.end_with?('_id')
|
9
|
+
attrs[k] = v.to_s
|
10
|
+
end
|
11
|
+
|
12
|
+
if k.end_with?('_ids')
|
13
|
+
attrs[k] = attrs[k].collect { |id| id.to_s }
|
14
|
+
end
|
15
|
+
end
|
16
|
+
attrs
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,61 @@
|
|
1
|
+
# NOTE: this is an updated version of mongoid-sorted-relations gem
|
2
|
+
# https://github.com/demarque/mongoid-sorted-relations
|
3
|
+
|
4
|
+
# NOTE: the problem is that mongoid returnes object in random order
|
5
|
+
# for relation queries, this patch stores relations ids order
|
6
|
+
# and sort objects using cached order.
|
7
|
+
|
8
|
+
module Mongoid
|
9
|
+
module SortedRelations
|
10
|
+
extend ActiveSupport::Concern
|
11
|
+
|
12
|
+
included do
|
13
|
+
after_initialize :define_sorted_methods
|
14
|
+
after_initialize :cache_relations_ids_order
|
15
|
+
after_save :cache_relations_ids_order
|
16
|
+
end
|
17
|
+
|
18
|
+
def define_sorted_methods
|
19
|
+
self.relations.each do |key, relation|
|
20
|
+
if [:has_many, :has_and_belongs_to_many].include? relation.macro
|
21
|
+
self.class.send(:define_method, "sorted_#{relation.name}") do
|
22
|
+
sorted_relation(relation)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def cache_relations_ids_order
|
29
|
+
@__sorted_relation_criterias = {}
|
30
|
+
@__sorted_relation_ids = {}
|
31
|
+
|
32
|
+
self.relations.each do |key, relation|
|
33
|
+
if [:has_many, :has_and_belongs_to_many].include? relation.macro
|
34
|
+
relation_ids = self.send(relation.key)
|
35
|
+
|
36
|
+
@__sorted_relation_ids[relation.key] = [ relation_ids ].flatten.map do |rid|
|
37
|
+
rid.to_s
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
def sorted_relation(relation)
|
44
|
+
@__sorted_relation_criterias[relation.name] ||= sorted_related_criteria(relation)
|
45
|
+
end
|
46
|
+
|
47
|
+
def sorted_related_criteria(relation)
|
48
|
+
related_documents = self.send(relation.name)
|
49
|
+
|
50
|
+
sorted_documents = related_documents.sort_by do |x|
|
51
|
+
@__sorted_relation_ids[relation.key].index(x.id.to_s)
|
52
|
+
end
|
53
|
+
|
54
|
+
return Mongoid::FakeCriteria.new(sorted_documents)
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
|
60
|
+
|
61
|
+
|
data/lib/mongosteen.rb
ADDED
@@ -0,0 +1,48 @@
|
|
1
|
+
# CodeKit needs relative paths
|
2
|
+
dir = File.dirname(__FILE__)
|
3
|
+
$LOAD_PATH.unshift dir unless $LOAD_PATH.include?(dir)
|
4
|
+
|
5
|
+
require 'inherited_resources'
|
6
|
+
require 'has_scope'
|
7
|
+
require 'kaminari'
|
8
|
+
|
9
|
+
module Mongosteen
|
10
|
+
autoload :Actions, 'mongosteen/actions'
|
11
|
+
autoload :ClassMethods, 'mongosteen/class_methods'
|
12
|
+
autoload :BaseHelpers, 'mongosteen/base_helpers'
|
13
|
+
autoload :PermittedParams, 'mongosteen/permitted_params'
|
14
|
+
|
15
|
+
class Engine < ::Rails::Engine
|
16
|
+
require 'mongosteen/engine'
|
17
|
+
require 'mongoid/fake_criteria'
|
18
|
+
require 'mongoid/sorted_relations'
|
19
|
+
require 'mongoid/serializable_id'
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
class ActionController::Base
|
24
|
+
# You can call reactor_resources in your controller to have
|
25
|
+
# all the required modules and funcionality included.
|
26
|
+
def self.reactor_resources
|
27
|
+
self.class_eval do
|
28
|
+
inherit_resources
|
29
|
+
|
30
|
+
respond_to :json
|
31
|
+
class_attribute :as_json_config
|
32
|
+
|
33
|
+
extend Mongosteen::ClassMethods
|
34
|
+
include Mongosteen::BaseHelpers
|
35
|
+
include Mongosteen::Actions
|
36
|
+
include Mongosteen::PermittedParams
|
37
|
+
|
38
|
+
# configure permitted_params to accept all attributes
|
39
|
+
instance_name = self.resources_configuration[:self][:instance_name]
|
40
|
+
define_method("#{ instance_name }_params") { params_all_permitted }
|
41
|
+
private "#{ instance_name }_params"
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
|
47
|
+
|
48
|
+
|
@@ -0,0 +1,37 @@
|
|
1
|
+
module Mongosteen
|
2
|
+
module Actions
|
3
|
+
# GET /resources
|
4
|
+
def index(options={}, &block)
|
5
|
+
super do |success, failure|
|
6
|
+
success.json { render json: get_collection_ivar.as_json(as_json_config) }
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
# GET /resources/1
|
11
|
+
def show(options={}, &block)
|
12
|
+
super do |success, failure|
|
13
|
+
success.json { render json: get_resource_version.as_json(as_json_config) }
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
# POST /resources
|
18
|
+
def create(options={}, &block)
|
19
|
+
super do |success, failure|
|
20
|
+
success.json { render json: get_resource_ivar.as_json(as_json_config) }
|
21
|
+
failure.json { render json: get_resource_ivar.errors, status: :unprocessable_entity }
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
# PUT /resources/1
|
26
|
+
def update(options={}, &block)
|
27
|
+
super do |success, failure|
|
28
|
+
success.json { render json: get_resource_ivar.as_json(as_json_config) }
|
29
|
+
failure.json { render json: get_resource_ivar.errors, status: :unprocessable_entity }
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
|
36
|
+
|
37
|
+
|
@@ -0,0 +1,59 @@
|
|
1
|
+
# List of dependencies:
|
2
|
+
# - inherited_resources
|
3
|
+
# - has_scope
|
4
|
+
# - mongoid_search
|
5
|
+
# - kaminari
|
6
|
+
# - mongoid-history
|
7
|
+
|
8
|
+
module Mongosteen
|
9
|
+
module BaseHelpers
|
10
|
+
protected
|
11
|
+
# add support for scopes, search and pagination
|
12
|
+
def collection
|
13
|
+
get_collection_ivar || begin
|
14
|
+
chain = end_of_association_chain
|
15
|
+
|
16
|
+
# scopes
|
17
|
+
chain = apply_scopes(chain)
|
18
|
+
|
19
|
+
# search
|
20
|
+
if params[:search]
|
21
|
+
chain = chain.search(params[:search].to_s.downcase, match: :all)
|
22
|
+
end
|
23
|
+
|
24
|
+
# pagination
|
25
|
+
if params[:page]
|
26
|
+
per_page = params[:perPage] || 20
|
27
|
+
chain = chain.page(params[:page]).per(per_page)
|
28
|
+
else
|
29
|
+
chain = chain.all
|
30
|
+
end
|
31
|
+
|
32
|
+
set_collection_ivar(chain)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
# add support for history
|
37
|
+
def get_resource_version
|
38
|
+
resource = get_resource_ivar
|
39
|
+
|
40
|
+
version = params[:version].try(:to_i)
|
41
|
+
|
42
|
+
if version && version > 0 && version < resource.version
|
43
|
+
resource.undo(nil, from: version + 1, to: resource.version)
|
44
|
+
resource.version = version
|
45
|
+
end
|
46
|
+
|
47
|
+
return resource
|
48
|
+
end
|
49
|
+
|
50
|
+
# support for json resource configuration
|
51
|
+
def as_json_config
|
52
|
+
self.class.as_json_config
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
|
58
|
+
|
59
|
+
|
@@ -0,0 +1,46 @@
|
|
1
|
+
module Mongosteen
|
2
|
+
module PermittedParams
|
3
|
+
# Permits all parameters that are sent, unless `project_params`
|
4
|
+
# (or `smth_else_params`) defined, which is a default Rails
|
5
|
+
# controller method for strong parameters definition.
|
6
|
+
def params_all_permitted
|
7
|
+
permit_fields = []
|
8
|
+
|
9
|
+
params[resource_request_name].each do |key, value|
|
10
|
+
permit_fields << attr_name_or_map(key, value)
|
11
|
+
end
|
12
|
+
|
13
|
+
return params.require(resource_request_name).permit(permit_fields)
|
14
|
+
end
|
15
|
+
|
16
|
+
# Allow all sent in params attributes to be written
|
17
|
+
def attr_name_or_map(attr_name, val)
|
18
|
+
# NOTE: RECURSION is used to map all hashes in params to update nested documents
|
19
|
+
if val.is_a?(Hash)
|
20
|
+
map = {} ; map[attr_name] = []
|
21
|
+
|
22
|
+
if val.first[0] == val.first[0].to_i.to_s # check if key is an integer which means we have an array of nested objects
|
23
|
+
|
24
|
+
#val.each do |nestedObjectKey, nestedObjectValue|
|
25
|
+
# nestedObjectValue.each { |arr_value_key, arr_value_value| map[attr_name] << attr_name_or_map(arr_value_key, arr_value_value) }
|
26
|
+
#end
|
27
|
+
|
28
|
+
val.first[1].each { |arr_value_key, arr_value_value| map[attr_name] << attr_name_or_map(arr_value_key, arr_value_value) }
|
29
|
+
|
30
|
+
else
|
31
|
+
val.each { |hsh_key, hsh_value| map[attr_name] << attr_name_or_map(hsh_key, hsh_value) }
|
32
|
+
end
|
33
|
+
|
34
|
+
return map
|
35
|
+
elsif val.is_a?(Array)
|
36
|
+
map = {} ; map[attr_name] = []
|
37
|
+
return map
|
38
|
+
else
|
39
|
+
return attr_name
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
|
46
|
+
|
data/mongosteen.gemspec
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
$:.push File.expand_path('../lib', __FILE__)
|
3
|
+
require 'mongosteen/version'
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = 'mongosteen'
|
7
|
+
s.version = Mongosteen::VERSION
|
8
|
+
s.platform = Gem::Platform::RUBY
|
9
|
+
s.authors = ['Alexander Kravets']
|
10
|
+
s.email = 'alex@slatestudio.com'
|
11
|
+
s.license = 'MIT'
|
12
|
+
s.homepage = 'https://github.com/slate-studio/mongosteen'
|
13
|
+
s.summary = 'An easy way to add restful actions'
|
14
|
+
s.description = <<-DESC
|
15
|
+
Mongosteen is a library that helps to easily add restful actions to
|
16
|
+
mongoid models with support of search, pagination, scopes, history,
|
17
|
+
json config.
|
18
|
+
DESC
|
19
|
+
|
20
|
+
s.rubyforge_project = 'mongosteen'
|
21
|
+
|
22
|
+
s.files = `git ls-files`.split("\n")
|
23
|
+
s.require_paths = ['lib']
|
24
|
+
|
25
|
+
s.add_dependency('mongoid', '~> 4.0') # orm
|
26
|
+
s.add_dependency('inherited_resources', '~> 1.6') # base actions
|
27
|
+
s.add_dependency('kaminari', '~> 0.16') # pagination
|
28
|
+
s.add_dependency('mongoid_search', '~> 0.3') # search
|
29
|
+
s.add_dependency('has_scope', '~> 0.6') # scopes
|
30
|
+
s.add_dependency('mongoid-history', '~> 0.4') # history
|
31
|
+
end
|
32
|
+
|
33
|
+
|
34
|
+
|
35
|
+
|
metadata
ADDED
@@ -0,0 +1,146 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: mongosteen
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Alexander Kravets
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-03-02 00:00:00.000000000 Z
|
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: '4.0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '4.0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: inherited_resources
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.6'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.6'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: kaminari
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0.16'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0.16'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: mongoid_search
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0.3'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0.3'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: has_scope
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0.6'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0.6'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: mongoid-history
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0.4'
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0.4'
|
97
|
+
description: |
|
98
|
+
Mongosteen is a library that helps to easily add restful actions to
|
99
|
+
mongoid models with support of search, pagination, scopes, history,
|
100
|
+
json config.
|
101
|
+
email: alex@slatestudio.com
|
102
|
+
executables: []
|
103
|
+
extensions: []
|
104
|
+
extra_rdoc_files: []
|
105
|
+
files:
|
106
|
+
- CONTRIBUTING.md
|
107
|
+
- Gemfile
|
108
|
+
- LICENSE.md
|
109
|
+
- README.md
|
110
|
+
- Rakefile
|
111
|
+
- lib/mongoid/fake_criteria.rb
|
112
|
+
- lib/mongoid/serializable_id.rb
|
113
|
+
- lib/mongoid/sorted_relations.rb
|
114
|
+
- lib/mongosteen.rb
|
115
|
+
- lib/mongosteen/actions.rb
|
116
|
+
- lib/mongosteen/base_helpers.rb
|
117
|
+
- lib/mongosteen/class_methods.rb
|
118
|
+
- lib/mongosteen/engine.rb
|
119
|
+
- lib/mongosteen/permitted_params.rb
|
120
|
+
- lib/mongosteen/version.rb
|
121
|
+
- mongosteen.gemspec
|
122
|
+
homepage: https://github.com/slate-studio/mongosteen
|
123
|
+
licenses:
|
124
|
+
- MIT
|
125
|
+
metadata: {}
|
126
|
+
post_install_message:
|
127
|
+
rdoc_options: []
|
128
|
+
require_paths:
|
129
|
+
- lib
|
130
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
131
|
+
requirements:
|
132
|
+
- - ">="
|
133
|
+
- !ruby/object:Gem::Version
|
134
|
+
version: '0'
|
135
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
136
|
+
requirements:
|
137
|
+
- - ">="
|
138
|
+
- !ruby/object:Gem::Version
|
139
|
+
version: '0'
|
140
|
+
requirements: []
|
141
|
+
rubyforge_project: mongosteen
|
142
|
+
rubygems_version: 2.4.5
|
143
|
+
signing_key:
|
144
|
+
specification_version: 4
|
145
|
+
summary: An easy way to add restful actions
|
146
|
+
test_files: []
|