slapshot 0.0.12 → 0.0.13
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.
- checksums.yaml +7 -0
- data/bin/slapshot +44 -4
- data/lib/slapshot/main.rb +71 -16
- data/lib/slapshot/version.rb +1 -1
- metadata +15 -35
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 6b25d113ae7b0db720fc5052ad3b4e99df9bce14
|
4
|
+
data.tar.gz: 42df251af565c0a802326819b336474b0aba6286
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: eec0f68106e4805c6d7d3b1d80a853f55d33d2a58919e08439126e9feb91f9eccf087b516febae39007acec255b33b435f0cdf3c67b70f0a1e3220b923ac540a
|
7
|
+
data.tar.gz: 8ba924b8fb78047dc31c5a387b6105dba538e111798ee9a44c57827ca747a7b515640d5bd0aa0dddb4b37363e0a4de2b6e0f034583774b88943c2d62c4fd90c3
|
data/bin/slapshot
CHANGED
@@ -26,6 +26,14 @@ command :search do |c|
|
|
26
26
|
c.desc 'Return all fields of the results, including code snippets'
|
27
27
|
c.default_value false
|
28
28
|
c.switch [:f, :full]
|
29
|
+
|
30
|
+
c.desc 'Return results in GraphML'
|
31
|
+
c.default_value false
|
32
|
+
c.switch [:g, :graph]
|
33
|
+
|
34
|
+
c.desc 'Return results in JSON'
|
35
|
+
c.default_value false
|
36
|
+
c.switch [:j, :json]
|
29
37
|
|
30
38
|
c.desc 'Export the results to an Excel file with the given name'
|
31
39
|
c.flag [:x, :xls]
|
@@ -45,9 +53,15 @@ command :search do |c|
|
|
45
53
|
count = 5000
|
46
54
|
end
|
47
55
|
|
48
|
-
r = @sc.search args[0], count, options[:f]
|
56
|
+
r = @sc.search args[0], count, options[:f], options[:g]
|
49
57
|
|
50
|
-
if options[:
|
58
|
+
if options[:g]
|
59
|
+
puts
|
60
|
+
puts r
|
61
|
+
elsif options[:j]
|
62
|
+
puts
|
63
|
+
puts "#{r}"
|
64
|
+
elsif options[:x]
|
51
65
|
@sc.to_xls r, options[:x]
|
52
66
|
puts "Exported search results to #{options[:x]}"
|
53
67
|
else
|
@@ -57,6 +71,33 @@ command :search do |c|
|
|
57
71
|
end
|
58
72
|
end
|
59
73
|
|
74
|
+
desc 'Try out a custom parser'
|
75
|
+
arg_name 'pass in a solrQuery and a custom parser file'
|
76
|
+
command :try do |c|
|
77
|
+
|
78
|
+
c.desc 'Return results in HTML'
|
79
|
+
c.default_value false
|
80
|
+
c.switch [:h, :html]
|
81
|
+
|
82
|
+
c.desc 'The maximum number of results the search should return'
|
83
|
+
c.default_value 20
|
84
|
+
c.flag [:c, :count]
|
85
|
+
|
86
|
+
c.action do |global_options,options,args|
|
87
|
+
|
88
|
+
if args.length != 2
|
89
|
+
raise 'The search command takes exactly 2 arguments: a solr query and a parser file'
|
90
|
+
end
|
91
|
+
|
92
|
+
file = File.new(args[1], 'r');
|
93
|
+
|
94
|
+
r = @sc.try args[0], file, options[:c], options[:h]
|
95
|
+
|
96
|
+
puts
|
97
|
+
puts "#{r}"
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
60
101
|
desc 'Login to the API and generate a token'
|
61
102
|
arg_name 'Pass in the username and password to login and generate a token'
|
62
103
|
|
@@ -138,8 +179,7 @@ post do |global,command,options,args|
|
|
138
179
|
end
|
139
180
|
|
140
181
|
on_error do |exception|
|
141
|
-
#
|
142
|
-
# return false to skip default error handling
|
182
|
+
#puts exception.http_body
|
143
183
|
true
|
144
184
|
end
|
145
185
|
|
data/lib/slapshot/main.rb
CHANGED
@@ -49,13 +49,14 @@ end
|
|
49
49
|
class Appshot
|
50
50
|
|
51
51
|
def initialize(url, token, instance)
|
52
|
-
@
|
53
|
-
@
|
52
|
+
@headers = {'Appshot-AuthToken' => token, 'Appshot-Instance' => instance};
|
53
|
+
@url = url
|
54
|
+
@api = RestClient::Resource.new url, :timeout => -1, :headers => @headers
|
54
55
|
end
|
55
56
|
|
56
|
-
def search(query, count, full)
|
57
|
+
def search(query, count, full, graph)
|
57
58
|
|
58
|
-
response = @api["service/api/search"].get :params => { :i => @instance, :q => query, :c => count, :f => full }, :content_type => :json, :accept => :json
|
59
|
+
response = @api["service/api/search"].get :params => { :i => @instance, :q => query, :c => count, :f => full ,:g => graph}, :content_type => :json, :accept => :json
|
59
60
|
|
60
61
|
json_response = JSON.parse(response.body)
|
61
62
|
|
@@ -64,11 +65,55 @@ class Appshot
|
|
64
65
|
end
|
65
66
|
|
66
67
|
puts "Found #{json_response['count']} total results, retrieving #{count} results in #{json_response['search_time']} ms."
|
67
|
-
|
68
|
+
|
69
|
+
if graph
|
70
|
+
json_response['graph']
|
71
|
+
else
|
72
|
+
json_response['docs']
|
73
|
+
end
|
74
|
+
|
75
|
+
end
|
76
|
+
|
77
|
+
def try(solrQuery, parserFile, count, html)
|
78
|
+
|
79
|
+
=begin
|
80
|
+
response = RestClient.post "#{@url}/service/customParser/test", {:solrQuery => solrQuery, :parserFile => parserFile, :c => count, :h => html }, @headers
|
81
|
+
|
82
|
+
JSON.parse(response.body)
|
83
|
+
|
84
|
+
if (Integer(json_response['count']) < Integer(count))
|
85
|
+
count = json_response['count']
|
86
|
+
end
|
87
|
+
|
88
|
+
puts "Found #{json_response['count']} total results, retrieving #{count} results in #{json_response['search_time']} ms."
|
89
|
+
|
90
|
+
if html
|
91
|
+
json_response['html']
|
92
|
+
else
|
93
|
+
json_response['docs']
|
94
|
+
end
|
95
|
+
=end
|
96
|
+
|
97
|
+
if html
|
98
|
+
response = RestClient.post "#{@url}/service/customParser/testHtml", {:solrQuery => solrQuery, :parserFile => parserFile}, @headers
|
99
|
+
else
|
100
|
+
response = RestClient.post "#{@url}/service/customParser/test", {:solrQuery => solrQuery, :parserFile => parserFile}, @headers
|
101
|
+
JSON.parse(response.body)
|
102
|
+
end
|
68
103
|
|
69
104
|
end
|
70
105
|
|
71
106
|
def to_table(result)
|
107
|
+
|
108
|
+
#remove all of the newlines
|
109
|
+
result.each do |r|
|
110
|
+
r.each_pair do |k,v|
|
111
|
+
if v.instance_of?(String)
|
112
|
+
r[k] = v.gsub("\n",' ')
|
113
|
+
end
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
72
117
|
Formatador.display_table(result)
|
73
118
|
end
|
74
119
|
|
@@ -76,20 +121,30 @@ class Appshot
|
|
76
121
|
|
77
122
|
book = Spreadsheet::Workbook.new
|
78
123
|
sheet1 = book.create_worksheet :name => 'Search Results'
|
124
|
+
sheet1.row(0).default_format = Spreadsheet::Format.new :weight => :bold, :align => :center
|
79
125
|
|
80
|
-
columns = ['name'
|
126
|
+
columns = ['name']
|
127
|
+
for obj in result
|
128
|
+
for key in obj.keys
|
129
|
+
columns << key
|
130
|
+
end
|
131
|
+
end
|
132
|
+
|
133
|
+
columns.uniq!
|
81
134
|
|
82
|
-
|
135
|
+
rownum = 0
|
136
|
+
for column in columns
|
137
|
+
sheet1.row(rownum).push column
|
138
|
+
end
|
139
|
+
|
140
|
+
for row in result
|
141
|
+
rownum += 1
|
83
142
|
for column in columns
|
84
|
-
|
85
|
-
end
|
86
|
-
for row in result
|
87
|
-
rownum += 1
|
88
|
-
for column in columns
|
89
|
-
sheet1.row(rownum).push row[column].nil? ? 'N/A' : row[column]
|
90
|
-
end
|
143
|
+
sheet1.row(rownum).push row[column].nil? ? 'N/A' : row[column]
|
91
144
|
end
|
92
|
-
|
145
|
+
end
|
146
|
+
|
147
|
+
book.write(out)
|
148
|
+
|
93
149
|
end
|
94
|
-
|
95
150
|
end
|
data/lib/slapshot/version.rb
CHANGED
metadata
CHANGED
@@ -1,68 +1,60 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: slapshot
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.0.13
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Mik Lernout
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2013-
|
11
|
+
date: 2013-04-10 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: rake
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - '>='
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: '0'
|
22
20
|
type: :development
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- -
|
24
|
+
- - '>='
|
28
25
|
- !ruby/object:Gem::Version
|
29
26
|
version: '0'
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: rdoc
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- -
|
31
|
+
- - '>='
|
36
32
|
- !ruby/object:Gem::Version
|
37
33
|
version: '0'
|
38
34
|
type: :development
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
|
-
- -
|
38
|
+
- - '>='
|
44
39
|
- !ruby/object:Gem::Version
|
45
40
|
version: '0'
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: aruba
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
|
-
- -
|
45
|
+
- - '>='
|
52
46
|
- !ruby/object:Gem::Version
|
53
47
|
version: '0'
|
54
48
|
type: :development
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
|
-
- -
|
52
|
+
- - '>='
|
60
53
|
- !ruby/object:Gem::Version
|
61
54
|
version: '0'
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: gli
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
59
|
- - '='
|
68
60
|
- !ruby/object:Gem::Version
|
@@ -70,7 +62,6 @@ dependencies:
|
|
70
62
|
type: :runtime
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
66
|
- - '='
|
76
67
|
- !ruby/object:Gem::Version
|
@@ -78,7 +69,6 @@ dependencies:
|
|
78
69
|
- !ruby/object:Gem::Dependency
|
79
70
|
name: rest-client
|
80
71
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
72
|
requirements:
|
83
73
|
- - '='
|
84
74
|
- !ruby/object:Gem::Version
|
@@ -86,7 +76,6 @@ dependencies:
|
|
86
76
|
type: :runtime
|
87
77
|
prerelease: false
|
88
78
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
79
|
requirements:
|
91
80
|
- - '='
|
92
81
|
- !ruby/object:Gem::Version
|
@@ -94,7 +83,6 @@ dependencies:
|
|
94
83
|
- !ruby/object:Gem::Dependency
|
95
84
|
name: json
|
96
85
|
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
86
|
requirements:
|
99
87
|
- - '='
|
100
88
|
- !ruby/object:Gem::Version
|
@@ -102,7 +90,6 @@ dependencies:
|
|
102
90
|
type: :runtime
|
103
91
|
prerelease: false
|
104
92
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
93
|
requirements:
|
107
94
|
- - '='
|
108
95
|
- !ruby/object:Gem::Version
|
@@ -110,7 +97,6 @@ dependencies:
|
|
110
97
|
- !ruby/object:Gem::Dependency
|
111
98
|
name: formatador
|
112
99
|
requirement: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
100
|
requirements:
|
115
101
|
- - '='
|
116
102
|
- !ruby/object:Gem::Version
|
@@ -118,7 +104,6 @@ dependencies:
|
|
118
104
|
type: :runtime
|
119
105
|
prerelease: false
|
120
106
|
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
107
|
requirements:
|
123
108
|
- - '='
|
124
109
|
- !ruby/object:Gem::Version
|
@@ -126,7 +111,6 @@ dependencies:
|
|
126
111
|
- !ruby/object:Gem::Dependency
|
127
112
|
name: spreadsheet
|
128
113
|
requirement: !ruby/object:Gem::Requirement
|
129
|
-
none: false
|
130
114
|
requirements:
|
131
115
|
- - '='
|
132
116
|
- !ruby/object:Gem::Version
|
@@ -134,15 +118,12 @@ dependencies:
|
|
134
118
|
type: :runtime
|
135
119
|
prerelease: false
|
136
120
|
version_requirements: !ruby/object:Gem::Requirement
|
137
|
-
none: false
|
138
121
|
requirements:
|
139
122
|
- - '='
|
140
123
|
- !ruby/object:Gem::Version
|
141
124
|
version: 0.7.4
|
142
|
-
description:
|
143
|
-
to search your Appshot instance, upload code and import/export informations.
|
144
|
-
|
145
|
-
'
|
125
|
+
description: |
|
126
|
+
This is a command line interface to the Appshot API. I allows you to search your Appshot instance, upload code and import/export informations.
|
146
127
|
email: Mik_Lernout@Dell.com
|
147
128
|
executables:
|
148
129
|
- slapshot
|
@@ -159,6 +140,7 @@ files:
|
|
159
140
|
- slapshot.rdoc
|
160
141
|
homepage: http://appshot.com
|
161
142
|
licenses: []
|
143
|
+
metadata: {}
|
162
144
|
post_install_message:
|
163
145
|
rdoc_options:
|
164
146
|
- --title
|
@@ -170,21 +152,19 @@ require_paths:
|
|
170
152
|
- lib
|
171
153
|
- lib
|
172
154
|
required_ruby_version: !ruby/object:Gem::Requirement
|
173
|
-
none: false
|
174
155
|
requirements:
|
175
|
-
- -
|
156
|
+
- - '>='
|
176
157
|
- !ruby/object:Gem::Version
|
177
158
|
version: 1.9.0
|
178
159
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
179
|
-
none: false
|
180
160
|
requirements:
|
181
|
-
- -
|
161
|
+
- - '>='
|
182
162
|
- !ruby/object:Gem::Version
|
183
163
|
version: '0'
|
184
164
|
requirements: []
|
185
165
|
rubyforge_project:
|
186
|
-
rubygems_version:
|
166
|
+
rubygems_version: 2.0.3
|
187
167
|
signing_key:
|
188
|
-
specification_version:
|
168
|
+
specification_version: 4
|
189
169
|
summary: A command line interface to the Appshot API
|
190
170
|
test_files: []
|