has_machine_tags 0.1.8 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG.rdoc CHANGED
@@ -1,3 +1,6 @@
1
+ == 0.2.0
2
+ * Remove code that depends on Rails and ActiveSupport
3
+
1
4
  == 0.1.8
2
5
  * Made Rails3 compatible
3
6
 
data/README.rdoc CHANGED
@@ -19,7 +19,7 @@ This gem should run on all major Ruby versions and work with Rails 2.3.x and up.
19
19
 
20
20
  Install as a gem
21
21
 
22
- bash> gem install has_machine_tags
22
+ $ gem install has_machine_tags
23
23
 
24
24
  # with bundler: add in Gemfile
25
25
  gem 'has_machine_tags'
@@ -29,13 +29,13 @@ Install as a gem
29
29
 
30
30
  Or as a plugin
31
31
 
32
- bash> script/plugin install git://github.com/cldwalker/has_machine_tags.git
32
+ $ script/plugin install git://github.com/cldwalker/has_machine_tags.git
33
33
 
34
34
 
35
35
  Migrate your database from Rails root:
36
36
 
37
- bash> script/generate has_machine_tags_migration
38
- bash> rake db:migrate
37
+ $ script/generate has_machine_tags_migration
38
+ $ rake db:migrate
39
39
 
40
40
  == Usage
41
41
 
@@ -6,7 +6,7 @@ module HasMachineTags
6
6
  # end
7
7
  module TagConsole
8
8
  def self.included(base) #:nodoc:
9
- scope = Rails.version >= '3.0' ? 'scope' : 'named_scope'
9
+ scope = ActiveRecord::VERSION::STRING >= '3.0' ? 'scope' : 'named_scope'
10
10
  base.class_eval %[
11
11
  self.#{scope} :namespace_counts, :select=>'*, namespace as counter, count(namespace) as count', :group=>"namespace HAVING count(namespace)>=1"
12
12
  self.#{scope} :predicate_counts, :select=>'*, predicate as counter, count(predicate) as count', :group=>"predicate HAVING count(predicate)>=1"
@@ -1,11 +1,8 @@
1
1
  module HasMachineTags
2
2
  class TagList < Array
3
- cattr_accessor :delimiter
4
- self.delimiter = ','
5
- cattr_accessor :default_predicate
6
- self.default_predicate = 'tags'
7
3
  QUICK_MODE_DELIMITER = ';'
8
4
 
5
+ attr_accessor :delimiter, :default_predicate
9
6
  # ==== Options:
10
7
  # [:quick_mode]
11
8
  # When true enables a quick mode for inputing multiple machine tags under the same namespace.
@@ -19,6 +16,7 @@ module HasMachineTags
19
16
  # HasMachineTags::TagList.new("gem:name=grit;git, user:name=mojombo")
20
17
  # => ["gem:name=grit", "gem:tags=git", "user:name=mojombo"]
21
18
  def initialize(string_or_array, options={})
19
+ @delimiter, @default_predicate = ',', 'tags'
22
20
  @options = options
23
21
  array = string_or_array.is_a?(Array) ? string_or_array : string_or_array.split(/\s*#{delimiter}\s*/)
24
22
  array = parse_quick_mode(array) if @options[:quick_mode]
@@ -70,4 +68,4 @@ module HasMachineTags
70
68
  join("#{delimiter} ")
71
69
  end
72
70
  end
73
- end
71
+ end
@@ -1,3 +1,3 @@
1
1
  module HasMachineTags
2
- VERSION = '0.1.8'
2
+ VERSION = '0.2.0'
3
3
  end
@@ -16,7 +16,7 @@ module HasMachineTags
16
16
  # [:reverse_has_many] Defines a has_many :through from tags to the model using the plural of the model name.
17
17
  # [:quick_mode] When true, enables a quick mode to input machine tags with HasMachineTags::InstanceMethods.tag_list=(). See examples at HasMachineTags::TagList.new().
18
18
  def has_machine_tags(options={})
19
- cattr_accessor :quick_mode
19
+ class << self; attr_accessor :quick_mode; end
20
20
  self.quick_mode = options[:quick_mode] || false
21
21
  self.class_eval do
22
22
  has_many :taggings, :as=>:taggable, :dependent=>:destroy
@@ -27,7 +27,7 @@ module HasMachineTags
27
27
  extend HasMachineTags::Finder
28
28
  include HasMachineTags::Console::InstanceMethods if options[:console]
29
29
 
30
- scope_word = Rails.version >= '3.0' ? 'scope' : 'named_scope'
30
+ scope_word = ActiveRecord::VERSION::STRING >= '3.0' ? 'scope' : 'named_scope'
31
31
  send scope_word, :tagged_with, lambda { |*args|
32
32
  find_options_for_tagged_with(*args)
33
33
  }
@@ -48,14 +48,14 @@ module HasMachineTags
48
48
  end
49
49
 
50
50
  def current_tag_list(list) #:nodoc:
51
- TagList.new(list, :quick_mode=>self.quick_mode)
51
+ TagList.new(list, :quick_mode=>self.class.quick_mode)
52
52
  end
53
53
 
54
54
  # Fetches latest tag list for an object
55
55
  def tag_list
56
56
  @tag_list ||= TagList.new(self.tags.map(&:name))
57
57
  end
58
-
58
+
59
59
  def quick_mode_tag_list
60
60
  tag_list.to_quick_mode_string
61
61
  end
metadata CHANGED
@@ -1,13 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: has_machine_tags
3
3
  version: !ruby/object:Gem::Version
4
- hash: 11
5
- prerelease: false
6
- segments:
7
- - 0
8
- - 1
9
- - 8
10
- version: 0.1.8
4
+ prerelease:
5
+ version: 0.2.0
11
6
  platform: ruby
12
7
  authors:
13
8
  - Gabriel Horner
@@ -15,7 +10,7 @@ autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
12
 
18
- date: 2010-09-30 00:00:00 -04:00
13
+ date: 2011-05-30 00:00:00 -04:00
19
14
  default_executable:
20
15
  dependencies:
21
16
  - !ruby/object:Gem::Dependency
@@ -26,11 +21,6 @@ dependencies:
26
21
  requirements:
27
22
  - - ">="
28
23
  - !ruby/object:Gem::Version
29
- hash: 19
30
- segments:
31
- - 1
32
- - 1
33
- - 0
34
24
  version: 1.1.0
35
25
  type: :development
36
26
  version_requirements: *id001
@@ -81,25 +71,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
81
71
  requirements:
82
72
  - - ">="
83
73
  - !ruby/object:Gem::Version
84
- hash: 3
85
- segments:
86
- - 0
87
74
  version: "0"
88
75
  required_rubygems_version: !ruby/object:Gem::Requirement
89
76
  none: false
90
77
  requirements:
91
78
  - - ">="
92
79
  - !ruby/object:Gem::Version
93
- hash: 23
94
- segments:
95
- - 1
96
- - 3
97
- - 6
98
80
  version: 1.3.6
99
81
  requirements: []
100
82
 
101
83
  rubyforge_project: tagaholic
102
- rubygems_version: 1.3.7
84
+ rubygems_version: 1.6.2
103
85
  signing_key:
104
86
  specification_version: 3
105
87
  summary: A rails tagging gem which implements flickr's machine tags and maybe more (semantic tags).