mongo_grid 0.3.0 → 0.3.1
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 +4 -4
- data/.gitignore +1 -1
- data/README.md +6 -6
- data/lib/{mongo_grid/action_base.rb → action_base.rb} +0 -0
- data/lib/mongo_grid.rb +4 -4
- data/lib/mongoid.rb +56 -0
- data/lib/plug.rb +24 -0
- data/lib/{mongo_grid/version.rb → version.rb} +1 -1
- data/mongo_grid.gemspec +1 -1
- metadata +5 -4
- data/lib/mongo_grid/mongoid.rb +0 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ffcb534714ce76aae95b96022f604a95252d5b442b6182c8f96e3d91cc2c8254
|
4
|
+
data.tar.gz: 87bf5014f84e6a7a17d14fbac507e69ea17cbf29840b66dbc2a9e90b8bca3f51
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4345dd3ce0b3ac61feda1055e81e93ea9cd748a94619c199e3b041eddcfcad309959e0f0efbb1d0c1f8cbddae77d942bd5497806a6139e813b71aeae8c722f2a
|
7
|
+
data.tar.gz: 78f60241b7a247e265330ab92dd8745b4061e7e5e8a66be5de11850d21d6458c2c8224b319e28414630e75711cfef4d43d6c8ec67b71de3cad1b5a7609574dbd
|
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -47,15 +47,15 @@ resize -help
|
|
47
47
|
|
48
48
|
### Mongoid extensions
|
49
49
|
|
50
|
-
This gem also add
|
50
|
+
This gem also add some dynamic methods in mongoid module.
|
51
51
|
```
|
52
|
-
-
|
53
|
-
-
|
54
|
-
- remove_attach
|
55
|
-
- remove_embed
|
52
|
+
- remove_XXX
|
53
|
+
- delete_medias(content)
|
56
54
|
```
|
57
55
|
|
58
|
-
|
56
|
+
remove_XXX method can be used in module callback when you want to delete a document in mongodb
|
57
|
+
|
58
|
+
delete_medias(content) used to delete medias within content like article body
|
59
59
|
|
60
60
|
### Action Base extensions
|
61
61
|
|
File without changes
|
data/lib/mongo_grid.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
require '
|
1
|
+
require 'version'
|
2
2
|
|
3
3
|
#Dir[File.join(File.dirname(__FILE__), 'mongo_grid', '*.rb')].each do |extension|
|
4
4
|
# require extension
|
@@ -65,6 +65,6 @@ module ::MongoGrid
|
|
65
65
|
end
|
66
66
|
end
|
67
67
|
|
68
|
-
|
69
|
-
require '
|
70
|
-
require '
|
68
|
+
require 'mongoid'
|
69
|
+
require 'action_base'
|
70
|
+
require 'plug'
|
data/lib/mongoid.rb
ADDED
@@ -0,0 +1,56 @@
|
|
1
|
+
module ::Mongoid
|
2
|
+
module Document
|
3
|
+
|
4
|
+
def self.included(base)
|
5
|
+
base.include(InstanceMethods)
|
6
|
+
base.extend(ClassMethods)
|
7
|
+
end
|
8
|
+
|
9
|
+
module InstanceMethods
|
10
|
+
# remove medias within the content
|
11
|
+
def delete_medias(content)
|
12
|
+
doc = Nokogiri::HTML(eval("self.#{content.to_s}"))
|
13
|
+
#doc = Nokogiri::HTML(self.content)
|
14
|
+
images = doc.css("img[src*='/see/']")
|
15
|
+
if images.count>0
|
16
|
+
images.each do |image|
|
17
|
+
grid_id = image["src"].split("/")[2]
|
18
|
+
MongoGrid.remove(grid_id)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
module ClassMethods
|
25
|
+
def method_missing(name,*args)
|
26
|
+
if name.to_s =~ /^remove_(.*)$/
|
27
|
+
# if name is pluralize
|
28
|
+
if name.to_s.pluralize == name.to_s
|
29
|
+
return self.class_eval(%Q{
|
30
|
+
define_method("remove_#{$1}") do
|
31
|
+
grid_files=self.#{$1}
|
32
|
+
grid_files.each do |grid_file|
|
33
|
+
id = BSON::ObjectId.from_string(grid_file['grid_id'])
|
34
|
+
MongoGrid.grid.delete(id)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
})
|
38
|
+
else
|
39
|
+
# name is singlular
|
40
|
+
return self.class_eval(%Q{
|
41
|
+
define_method("remove_#{$1}") do
|
42
|
+
grid_file=self.#{$1}
|
43
|
+
unless grid_file.blank?
|
44
|
+
id = BSON::ObjectId.from_string(grid_file['grid_id'])
|
45
|
+
MongoGrid.grid.delete(id)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
})
|
49
|
+
end
|
50
|
+
else
|
51
|
+
puts "No this method"
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
data/lib/plug.rb
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
module ::Plug
|
2
|
+
module Mixin
|
3
|
+
|
4
|
+
def self.included(base)
|
5
|
+
base.extend(ClassMethods)
|
6
|
+
end
|
7
|
+
|
8
|
+
module ClassMethods
|
9
|
+
def array_attr(attr)
|
10
|
+
attr = attr.to_s
|
11
|
+
self.class_eval(%Q{
|
12
|
+
def #{attr}_list
|
13
|
+
return "" if self.#{attr}.blank?
|
14
|
+
self.#{attr}.join(",")
|
15
|
+
end
|
16
|
+
def #{attr}_list=(value)
|
17
|
+
self.#{attr} = value.split(",") if !value.blank?
|
18
|
+
end
|
19
|
+
})
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
end
|
data/mongo_grid.gemspec
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mongo_grid
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- zxy
|
@@ -24,10 +24,11 @@ files:
|
|
24
24
|
- bin/console
|
25
25
|
- bin/resize
|
26
26
|
- bin/setup
|
27
|
+
- lib/action_base.rb
|
27
28
|
- lib/mongo_grid.rb
|
28
|
-
- lib/
|
29
|
-
- lib/
|
30
|
-
- lib/
|
29
|
+
- lib/mongoid.rb
|
30
|
+
- lib/plug.rb
|
31
|
+
- lib/version.rb
|
31
32
|
- mongo_grid.gemspec
|
32
33
|
homepage: https://rubygems.org/lajunta/mongo_grid
|
33
34
|
licenses:
|
data/lib/mongo_grid/mongoid.rb
DELETED
@@ -1,16 +0,0 @@
|
|
1
|
-
module ::Mongoid
|
2
|
-
module Document
|
3
|
-
|
4
|
-
%w[logo avatar attach embed].each do |name|
|
5
|
-
module_eval(%Q(
|
6
|
-
def remove_#{name}
|
7
|
-
attach=self.#{name}
|
8
|
-
unless attach.blank?
|
9
|
-
id = BSON::ObjectId.from_string(attach['grid_id'])
|
10
|
-
MongoGrid.grid.delete(id)
|
11
|
-
end
|
12
|
-
end
|
13
|
-
))
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|