collins_client 0.2.7 → 0.2.9

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -14,7 +14,7 @@ First install rvm
14
14
 
15
15
  Install the collins gem and use it
16
16
 
17
- $ gem install --source=http://repo.tumblr.net:9929/ collins_client
17
+ $ gem install collins_client
18
18
 
19
19
  Remember, if you don't have 1.9.3 set as the default, before you use collins you'll need to do `rvm use 1.9.3`.
20
20
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.7
1
+ 0.2.9
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "collins_client"
8
- s.version = "0.2.7"
8
+ s.version = "0.2.9"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Blake Matheny"]
12
- s.date = "2012-10-31"
12
+ s.date = "2012-11-19"
13
13
  s.description = "Provides ruby support for interacting with the Collins API"
14
14
  s.email = "bmatheny@tumblr.com"
15
15
  s.extra_rdoc_files = [
@@ -55,7 +55,7 @@ Gem::Specification.new do |s|
55
55
  s.homepage = "https://github.com/tumblr/collins/tree/master/support/ruby/collins-client"
56
56
  s.licenses = ["APL 2.0"]
57
57
  s.require_paths = ["lib"]
58
- s.rubygems_version = "1.8.24"
58
+ s.rubygems_version = "1.8.23"
59
59
  s.summary = "Client library for Collins API"
60
60
 
61
61
  if s.respond_to? :specification_version then
@@ -81,7 +81,7 @@ module Collins; module Api
81
81
  def find options = {}
82
82
  solrquery = options.delete(:query)
83
83
  if solrquery != nil then
84
- return search solrquery, options[:size], options.sort
84
+ return search solrquery, (options[:size] || 50), (options[:sort] || "ASC"), "tag", options
85
85
  end
86
86
  use_api_version "1.1"
87
87
  query = asset_hash_to_find_query options
@@ -101,7 +101,7 @@ module Collins; module Api
101
101
  end
102
102
  end
103
103
 
104
- def search query, size = 50, sort = "ASC", sort_field = "tag"
104
+ def search query, size = 50, sort = "ASC", sort_field = "tag", options = {}
105
105
  use_api_version "1.2"
106
106
  if query.start_with? "\"" and query.end_with? "\"" then
107
107
  query = query[1..-2]
@@ -112,7 +112,17 @@ module Collins; module Api
112
112
  :sort => sort,
113
113
  :sort_field => sort_field
114
114
  }
115
- logger.debug("perform asset search using query #{query}")
115
+ query = asset_hash_to_find_query options.merge(params)
116
+ params = query.to_a.map do |(key,val)|
117
+ if val.is_a?(Array) then
118
+ val.map{|v| "#{key}=#{asset_escape_attribute(v)}"}.join("&")
119
+ elsif val.nil? then
120
+ ""
121
+ else
122
+ "#{key}=#{asset_escape_attribute(val)}"
123
+ end
124
+ end.reject{|s| s.empty?}
125
+ logger.debug("perform asset search using query #{query} - #{params.inspect}")
116
126
  http_get("/api/assets",params) do |response|
117
127
  parse_response response, :expects => 200, :as => :paginated do |json|
118
128
  json.map { |j| Collins::Asset.from_json(j) }
@@ -106,6 +106,21 @@ module Collins; module Api
106
106
  end
107
107
  end
108
108
 
109
+ # new solr interface
110
+ def search_logs options = {}
111
+ parameters = get_page_options(options).merge(
112
+ :query => get_option(:query, options, nil)
113
+ )
114
+ parameters = select_non_empty_parameters parameters
115
+ logger.debug("Fetching logs for all assets with parameters #{parameters.inspect}")
116
+ http_get("/api/assets/logs/search", parameters) do |response|
117
+ parse_response response, :as => :paginated, :default => [], :raise => strict?, :expects => 200 do |json|
118
+ json.map{|j| OpenStruct.new(symbolize_hash(j))}
119
+ end
120
+ end
121
+
122
+ end
123
+
109
124
  # Same as logs but for all assets
110
125
  # @see #logs
111
126
  def all_logs options = {}
@@ -25,7 +25,8 @@ module Collins
25
25
  # are attributes of the asset (such as hostname), and which are nort (such as sort or page).
26
26
  # @return [Array,<String>] Non-date related query parameters that are 'reserved'
27
27
  GENERAL_PARAMS = [
28
- "details", "tag", "type", "status", "page", "size", "sort", "state", "operation", "remoteLookup"
28
+ "details", "tag", "type", "status", "page", "size", "sort", "state", "operation", "remoteLookup", "query",
29
+ "sort_field"
29
30
  ]
30
31
  # @return [Array<String>] DATE_PARAMS plus GENERAL_PARAMS
31
32
  ALL_PARAMS = DATE_PARAMS + GENERAL_PARAMS
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: collins_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.7
4
+ version: 0.2.9
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-10-31 00:00:00.000000000 Z
12
+ date: 2012-11-19 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: httparty
@@ -84,7 +84,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
84
84
  version: '0'
85
85
  segments:
86
86
  - 0
87
- hash: -1509418886285766907
87
+ hash: -117054897362145987
88
88
  required_rubygems_version: !ruby/object:Gem::Requirement
89
89
  none: false
90
90
  requirements:
@@ -93,7 +93,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
93
93
  version: '0'
94
94
  requirements: []
95
95
  rubyforge_project:
96
- rubygems_version: 1.8.24
96
+ rubygems_version: 1.8.23
97
97
  signing_key:
98
98
  specification_version: 3
99
99
  summary: Client library for Collins API