kmayer-highrise 0.9.2 → 0.11.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/.gitignore ADDED
@@ -0,0 +1 @@
1
+ pkg/**
data/CHANGELOG ADDED
@@ -0,0 +1,49 @@
1
+ 2009-05-04 Ken Mayer <kmayer@bitwrangler.com
2
+
3
+ * Version 0.9.0
4
+
5
+ * Changed cache_store= interface to accept :none (to disable caching), :rails (to use the default Rails cache, whatever that happens to be), and, consequently, restores the lookup_store default behavior (given nil or empty options returns a new, default cache_store).
6
+
7
+ * Documentation update. Created and back-filled CHANGELOG
8
+
9
+ 2009-05-01 Ken Mayer <kmayer@bitwrangler.com>
10
+
11
+ * Version 0.8.0
12
+
13
+ * Added caching feature
14
+
15
+ * Added example code
16
+
17
+ * Documentation update
18
+
19
+ * Updated gemspec
20
+
21
+ 2009-04-26 Ken Mayer <kmayer@bitwrangler.com>
22
+
23
+ * Version 0.7.0
24
+
25
+ * Refactored Tag & Taggable so ::Tag is a subclass of Base. This adds ::Tag.find(:all) to your quiver of tools. All existing functionality passes tests, but the interface to ::Tag.new has changed. You have to treat it like all of other ARes, that is, use a Hash (instead of positional parameters) to initialize the model.
26
+
27
+ 2009-04-22 Luis Bepop
28
+
29
+ * Version 0.6.3
30
+
31
+ * Support to tags refactored. Include curl helper to improve support for objects without ActiveResource base like 'tag' which needs a parse in a html document from a httprequest.
32
+
33
+ 2009-04-06 slainer68
34
+
35
+ * Version 0.6.2
36
+
37
+ * Modularize Taggable
38
+
39
+ 2009-03-31 ThiagoLelis
40
+
41
+ * Version 0.6.1
42
+
43
+ * Add Person.tag that show a array of tags, and Perton.tag(name), add a new tag to a person.
44
+
45
+ 2009-01-14 tapajos
46
+
47
+ * Version 0.5.0
48
+
49
+ * Initial import
data/MIT-LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2009 [name of plugin creator]
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/Rakefile CHANGED
@@ -8,8 +8,6 @@ require "fileutils"
8
8
  require "rubygems"
9
9
  require "rake/gempackagetask"
10
10
 
11
- require File.join(File.dirname(__FILE__), 'lib', 'highrise', 'version')
12
-
13
11
  begin
14
12
  require 'jeweler'
15
13
  Jeweler::Tasks.new do |gemspec|
@@ -26,8 +24,7 @@ Configure by adding the following:
26
24
 
27
25
  require 'highrise'
28
26
  Highrise::Base.site = 'http://your_site.highrisehq.com/'
29
- Highrise::Base.user = 'your_api_auth_token'q
30
- Highrise::Base.connection.cache_store = :memory_store # for caching
27
+ Highrise::Base.user = 'your_api_auth_token'
31
28
  }
32
29
  gemspec.authors = ["Marcos Tapajós", "Ken Mayer"]
33
30
  gemspec.add_dependency('activeresource', '>=2.2')
data/VERSION.yml CHANGED
@@ -1,4 +1,4 @@
1
1
  ---
2
- :patch: 2
2
+ :minor: 11
3
+ :patch: 0
3
4
  :major: 0
4
- :minor: 9
@@ -0,0 +1,3 @@
1
+ Autotest.add_discovery do
2
+ "rspec"
3
+ end
data/highrise.gemspec ADDED
@@ -0,0 +1,128 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = %q{highrise}
5
+ s.version = "0.11.0"
6
+
7
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
+ s.authors = ["Marcos Tapaj\303\263s", "Ken Mayer"]
9
+ s.date = %q{2009-05-20}
10
+ s.description = %q{
11
+ Based on the original API module from DHH, http://developer.37signals.com/highrise/, this
12
+ gem is a cleaned up, tested version of the same. Contributors have added support for tags
13
+ which are not supported by the API directly
14
+
15
+ Configure by adding the following:
16
+
17
+ require 'highrise'
18
+ Highrise::Base.site = 'http://your_site.highrisehq.com/'
19
+ Highrise::Base.user = 'your_api_auth_token'
20
+ }
21
+ s.email = %q{kmayer@bitwrangler.com}
22
+ s.extra_rdoc_files = [
23
+ "README.mkdn"
24
+ ]
25
+ s.files = [
26
+ ".gitignore",
27
+ "CHANGELOG",
28
+ "MIT-LICENSE",
29
+ "README.mkdn",
30
+ "Rakefile",
31
+ "VERSION.yml",
32
+ "autotest/discover.rb",
33
+ "examples/extending.rb",
34
+ "examples/sample.rb",
35
+ "highrise.gemspec",
36
+ "install.rb",
37
+ "lib/cachable.rb",
38
+ "lib/highrise.rb",
39
+ "lib/highrise/base.rb",
40
+ "lib/highrise/comment.rb",
41
+ "lib/highrise/company.rb",
42
+ "lib/highrise/curlhelper.rb",
43
+ "lib/highrise/curly.rb",
44
+ "lib/highrise/email.rb",
45
+ "lib/highrise/group.rb",
46
+ "lib/highrise/kase.rb",
47
+ "lib/highrise/membership.rb",
48
+ "lib/highrise/note.rb",
49
+ "lib/highrise/pagination.rb",
50
+ "lib/highrise/person.rb",
51
+ "lib/highrise/subject.rb",
52
+ "lib/highrise/tag.rb",
53
+ "lib/highrise/taggable.rb",
54
+ "lib/highrise/task.rb",
55
+ "lib/highrise/user.rb",
56
+ "spec/cachable_spec.rb",
57
+ "spec/highrise/base_spec.rb",
58
+ "spec/highrise/comment_spec.rb",
59
+ "spec/highrise/companies/16883216.html",
60
+ "spec/highrise/company_spec.rb",
61
+ "spec/highrise/curlhelper_spec.rb",
62
+ "spec/highrise/curly_spec.rb",
63
+ "spec/highrise/email_spec.rb",
64
+ "spec/highrise/group_spec.rb",
65
+ "spec/highrise/kase_spec.rb",
66
+ "spec/highrise/membership_spec.rb",
67
+ "spec/highrise/note_spec.rb",
68
+ "spec/highrise/pagination_spec.rb",
69
+ "spec/highrise/people/16887003.html",
70
+ "spec/highrise/person_spec.rb",
71
+ "spec/highrise/subject_spec.rb",
72
+ "spec/highrise/tag_spec.rb",
73
+ "spec/highrise/task_spec.rb",
74
+ "spec/highrise/user_spec.rb",
75
+ "spec/spec.opts",
76
+ "spec/spec_helper.rb",
77
+ "uninstall.rb"
78
+ ]
79
+ s.homepage = %q{http://github.com/kmayer/highrise}
80
+ s.rdoc_options = ["--charset=UTF-8"]
81
+ s.require_paths = ["lib"]
82
+ s.rubygems_version = %q{1.3.3}
83
+ s.summary = %q{Ruby wrapper around Highrise API}
84
+ s.test_files = [
85
+ "spec/cachable_spec.rb",
86
+ "spec/highrise/base_spec.rb",
87
+ "spec/highrise/comment_spec.rb",
88
+ "spec/highrise/company_spec.rb",
89
+ "spec/highrise/curlhelper_spec.rb",
90
+ "spec/highrise/curly_spec.rb",
91
+ "spec/highrise/email_spec.rb",
92
+ "spec/highrise/group_spec.rb",
93
+ "spec/highrise/kase_spec.rb",
94
+ "spec/highrise/membership_spec.rb",
95
+ "spec/highrise/note_spec.rb",
96
+ "spec/highrise/pagination_spec.rb",
97
+ "spec/highrise/person_spec.rb",
98
+ "spec/highrise/subject_spec.rb",
99
+ "spec/highrise/tag_spec.rb",
100
+ "spec/highrise/task_spec.rb",
101
+ "spec/highrise/user_spec.rb",
102
+ "spec/spec_helper.rb",
103
+ "examples/extending.rb",
104
+ "examples/sample.rb"
105
+ ]
106
+
107
+ if s.respond_to? :specification_version then
108
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
109
+ s.specification_version = 3
110
+
111
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
112
+ s.add_runtime_dependency(%q<activeresource>, [">= 2.2"])
113
+ s.add_runtime_dependency(%q<activesupport>, [">= 2.1"])
114
+ s.add_runtime_dependency(%q<curb>, [">= 0"])
115
+ s.add_runtime_dependency(%q<hpricot>, [">= 0"])
116
+ else
117
+ s.add_dependency(%q<activeresource>, [">= 2.2"])
118
+ s.add_dependency(%q<activesupport>, [">= 2.1"])
119
+ s.add_dependency(%q<curb>, [">= 0"])
120
+ s.add_dependency(%q<hpricot>, [">= 0"])
121
+ end
122
+ else
123
+ s.add_dependency(%q<activeresource>, [">= 2.2"])
124
+ s.add_dependency(%q<activesupport>, [">= 2.1"])
125
+ s.add_dependency(%q<curb>, [">= 0"])
126
+ s.add_dependency(%q<hpricot>, [">= 0"])
127
+ end
128
+ end
data/install.rb ADDED
@@ -0,0 +1 @@
1
+ # Install hook code here
data/lib/cachable.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  # Caching is a way to speed up slow ActiveResource queries by keeping the result of
2
- # an ActiveResource request around to be reused by subequest requests. Caching is
3
- # turned off by default.
2
+ # a request around to be reused by subsequent requests.
3
+ #
4
+ # Caching is turned OFF by default.
4
5
  #
5
6
  # == Usage
6
7
  #
@@ -23,13 +24,13 @@
23
24
  #
24
25
  # Configuration examples ('off' is the default):
25
26
  #
26
- # CachedResource.connection.cache_store = :memory_store
27
+ # CachedResource.connection.cache_store = ActiveSupport::Cache.lookup_store :memory_store
27
28
  # CachedResource.connection.cache_store = ActiveSupport::Cache.lookup_store :file_store, "/path/to/cache/directory"
28
29
  # CachedResource.connection.cache_store = ActiveSupport::Cache.lookup_store :drb_store, "druby://localhost:9192"
29
30
  # CachedResource.connection.cache_store = ActiveSupport::Cache.lookup_store :mem_cache_store, "localhost"
30
31
  # CachedResource.connection.cache_store = MyOwnStore.new("parameter")
31
32
  #
32
- # Note: To ensure that caching is turned off, set CachedResource.connection.cache_store = :none
33
+ # Note: To ensure that caching is turned off, set CachedResource.connection.cache_store = nil
33
34
  #
34
35
  # FYI: You can use this with *any* active resource interface, not just Highrise.
35
36
 
@@ -46,19 +47,8 @@ module Cachable
46
47
  @cache_store ||= nil
47
48
  end
48
49
 
49
- # Wrapper for lookup_store, with a couple of special options:
50
- # Passing +:none+ will turn off caching
51
- # Passing +:rails+ will use the default Rails/AS cache (whatever it happens to be)
52
- # Passing +nil+ will use the default cache from AS
53
50
  def cache_store=(store_option)
54
- @cache_store = case store_option
55
- when :none
56
- nil
57
- when :rails
58
- Rails.cache rescue ActiveSupport::Cache.lookup_store
59
- else
60
- ActiveSupport::Cache.lookup_store(store_option)
61
- end
51
+ @cache_store = store_option
62
52
  end
63
53
 
64
54
  def is_caching?
data/lib/highrise.rb CHANGED
@@ -3,7 +3,6 @@ require 'activesupport'
3
3
  require 'active_support/basic_object'
4
4
 
5
5
  require File.dirname(__FILE__) + '/highrise/base'
6
- require File.dirname(__FILE__) + '/highrise/version'
7
6
  require File.dirname(__FILE__) + '/highrise/pagination'
8
7
  require File.dirname(__FILE__) + '/highrise/curly'
9
8
  require File.dirname(__FILE__) + '/highrise/curlhelper'
data/lib/highrise/base.rb CHANGED
@@ -1,4 +1,4 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/../cachable')
1
+ require File.dirname(__FILE__) + '/../cachable'
2
2
 
3
3
  module Highrise
4
4
  class Base < ActiveResource::Base
@@ -7,4 +7,3 @@ module Highrise
7
7
  include Cachable
8
8
  end
9
9
  end
10
-
@@ -9,9 +9,13 @@ module Highrise
9
9
 
10
10
  def untag!(tag_name)
11
11
  to_delete = self.tags.find{|t| t.name==tag_name} unless tag_name.blank?
12
- self.delete("tags/#{to_delete.id}") unless to_delete.nil?
12
+ self.untag_id!(to_delete.id) unless to_delete.nil?
13
13
  end
14
14
 
15
+ def untag_id!(tag_id)
16
+ self.delete("tags/#{tag_id}")
17
+ end
18
+
15
19
  def tags
16
20
  tags = []
17
21
  get_document.search("#show_tags a").each{ |a|
@@ -1,4 +1,4 @@
1
- require File.dirname(__FILE__) + '/../spec_helper'
1
+ require File.dirname(__FILE__) + '/spec_helper'
2
2
 
3
3
  describe Highrise::Base, "class configuration" do
4
4
  before(:each) do
@@ -7,26 +7,21 @@ describe Highrise::Base, "class configuration" do
7
7
  end
8
8
 
9
9
  it "should tell us if caching is active" do
10
- @connection.cache_store = :memory_store
10
+ @connection.cache_store = ActiveSupport::Cache.lookup_store :memory_store
11
11
  @connection.is_caching?.should == true
12
12
  end
13
13
 
14
14
  it "should tell us if caching is not active" do
15
- @connection.cache_store = :none
15
+ @connection.cache_store = nil
16
16
  @connection.is_caching?.should == false
17
17
  end
18
-
19
- it "should use the Rails stack default cache" do
20
- @connection.cache_store = :rails
21
- @connection.is_caching?.should == true
22
- end
23
18
  end
24
19
 
25
20
  describe Highrise::Base do
26
21
  before(:all) do
27
22
  Highrise::Base.site = 'http://example.com.i:3000'
28
23
  @connection = Highrise::Base.connection
29
- @connection.cache_store = :memory_store
24
+ @connection.cache_store = ActiveSupport::Cache.lookup_store :memory_store
30
25
  end
31
26
 
32
27
  after(:all) do
data/uninstall.rb ADDED
@@ -0,0 +1 @@
1
+ # Uninstall hook code here
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kmayer-highrise
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.2
4
+ version: 0.11.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - "Marcos Tapaj\xC3\xB3s"
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2009-05-05 00:00:00 -07:00
13
+ date: 2009-05-20 00:00:00 -07:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -53,7 +53,7 @@ dependencies:
53
53
  - !ruby/object:Gem::Version
54
54
  version: "0"
55
55
  version:
56
- description: "Based on the original API module from DHH, http://developer.37signals.com/highrise/, this gem is a cleaned up, tested version of the same. Contributors have added support for tags which are not supported by the API directly Configure by adding the following: require 'highrise' Highrise::Base.site = 'http://your_site.highrisehq.com/' Highrise::Base.user = 'your_api_auth_token'q Highrise::Base.connection.cache_store = :memory_store # for caching"
56
+ description: "Based on the original API module from DHH, http://developer.37signals.com/highrise/, this gem is a cleaned up, tested version of the same. Contributors have added support for tags which are not supported by the API directly Configure by adding the following: require 'highrise' Highrise::Base.site = 'http://your_site.highrisehq.com/' Highrise::Base.user = 'your_api_auth_token'"
57
57
  email: kmayer@bitwrangler.com
58
58
  executables: []
59
59
 
@@ -62,11 +62,17 @@ extensions: []
62
62
  extra_rdoc_files:
63
63
  - README.mkdn
64
64
  files:
65
+ - .gitignore
66
+ - CHANGELOG
67
+ - MIT-LICENSE
65
68
  - README.mkdn
66
69
  - Rakefile
67
70
  - VERSION.yml
71
+ - autotest/discover.rb
68
72
  - examples/extending.rb
69
73
  - examples/sample.rb
74
+ - highrise.gemspec
75
+ - install.rb
70
76
  - lib/cachable.rb
71
77
  - lib/highrise.rb
72
78
  - lib/highrise/base.rb
@@ -86,9 +92,8 @@ files:
86
92
  - lib/highrise/taggable.rb
87
93
  - lib/highrise/task.rb
88
94
  - lib/highrise/user.rb
89
- - lib/highrise/version.rb
95
+ - spec/cachable_spec.rb
90
96
  - spec/highrise/base_spec.rb
91
- - spec/highrise/cachable_spec.rb
92
97
  - spec/highrise/comment_spec.rb
93
98
  - spec/highrise/companies/16883216.html
94
99
  - spec/highrise/company_spec.rb
@@ -106,9 +111,9 @@ files:
106
111
  - spec/highrise/tag_spec.rb
107
112
  - spec/highrise/task_spec.rb
108
113
  - spec/highrise/user_spec.rb
109
- - spec/highrise/version_spec.rb
110
114
  - spec/spec.opts
111
115
  - spec/spec_helper.rb
116
+ - uninstall.rb
112
117
  has_rdoc: false
113
118
  homepage: http://github.com/kmayer/highrise
114
119
  post_install_message:
@@ -136,8 +141,8 @@ signing_key:
136
141
  specification_version: 3
137
142
  summary: Ruby wrapper around Highrise API
138
143
  test_files:
144
+ - spec/cachable_spec.rb
139
145
  - spec/highrise/base_spec.rb
140
- - spec/highrise/cachable_spec.rb
141
146
  - spec/highrise/comment_spec.rb
142
147
  - spec/highrise/company_spec.rb
143
148
  - spec/highrise/curlhelper_spec.rb
@@ -153,7 +158,6 @@ test_files:
153
158
  - spec/highrise/tag_spec.rb
154
159
  - spec/highrise/task_spec.rb
155
160
  - spec/highrise/user_spec.rb
156
- - spec/highrise/version_spec.rb
157
161
  - spec/spec_helper.rb
158
162
  - examples/extending.rb
159
163
  - examples/sample.rb
@@ -1,10 +0,0 @@
1
- module Highrise
2
- module VERSION #:nodoc:
3
- version = YAML::load_file(File.expand_path(File.dirname(__FILE__)+"/../../VERSION.yml"))
4
- MAJOR = version[:major]
5
- MINOR = version[:minor]
6
- TINY = version[:patch]
7
-
8
- STRING = [MAJOR, MINOR, TINY].join('.')
9
- end
10
- end
@@ -1,19 +0,0 @@
1
- require File.dirname(__FILE__) + '/../spec_helper'
2
-
3
- describe Highrise::VERSION do
4
- it "should return a version string" do
5
- Highrise::VERSION::STRING.should =~ /\d+\.\d+\.\d+/
6
- end
7
-
8
- it "should return a MAJOR version" do
9
- Highrise::VERSION::MAJOR.class.should be(0.class)
10
- end
11
-
12
- it "should return a MINOR version" do
13
- Highrise::VERSION::MINOR.class.should be(0.class)
14
- end
15
-
16
- it "should return a TINY version" do
17
- Highrise::VERSION::TINY.class.should be(0.class)
18
- end
19
- end