tigre-client 0.2.9 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- tigre-client (0.2.8)
4
+ tigre-client (0.2.9)
5
5
  faraday (~> 0.6.0)
6
6
 
7
7
  GEM
@@ -0,0 +1,33 @@
1
+ module Tigre
2
+ module CommonParams
3
+
4
+ def common_params(params)
5
+ @page = params[:page] ||= 0
6
+ @per = params[:per] ||= 50
7
+
8
+ if params[:after]
9
+ if params[:after].is_a?(Time)
10
+ @after = params[:after].to_i
11
+ else
12
+ @after = params[:after]
13
+ end
14
+ end
15
+ if params[:before]
16
+ if params[:before].is_a?(Time)
17
+ @before = params[:before].to_i
18
+ else
19
+ @before = params[:before]
20
+ end
21
+ end
22
+ end
23
+
24
+ def package_array_list(list)
25
+ if list.is_a?(Array)
26
+ list.map {|m| m.strip}.join(',')
27
+ else
28
+ list.split(',').map {|m| m.strip}.join(',')
29
+ end
30
+ end
31
+
32
+ end
33
+ end
@@ -1,6 +1,8 @@
1
1
  module Tigre
2
2
  class Sample
3
-
3
+
4
+ extend Tigre::CommonParams
5
+
4
6
  # required params
5
7
  # file_location => String path to the file
6
8
  # md5 => String
@@ -14,13 +16,7 @@ module Tigre
14
16
  raise ArguementError, "File_location or md5 parameter cannot be empty"
15
17
  end
16
18
 
17
- if options[:tags]
18
- if options[:tags].is_a?(Array)
19
- options[:tags] = options[:tags].map {|t| t.strip}.join(',')
20
- else
21
- options[:tags] = options[:tags].split(',').map {|t| t.strip}.join(',')
22
- end
23
- end
19
+ options[:tags] = package_array_list(options[:tags]) if options[:tags]
24
20
 
25
21
  post_data = {:file => File.new(file_location), :md5 => md5}
26
22
  Tigre.post_file_connection('/samples', post_data.merge(options))
@@ -31,9 +27,8 @@ module Tigre
31
27
  # :page => Integer, :default => 0
32
28
  # :per => Integer, :default => 50
33
29
  def self.index(options={})
34
- options[:page] ||= 0
35
- options[:per] ||= 50
36
- Tigre.get_connection("/samples?page=#{options[:page]}&per=#{options[:per]}")
30
+ common_params(options)
31
+ Tigre.get_connection("/samples?page=#{@page}&per=#{@per}")
37
32
  end
38
33
 
39
34
  # required params
@@ -44,22 +39,44 @@ module Tigre
44
39
  Tigre.put_connection("/samples/#{md5}", update_data)
45
40
  end
46
41
 
42
+ def self.get(params_hash)
43
+ unless params_hash[:digest] && params_hash[:value]
44
+ raise 'Missing parameter :digest or :value'
45
+ end
46
+
47
+ Tigre.get_connection("/samples/#{params_hash[:digest]}/value/#{params_hash[:value]}")
48
+ end
49
+
50
+ ##
51
+ # DEPRECATED => use Tigre::Sample.get(:digest => 'md5', :value => 'your-md5')
52
+ #
47
53
  # required params
48
54
  # md5 => String
49
55
  def self.md5(md5)
50
- Tigre.get_connection("/samples/md5/#{md5}")
56
+ Tigre.logger.warn "** DEPRECATED ** Use Tigre::Sample.get(:digest => 'md5', :value => 'your-md5')" if Tigre.logger
57
+ self.get(:digest => 'md5', :value => md5)
51
58
  end
52
59
 
60
+ ##
61
+ # DEPRECATED => use Tigre::Sample.get(:digest => 'sha1', :value => 'your-sha1')
62
+ #
53
63
  # required params
54
64
  # sha1 => String
55
65
  def self.sha1(sha1)
56
- Tigre.get_connection("/samples/sha1/#{sha1}")
66
+ Tigre.logger.warn "** DEPRECATED ** Use Tigre::Sample.get(:digest => 'sha1', :value => 'your-sha1')" if Tigre.logger
67
+ params_hash = {:digest => 'sha1', :value => sha1}
68
+ self.get(params_hash)
57
69
  end
58
70
 
71
+ ##
72
+ # DEPRECATED => use Tigre::Sample.get(:digest => 'sha256', :value => 'your-sha256')
73
+ #
59
74
  # required params
