veye 0.0.2

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.
Files changed (63) hide show
  1. checksums.yaml +15 -0
  2. data/Gemfile +2 -0
  3. data/Gemfile.lock +51 -0
  4. data/README.md +271 -0
  5. data/README.rdoc +6 -0
  6. data/Rakefile +44 -0
  7. data/bin/veye +390 -0
  8. data/lib/veye/api/base_resource.rb +29 -0
  9. data/lib/veye/api/json_response.rb +56 -0
  10. data/lib/veye/api/resource.rb +22 -0
  11. data/lib/veye/api.rb +3 -0
  12. data/lib/veye/package/follow.rb +50 -0
  13. data/lib/veye/package/info.rb +50 -0
  14. data/lib/veye/package/info_csv.rb +18 -0
  15. data/lib/veye/package/info_json.rb +14 -0
  16. data/lib/veye/package/info_pretty.rb +27 -0
  17. data/lib/veye/package/info_table.rb +29 -0
  18. data/lib/veye/package/search.rb +46 -0
  19. data/lib/veye/package/search_csv.rb +33 -0
  20. data/lib/veye/package/search_json.rb +19 -0
  21. data/lib/veye/package/search_pretty.rb +35 -0
  22. data/lib/veye/package/search_table.rb +40 -0
  23. data/lib/veye/package.rb +23 -0
  24. data/lib/veye/pagination/pagination_csv.rb +17 -0
  25. data/lib/veye/pagination/pagination_json.rb +12 -0
  26. data/lib/veye/pagination/pagination_pretty.rb +22 -0
  27. data/lib/veye/pagination/pagination_table.rb +22 -0
  28. data/lib/veye/pagination/show.rb +26 -0
  29. data/lib/veye/pagination.rb +7 -0
  30. data/lib/veye/project/check.rb +147 -0
  31. data/lib/veye/project/licence.rb +48 -0
  32. data/lib/veye/project/project_csv.rb +28 -0
  33. data/lib/veye/project/project_dependency_csv.rb +25 -0
  34. data/lib/veye/project/project_dependency_json.rb +12 -0
  35. data/lib/veye/project/project_dependency_pretty.rb +30 -0
  36. data/lib/veye/project/project_dependency_table.rb +27 -0
  37. data/lib/veye/project/project_json.rb +13 -0
  38. data/lib/veye/project/project_licence_csv.rb +19 -0
  39. data/lib/veye/project/project_licence_json.rb +12 -0
  40. data/lib/veye/project/project_licence_pretty.rb +23 -0
  41. data/lib/veye/project/project_licence_table.rb +29 -0
  42. data/lib/veye/project/project_pretty.rb +28 -0
  43. data/lib/veye/project/project_table.rb +30 -0
  44. data/lib/veye/project.rb +11 -0
  45. data/lib/veye/service.rb +14 -0
  46. data/lib/veye/user/favorite_csv.rb +28 -0
  47. data/lib/veye/user/favorite_json.rb +14 -0
  48. data/lib/veye/user/favorite_pretty.rb +25 -0
  49. data/lib/veye/user/favorite_table.rb +28 -0
  50. data/lib/veye/user/me.rb +75 -0
  51. data/lib/veye/user/profile_csv.rb +21 -0
  52. data/lib/veye/user/profile_json.rb +14 -0
  53. data/lib/veye/user/profile_pretty.rb +31 -0
  54. data/lib/veye/user/profile_table.rb +34 -0
  55. data/lib/veye/user.rb +7 -0
  56. data/lib/veye/version.rb +13 -0
  57. data/lib/veye.rb +82 -0
  58. data/test/default_test.rb +14 -0
  59. data/test/files/Gemfile +20 -0
  60. data/test/files/maven-1.0.1.pom +128 -0
  61. data/test/test_helper.rb +9 -0
  62. data/veye.rdoc +5 -0
  63. metadata +229 -0
