has_machine_tags 0.1.8 → 0.2.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.
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).