enju_bookmark 0.0.20 → 0.0.21
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.
@@ -0,0 +1,37 @@
|
|
1
|
+
module EnjuBookmark
|
2
|
+
module BookmarkHelper
|
3
|
+
def link_to_tag(tag)
|
4
|
+
link_to tag, manifestations_path(:tag => tag.name)
|
5
|
+
end
|
6
|
+
|
7
|
+
def render_tag_cloud(tags, options = {})
|
8
|
+
return nil if tags.nil?
|
9
|
+
# TODO: add options to specify different limits and sorts
|
10
|
+
#tags = Tag.all(:limit => 100, :order => 'taggings_count DESC').sort_by(&:name)
|
11
|
+
|
12
|
+
# TODO: add option to specify which classes you want and overide this if you want?
|
13
|
+
classes = %w(popular v-popular vv-popular vvv-popular vvvv-popular)
|
14
|
+
|
15
|
+
max, min = 0, 0
|
16
|
+
tags.each do |tag|
|
17
|
+
#if options[:max] or options[:min]
|
18
|
+
# max = options[:max].to_i
|
19
|
+
# min = options[:min].to_i
|
20
|
+
#end
|
21
|
+
max = tag.taggings.size if tag.taggings.size > max
|
22
|
+
min = tag.taggings.size if tag.taggings.size < min
|
23
|
+
end
|
24
|
+
divisor = ((max - min).div(classes.size)) + 1
|
25
|
+
|
26
|
+
content_tag :div, :class => "hTagcloud" do
|
27
|
+
content_tag :ul, :class => "popularity" do
|
28
|
+
tags.each do |tag|
|
29
|
+
content_tag :li do
|
30
|
+
link_to(tag.name, manifestations_path(:tag => tag.name), :class => classes[(tag.taggings.size - min).div(divisor)])
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module SuggestTag
|
2
|
+
def suggest_tags
|
3
|
+
tags = []
|
4
|
+
threshold = (self.strip.split(//).size * 0.2).round
|
5
|
+
Bookmark.tag_counts(:limit => 100).each do |t|
|
6
|
+
distance = Text::Levenshtein.distance(t.name, self)
|
7
|
+
tags << t if distance <= threshold
|
8
|
+
end
|
9
|
+
tags
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
class String
|
14
|
+
include SuggestTag
|
15
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module EnjuBookmark
|
2
|
+
module BookmarkUser
|
3
|
+
def self.included(base)
|
4
|
+
base.extend ClassMethods
|
5
|
+
end
|
6
|
+
|
7
|
+
module ClassMethods
|
8
|
+
def enju_bookmark_user
|
9
|
+
include InstanceMethods
|
10
|
+
has_many :bookmarks, :dependent => :destroy
|
11
|
+
acts_as_tagger
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
module InstanceMethods
|
16
|
+
def owned_tags_by_solr
|
17
|
+
bookmark_ids = bookmarks.collect(&:id)
|
18
|
+
if bookmark_ids.empty?
|
19
|
+
[]
|
20
|
+
else
|
21
|
+
Tag.bookmarked(bookmark_ids)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
data/lib/enju_bookmark.rb
CHANGED
@@ -1,7 +1,12 @@
|
|
1
1
|
require "enju_bookmark/engine"
|
2
|
+
require "enju_bookmark/user"
|
2
3
|
require "enju_bookmark/bookmark_url"
|
3
4
|
require "enju_bookmark/calculate_stat"
|
4
5
|
require "enju_bookmark/expire_tag_cloud"
|
6
|
+
#require "enju_bookmark/suggest_tag"
|
7
|
+
require "enju_bookmark/bookmark_helper"
|
5
8
|
|
6
9
|
module EnjuBookmark
|
7
10
|
end
|
11
|
+
|
12
|
+
ActiveRecord::Base.send :include, EnjuBookmark::BookmarkUser
|
@@ -10,16 +10,8 @@ class User < ActiveRecord::Base
|
|
10
10
|
has_one :user_has_role
|
11
11
|
has_one :role, :through => :user_has_role
|
12
12
|
belongs_to :required_role, :class_name => 'Role', :foreign_key => 'required_role_id'
|
13
|
-
has_many :bookmarks, :dependent => :destroy
|
14
13
|
|
15
|
-
|
16
|
-
bookmark_ids = bookmarks.collect(&:id)
|
17
|
-
if bookmark_ids.empty?
|
18
|
-
[]
|
19
|
-
else
|
20
|
-
Tag.bookmarked(bookmark_ids)
|
21
|
-
end
|
22
|
-
end
|
14
|
+
enju_bookmark_user
|
23
15
|
|
24
16
|
def has_role?(role_in_question)
|
25
17
|
return false unless role
|
data/spec/dummy/db/test.sqlite3
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: enju_bookmark
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.21
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-06-
|
12
|
+
date: 2012-06-22 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
@@ -240,10 +240,13 @@ files:
|
|
240
240
|
- db/migrate/20100222124420_add_allow_bookmark_external_url_to_library_group.rb
|
241
241
|
- db/migrate/20100525171356_acts_as_taggable_on_migration.rb
|
242
242
|
- db/migrate/20111231145823_add_share_bookmarks_to_user.rb
|
243
|
+
- lib/enju_bookmark/bookmark_helper.rb
|
243
244
|
- lib/enju_bookmark/bookmark_url.rb
|
244
245
|
- lib/enju_bookmark/calculate_stat.rb
|
245
246
|
- lib/enju_bookmark/engine.rb
|
246
247
|
- lib/enju_bookmark/expire_tag_cloud.rb
|
248
|
+
- lib/enju_bookmark/suggest_tag.rb
|
249
|
+
- lib/enju_bookmark/user.rb
|
247
250
|
- lib/enju_bookmark/version.rb
|
248
251
|
- lib/enju_bookmark.rb
|
249
252
|
- lib/tasks/enju_bookmark_tasks.rake
|