checksums.yaml ADDED
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ ZDYwMzRlOWM5ZTI0MDI5OTMyNTIzYTVjMDhmYjRlYWJhYjE0YzM3OA==
5
+ data.tar.gz: !binary |-
6
+ N2QyYWE5NmZjMzgwODg1MDlkMjNjM2Q5YjgxZWE1ZjI0OTc4YjIwOQ==
7
+ SHA512:
8
+ metadata.gz: !binary |-
9
+ YWI3ZmZlYWY4YmY0YzY1MTUzMzUxYjkwOWY1OTllODhhZjZjYTMzOTE1MDJl
10
+ NDRmOWQ2NjA3OWY1N2E5YWY5NzJjY2YyOTRhNjY4YmQyMTVkYmI3MTVhZmUx
11
+ NDdkNmUyMGE0MGI1YjBkMTNhMmM0Njk5MDE3MTA2ODk3ODhhYTc=
12
+ data.tar.gz: !binary |-
13
+ YzZjYWVmZTIyMGU2ZjI4NGY4Y2JkNGFkZGQ1NzIzOTMyMWU2OTU5MDg4NGMy
14
+ NDRiNDNjYzkxNmUyYzNjZmMwM2FhMzc2ODg0ZTA3YzM0YWM5MjExMzRkMjk1
15
+ NTg3NWI2YTAwNjQ1YTEyYTM5YmQzZGE5ZTVlZmFlYWE2ZjM1MmM=
data/Gemfile ADDED
@@ -0,0 +1,2 @@
1
+ source 'https://rubygems.org'
2
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,51 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ veye (0.0.2)
5
+ awesome_print (= 1.2.0)
6
+ gli (= 2.8.0)
7
+ rainbow
8
+ rest-client (= 1.6.7)
9
+ terminal-table (= 1.4.5)
10
+
11
+ GEM
12
+ remote: https://rubygems.org/
13
+ specs:
14
+ aruba (0.5.1)
15
+ childprocess (~> 0.3.6)
16
+ cucumber (>= 1.1.1)
17
+ rspec-expectations (>= 2.7.0)
18
+ awesome_print (1.2.0)
19
+ builder (3.1.4)
20
+ childprocess (0.3.6)
21
+ ffi (~> 1.0, >= 1.0.6)
22
+ cucumber (1.2.1)
23
+ builder (>= 2.1.2)
24
+ diff-lcs (>= 1.1.3)
25
+ gherkin (~> 2.11.0)
26
+ json (>= 1.4.6)
27
+ diff-lcs (1.1.3)
28
+ ffi (1.3.0)
29
+ gherkin (2.11.5)
30
+ json (>= 1.4.6)
31
+ gli (2.8.0)
32
+ json (1.7.6)
33
+ mime-types (1.25)
34
+ rainbow (1.1.4)
35
+ rake (10.0.3)
36
+ rdoc (3.12)
37
+ json (~> 1.4)
38
+ rest-client (1.6.7)
39
+ mime-types (>= 1.16)
40
+ rspec-expectations (2.12.1)
41
+ diff-lcs (~> 1.1.3)
42
+ terminal-table (1.4.5)
43
+
44
+ PLATFORMS
45
+ ruby
46
+
47
+ DEPENDENCIES
48
+ aruba
49
+ rake
50
+ rdoc
51
+ veye!
data/README.md ADDED
@@ -0,0 +1,271 @@
1
+ # Veye
2
+
3
+ [VersionEye](http://www.versioneye.com/) is a cross-platform search engine and crowdsourcing app for opensource software libraries.
4
+
5
+ * Take advantage of the extended search to find any library you look for.
6
+ * Follow and track your favorite software packages via RSS feed.
7
+ * Leave comments and add additional meta information to the libraries to improve the quality of the data.
8
+ * Contribute to this crowdsourcing project to make the world a better place for software developers.
9
+
10
+
11
+ **veye** is commandline tool to make all this available on command-line and manipulate results with awesome tools and scripts.
12
+
13
+ **PS:** Our _premium customers_ can also use offline search. Please send your email to `contact@versioneye.com` to get more information.
14
+
15
+ Most endpoints require the api-key, which you can get [here](https://www.versioneye.com/settings/api).
16
+
17
+ ![Main help](http://dl.dropbox.com/u/19578784/versioneye/cli_start_page.png)
18
+
19
+
20
+ ### Install
21
+
22
+
23
+ ```
24
+ $> gem install veye
25
+ ```
26
+
27
+ ### Using dev-version
28
+
29
+ ###### Download source
30
+
31
+ ```bash
32
+ $> git clone https://github.com/versioneye/veye.git
33
+ $> cd veye
34
+ ```
35
+
36
+ ###### Run without installing
37
+ ```
38
+ $> bundle
39
+ $> bundle exec bin/veye ping
40
+ ```
41
+
42
+ ###### Or build Gem file and install it as global command
43
+
44
+ ```
45
+ $> gem build veye.gemspec
46
+ $> veye help
47
+ $> veye ping
48
+ ```
49
+
50
+ ### Initial configuration
51
+
52
+ The tool will raise exception when a configuration file is missing. The tool needs configuration file to keep user specific settings and authorization key.
53
+
54
+
55
+ ```
56
+ $> veye initconfig
57
+ #it creates configuration file for VersionEye CLI
58
+ $> cat ~/.veye.rc
59
+ :api_key: <add your key>
60
+ :server: 127.0.0.1
61
+ :port: "3000"
62
+ ....
63
+ ```
64
+
65
+ # Basic usage
66
+
67
+
68
+ ### Check service
69
+ You can use this service to check does the tool works and tests is our API accessible. This command doesnt need authorization.
70
+
71
+ ```bash
72
+ $> veye ping
73
+ pong
74
+ ```
75
+
76
+ ### Search packages
77
+
78
+ This command opens window to magnificient world of software packages - VersionEye has ~ 200K software libraries and it's reachable via your commandline.
79
+
80
+ ###### Get command help
81
+
82
+ ```bash
83
+ $> veye search help
84
+ ```
85
+
86
+ ###### Basic package search with language filtering
87
+
88
+ ```bash
89
+ $> veye search junit
90
+ $> veye search -l java
91
+ $> veye search --language java
92
+ $> veye search --language-name=java
93
+
94
+ #search packages for multiple languages
95
+ $> veye search --lang=nodejs,php
96
+ ```
97
+
98
+ ###### Use result paging
99
+
100
+ ```
101
+ $> veye search junit --page 2
102
+ $> veye search junit --page-number=2
103
+ $> veye search json --lang=r,php --page=2
104
+
105
+ #you can cancel pagination with --no-pagination argument
106
+ $> veye search junit --page 3 --no-pagination
107
+ ```
108
+
109
+ ###### Use different output format
110
+
111
+ **pretty print** - human readable output
112
+
113
+ ```bash
114
+ $> veye search json --format=pretty
115
+ ```
116
+
117
+ ![Pretty format](https://s3-eu-west-1.amazonaws.com/veye/search_format_pretty.png)
118
+
119
+ **csv** - to pipeline output to [awk](http://www.gnu.org/software/gawk/manual/gawk.html)
120
+
121
+ ```bash
122
+ $> veye search json --format=csv
123
+ ```
124
+
125
+ ![CSV format](https://s3-eu-west-1.amazonaws.com/veye/search_format_csv.png)
126
+
127
+ **json** - for manipulating results with [jq](http://stedolan.github.com/jq/) .
128
+ Check out our jq recipes in [wiki](https://github.com/versioneye/veye/wiki/jq-recipes) .
129
+
130
+
131
+ ```bash
132
+ $> veye search json --format=json
133
+ ```
134
+
135
+ ![Json format](https://s3-eu-west-1.amazonaws.com/veye/search_format_json.png)
136
+
137
+ **table view**
138
+
139
+ ```bash
140
+ $> veye search json --format=table
141
+ ```
142
+ ![Table output](https://s3-eu-west-1.amazonaws.com/veye/search_format_table.png)
143
+
144
+
145
+ ###### Empty response
146
+
147
+ There will be situation, when [VersionEye](http://versioneye.com) dont have information about your search, then you will see similar response on commandline:
148
+
149
+ ```
150
+ No results for 'json' with given parameters:
151
+ {:q=>"json", :lang=>"python", :page=>1}
152
+ ```
153
+
154
+ ### Global options
155
+
156
+ You can override your default global options by adding proper keyword and value.
157
+ For example to override a number of port, when doing search:
158
+
159
+ ```
160
+ $> veye --port=4567 search json --lang=php,nodejs
161
+ ```
162
+
163
+ ### Package information
164
+
165
+ Ok, thats most trickiest part of our tool. You need to prepend a language of package just before product's key. For example, if you have Java package with product key junit/junit, then you have to encode this value as: `java/junit/junit`.
166
+
167
+
168
+ It supports also `--format` flag with same values.
169
+
170
+ ```
171
+ $> veye info java/junit/junit
172
+ Asking information about: junit/junit
173
+ ```
174
+
175
+ ![Pretty print](https://s3-eu-west-1.amazonaws.com/veye/info_format_pretty2.png)
176
+
177
+
178
+ ### Products
179
+
180
+ This command has subcommands to control your personal connections with libraries.
181
+
182
+ ```
183
+ ;;follow some package to add it into your RSS feed
184
+ $> veye products follow clojure/ztellman/aleph
185
+ $> veye products unfollow clojure/ztellman/aleph
186
+
187
+ ;; show the list of products in your's RSS feed
188
+ $> veye products
189
+ ```
190
+
191
+ ### Check
192
+
193
+ Use `check` command to upload your project file and check the state of dependencies. **NB!** it only shows information about dependencies, if you need also project info, then please use `veye project upload` command.
194
+
195
+ ```
196
+ $> veye check test/files/Gemfile
197
+ ```
198
+
199
+ ### Project
200
+
201
+ The `project` command holds a multiple subcommands for working with our project files.
202
+
203
+ ###### show existing projects
204
+
205
+ ```
206
+ $> veye projects list
207
+ $> veye projects --format=table
208
+ ```
209
+
210
+ ###### show information of specific project
211
+
212
+ A `show` command expects a proper project_key, which you can from the list of already existing projects.
213
+
214
+ ```
215
+ $> veye projects show rubygem_gemfile_1
216
+ $> veye projects show rubygem_gemfile_1 --format=table
217
+ ```
218
+
219
+ ###### upload project file
220
+
221
+ Use `upload` command to create new project. This command expects proper filepath to the file and the file is smaller than 500KB. VersionEye supports currently 8 different package managers(*Leiningen, Gem, Maven, NPM, Packagist, Pip, Setup.py, R*), Bower and Obj-C is already on pipeline.
222
+
223
+ ```
224
+ $> veye projects upload test/files/Gemfile
225
+ $> veye projects upload test/files/maven.pom
226
+ ```
227
+
228
+ ###### re-upload project file for existing project
229
+
230
+ You can use `update` command to update the information of already existing project.
231
+ This command expects correct project_key and a path to file.
232
+
233
+ ```
234
+ $> veye projects update rubygem_gemfile_1 test/files/Gemfile
235
+ $> veye projects update rubygem_gemfile_1 test/files/Gemfile --format=table
236
+ ```
237
+
238
+ ###### Delete project
239
+
240
+ This command removes the specified project from your project's list.
241
+
242
+ ```
243
+ $> veye projects delete rubygem_gemfile_1
244
+ Deleted
245
+ ```
246
+
247
+ ###### Licences
248
+
249
+ `licence` command returns all licenses used in your project.
250
+
251
+ ```
252
+ $> veye projects licences rubygem_gemfile_1 --format=table
253
+ ```
254
+
255
+
256
+ ### Me
257
+
258
+ `me` command returns short overview of your profile and your current payment plan.
259
+
260
+ ```
261
+ $> veye me
262
+ ```
263
+
264
+ ####### Favorite packages
265
+
266
+ `me` command has a `favorite` command, which returns all packages you're currently following.
267
+
268
+ ```
269
+ $> veye me favorites
270
+ $> veye me favorites --page=2
271
+ ```
data/README.rdoc ADDED
@@ -0,0 +1,6 @@
1
+ = veye
2
+
3
+ Describe your project here
4
+
5
+ :include:veye.rdoc
6
+
data/Rakefile ADDED
@@ -0,0 +1,44 @@
1
+ require 'rake/clean'
2
+ require 'rubygems'
3
+ require 'rubygems/package_task'
4
+ require 'rdoc/task'
5
+ require 'cucumber'
6
+ require 'cucumber/rake/task'
7
+ Rake::RDocTask.new do |rd|
8
+ rd.main = "README.rdoc"
9
+ rd.rdoc_files.include("README.rdoc","lib/**/*.rb","bin/**/*")
10
+ rd.title = 'VersionEye Commandline Tool'
11
+ end
12
+
13
+ spec = eval(File.read('veye.gemspec'))
14
+
15
+ Gem::PackageTask.new(spec) do |pkg|
16
+ end
17
+ CUKE_RESULTS = 'results.html'
18
+ CLEAN << CUKE_RESULTS
19
+ desc 'Run features'
20
+ Cucumber::Rake::Task.new(:features) do |t|
21
+ opts = "features --format html -o #{CUKE_RESULTS} --format progress -x"
22
+ opts += " --tags #{ENV['TAGS']}" if ENV['TAGS']
23
+ t.cucumber_opts = opts
24
+ t.fork = false
25
+ end
26
+
27
+ desc 'Run features tagged as work-in-progress (@wip)'
28
+ Cucumber::Rake::Task.new('features:wip') do |t|
29
+ tag_opts = ' --tags ~@pending'
30
+ tag_opts = ' --tags @wip'
31
+ t.cucumber_opts = "features --format html -o #{CUKE_RESULTS} --format pretty -x -s#{tag_opts}"
32
+ t.fork = false
33
+ end
34
+
35
+ task :cucumber => :features
36
+ task 'cucumber:wip' => 'features:wip'
37
+ task :wip => 'features:wip'
38
+ require 'rake/testtask'
39
+ Rake::TestTask.new do |t|
40
+ t.libs << "test"
41
+ t.test_files = FileList['test/*_test.rb']
42
+ end
43
+
44
+ task :default => [:test,:features]