60
75
  # sha256 => String
61
76
  def self.sha256(sha256)
62
- Tigre.get_connection("/samples/sha256/#{sha256}")
77
+ Tigre.logger.warn "** DEPRECATED ** Use Tigre::Sample.get(:digest => 'sha256', :value => 'your-sha256')" if Tigre.logger
78
+ params_hash = {:digest => 'sha256', :value => sha256}
79
+ self.get(params_hash)
63
80
  end
64
81
 
65
82
  # required params
@@ -72,18 +89,12 @@ module Tigre
72
89
  # :per => Integer, :default => 50
73
90
  def self.tagged_with(tags, options={})
74
91
  if tags == ''
75
- raise ArguementError, "Missing tags parameter"
76
- end
77
-
78
- if tags.is_a?(Array)
79
- tags = tags.map {|t| t.strip}.join(',')
80
- else
81
- tags = tags.split(',').map {|t| t.strip}.join(',')
92
+ raise "Missing tags parameter"
82
93
  end
83
-
84
- options[:page] ||= 0
85
- options[:per] ||= 50
86
- Tigre.get_connection("/samples/tagged_with?tags=#{tags}&page=#{options[:page]}&per=#{options[:per]}")
94
+
95
+ common_params(options)
96
+ tags = package_array_list(tags)
97
+ Tigre.get_connection("/samples/tagged_with?tags=#{tags}&page=#{@page}&per=#{@per}")
87
98
  end
88
99
 
89
100
  # required
@@ -96,13 +107,7 @@ module Tigre
96
107
  raise ArguementError, "Missing tags parameter"
97
108
  end
98
109
 
99
- if tags.is_a?(Array)
100
- tags = tags.map {|t| t.strip}.join(',')
101
- else
102
- tags = tags.split(',').map {|t| t.strip}.join(',')
103
- end
104
- update_data = {"tag_list" => tags}
105
-
110
+ update_data = {"tag_list" => package_array_list(tags)}
106
111
  Tigre.put_connection("/samples/#{md5}/add_tags", update_data)
107
112
  end
108
113
 
@@ -116,15 +121,57 @@ module Tigre
116
121
  unless hash[:digest] && hash[:value] && hash[:tag_list]
117
122
  raise 'Missing parameter :digest or :value or :tag_list'
118
123
  end
124
+
125
+ update_data = {"tag_list" => package_array_list(hash[:tag_list])}
126
+ Tigre.put_connection("/samples/#{hash[:digest]}/value/#{hash[:value]}/remove_tags", update_data)
127
+ end
128
+
129
+ # required params
130
+ # tags => String => I.E 'foo'
131
+ # tags => String (comma seperated) => I.E 'foo,bar,baz'
132
+ # tags => Array => ['foo', 'bar', 'baz']
133
+ # optional params
134
+ # options => Hash
135
+ # :page => Integer, :default => 0
136
+ # :per => Integer, :default => 50
137
+ def self.has_mime_type(mime_types, options={})
138
+ if mime_types == ''
139
+ raise "Missing tags parameter"
140
+ end
119
141
 
120
- if hash[:tag_list].is_a?(Array)
121
- hash[:tag_list] = hash[:tag_list].map {|t| t.strip}.join(',')
122
- else
123
- hash[:tag_list] = hash[:tag_list].split(',').map {|t| t.strip}.join(',')
142
+ common_params(options)
143
+ mime_types = package_array_list(mime_types)
144
+ Tigre.get_connection("/samples/has_mime_type?mime_types=#{mime_types}&page=#{@page}&per=#{@per}")
145
+ end
146
+
147
+ # required params
148
+ # hash => Hash
149
+ # :digest => String, The digest type
150
+ # :value => String, The digest value
151
+ # :mime_type_list => String (comma seperated) => I.E 'foo,bar,baz'
152
+ # :mime_type_list => Array => ['foo', 'bar', 'baz']
153
+ def self.add_mime_type(hash)
154
+ unless hash[:digest] && hash[:value] && hash[:mime_type_list]
155
+ raise 'Missing parameter :digest or :value or :mime_type_list'
124
156
  end
125
157
 
