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.
@@ -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
@@ -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[:x]
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
- # Error logic here
142
- # return false to skip default error handling
182
+ #puts exception.http_body
143
183
  true
144
184
  end
145
185
 
@@ -49,13 +49,14 @@ end
49
49
  class Appshot
50
50
 
51
51
  def initialize(url, token, instance)
52
- @instance = instance
53
- @api = RestClient::Resource.new url, :timeout => -1, :headers => {'Appshot-AuthToken' => token, 'Appshot-Instance' => instance}
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
- json_response['docs']
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', 'entity_type']
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
- rownum = 0
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
- sheet1.row(rownum).push column
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
- book.write(out)
145
+ end
146
+
147
+ book.write(out)
148
+
93
149
  end
94
-
95
150
  end
@@ -1,3 +1,3 @@
1
1
  module Slapshot
2
- VERSION = '0.0.12'
2
+ VERSION = '0.0.13'
3
3
  end
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.12
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-01-14 00:00:00.000000000 Z
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: ! 'This is a command line interface to the Appshot API. I allows you
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: 1.8.23
166
+ rubygems_version: 2.0.3
187
167
  signing_key:
188
- specification_version: 3
168
+ specification_version: 4
189
169
  summary: A command line interface to the Appshot API
190
170
  test_files: []