126
- update_data = {"tag_list" => hash[:tag_list]}
127
- Tigre.put_connection("/samples/#{hash[:digest]}/value/#{hash[:value]}/remove_tags", update_data)
158
+ update_data = {"mime_types" => package_array_list(hash[:mime_type_list])}
159
+ Tigre.put_connection("/samples/#{hash[:digest]}/value/#{hash[:value]}/add_mime_types", update_data)
160
+ end
161
+
162
+ # required params
163
+ # hash => Hash
164
+ # :digest => String, The digest type
165
+ # :value => String, The digest value
166
+ # :mime_type_list => String (comma seperated) => I.E 'foo,bar,baz'
167
+ # :mime_type_list => Array => ['foo', 'bar', 'baz']
168
+ def self.remove_mime_type(hash)
169
+ unless hash[:digest] && hash[:value] && hash[:mime_type_list]
170
+ raise 'Missing parameter :digest or :value or :mime_type_list'
171
+ end
172
+
173
+ update_data = {"mime_types" => package_array_list(hash[:mime_type_list])}
174
+ Tigre.put_connection("/samples/#{hash[:digest]}/value/#{hash[:value]}/remove_mime_types", update_data)
128
175
  end
129
176
 
130
177
  end
@@ -1,25 +1,7 @@
1
1
  module Tigre
2
2
  class Url
3
-
4
- def self.common_params(params)
5
- @page = params[:page] ||= 0
6
- @per = params[:per] ||= 50
7
-
8
- if params[:after]
9
- if params[:after].is_a?(Time)
10
- @after = params[:after].to_i
11
- else
12
- @after = params[:after]
13
- end
14
- end
15
- if params[:before]
16
- if params[:before].is_a?(Time)
17
- @before = params[:before].to_i
18
- else
19
- @before = params[:before]
20
- end
21
- end
22
- end
3
+
4
+ extend Tigre::CommonParams
23
5
 
24
6
  # required params
25
7
  # url => String
@@ -28,12 +10,15 @@ module Tigre
28
10
  # optional params
29
11
  # options => Hash
30
12
  # :shareable => Boolean, :default => false
13
+ # :tags => String => I.E 'foo'
14
+ # :tags => String (comma seperated) => I.E 'foo,bar,baz'
15
+ # :tags => Array => ['foo', 'bar', 'baz']
31
16
  def self.post(url, options={})
32
17
  if url == ''
33
- raise ArguementError, "Missing url parameter"
18
+ raise "Missing url parameter"
34
19
  end
35
20
  unless options[:source_name]
36
- raise ArguementError, "Missing source_name parameter"
21
+ raise "Missing source_name parameter"
37
22
  end
38
23
 
39
24
  # prepare post data
@@ -43,14 +28,8 @@ module Tigre
43
28
  "url[shareable]" => options[:shareable],
44
29
  }
45
30
 
46
- if options[:tags]
47
- if options[:tags].is_a?(Array)
48
- post_data["url[tags]"] = options[:tags].map {|t| t.strip}.join(',')
49
- else
50
- post_data["url[tags]"] = options[:tags].split(',').map {|t| t.strip}.join(',')
51
- end
52
- end
53
-
31
+ post_data["url[tags]"] = package_array_list(options[:tags]) if options[:tags]
32
+
54
33
  Tigre.post_connection('/urls', post_data)
55
34
  end
56
35
 
@@ -59,7 +38,7 @@ module Tigre
59
38
  # params_hash => Hash
60
39
  def self.update(sha256, params_hash)
61
40
  if sha256 == '' || params_hash.empty?
62
- raise ArguementError, "Missing url parameter or params_hash is empty"
41
+ raise "Missing url parameter or params_hash is empty"
63
42
  end
64
43
 
65
44
  update_data = params_hash.map { |k, v| {"url[#{k.to_s}]" => v.to_s} }
@@ -70,18 +49,13 @@ module Tigre
70
49
  # sha256 => String
71
50
  # tags => String => I.E 'foo'
72
51
  # tags => String (comma seperated) => I.E 'foo,bar,baz'
73
- # tags => Array => ['foo', 'bar', 'baz']
52
+ # tags => Array => ['foo', 'bar', 'baz']
74
53
  def self.add_tags(sha256, tags)
75
54
  if sha256 == '' || tags == ''
76
55
  raise ArguementError, "Missing tags parameter"
77
56
  end
78
-
79
- if tags.is_a?(Array)
80
- tags = tags.map {|t| t.strip}.join(',')
81
- else
82
- tags = tags.split(',').map {|t| t.strip}.join(',')
83
- end
84
- update_data = {"tag_list" => tags}
57
+
58
+ update_data = {"tag_list" => package_array_list(tags)}
85
59
 
86
60
  Tigre.put_connection("/urls/#{sha256}/add_tags", update_data)
87
61
  end
@@ -133,7 +107,7 @@ module Tigre
133
107
  raise ArguementError, "Missing proper parameters (:start_date or :end_date required)"
134
108
  end
135
109
 
136
- self.common_params(options)
110
+ common_params(options)
137
111
 
138
112
  Tigre.get_connection("/urls/daterange?after=#{@after}&before=#{@before}&page=#{@page}&per=#{@per}")
139
113
  end
@@ -151,16 +125,17 @@ module Tigre
151
125
  raise ArguementError, "Missing domain parameter"
152
126
  end
153
127
 
154
- if options[:after] && options[:after].is_a?(Time)
155
- options[:after] = options[:after].to_i
156
- end
157
- if options[:before] && options[:before].is_a?(Time)
158
- options[:before] = options[:before].to_i
159
- end
160
-
161
- options[:page] ||= 0
162
- options[:per] ||= 50
163
- Tigre.get_connection("/urls/domains?domain=#{domain}&after=#{options[:after]}&before=#{options[:before]}&page=#{options[:page]}&per=#{options[:per]}")
128
+ # if options[:after] && options[:after].is_a?(Time)
129
+ # options[:after] = options[:after].to_i
130
+ # end
131
+ # if options[:before] && options[:before].is_a?(Time)
132
+ # options[:before] = options[:before].to_i
133
+ # end
134
+ #
135
+ # options[:page] ||= 0
136
+ # options[:per] ||= 50
137
+ common_params(options)
138
+ Tigre.get_connection("/urls/domains?domain=#{domain}&after=#{@after}&before=#{@before}&page=#{@page}&per=#{@per}")
164
139
  end
165
140
 
166
141
  # required params
@@ -178,14 +153,8 @@ module Tigre
178
153
  raise "Missing tags parameter"
179
154
  end
180
155
 
181
- if tags.is_a?(Array)
182
- tags = tags.map {|t| t.strip}.join(',')
183
- else
184
- tags = tags.split(',').map {|t| t.strip}.join(',')
185
- end
186
-
187
- self.common_params(options)
188
-
156
+ tags = package_array_list(tags)
157
+ common_params(options)
189
158
  Tigre.get_connection("/urls/tagged_with?tags=#{tags}&after=#{@after}&before=#{@before}&page=#{@page}&per=#{@per}")
190
159
  end
191
160
 
@@ -200,13 +169,7 @@ module Tigre
200
169
  raise 'Missing parameter :digest or :value or :tag_list'
201
170
  end
202
171
 
203
- if hash[:tag_list].is_a?(Array)
204
- hash[:tag_list] = hash[:tag_list].map {|t| t.strip}.join(',')
205
- else
206
- hash[:tag_list] = hash[:tag_list].split(',').map {|t| t.strip}.join(',')
207
- end
208
-
209
- update_data = {"tag_list" => hash[:tag_list]}
172
+ update_data = {"tag_list" => package_array_list(hash[:tag_list])}
210
173
  Tigre.put_connection("/urls/#{hash[:digest]}/value/#{hash[:value]}/remove_tags", update_data)
211
174
  end
212
175
 
@@ -1,5 +1,5 @@
1
1
  module Tigre
2
2
  module Client
3
- VERSION = "0.2.9"
3
+ VERSION = "0.3.0"
4
4
  end
5
5
  end
data/lib/tigre-client.rb CHANGED
@@ -2,6 +2,7 @@ require 'faraday'
2
2
 
3
3
  require 'tigre-client/multipart_with_file'
4
4
 
5
+ require 'tigre-client/common_params'
5
6
  require 'tigre-client/occurrence'
6
7
  require 'tigre-client/sample'
7
8
  require 'tigre-client/url'
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: tigre-client
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.2.9
5
+ version: 0.3.0
6
6
  platform: ruby
7
7
  authors:
8
8
  - Marcio Castilho
@@ -11,7 +11,7 @@ autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
13
 
14
- date: 2011-04-20 00:00:00 -04:00
14
+ date: 2011-04-25 00:00:00 -04:00
15
15
  default_executable:
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
@@ -53,6 +53,7 @@ files:
53
53
  - Gemfile.lock
54
54
  - Rakefile
55
55
  - lib/tigre-client.rb
56
+ - lib/tigre-client/common_params.rb
56
57
  - lib/tigre-client/multipart_with_file.rb
57
58
  - lib/tigre-client/occurrence.rb
58
59
  - lib/tigre-client/sample.rb