inqlude 0.8.0 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (68) hide show
  1. checksums.yaml +4 -4
  2. data/.rspec +1 -0
  3. data/.travis.yml +7 -3
  4. data/CHANGELOG.md +9 -0
  5. data/Gemfile +4 -0
  6. data/README.md +4 -0
  7. data/lib/cli.rb +24 -26
  8. data/lib/cli_controller.rb +24 -0
  9. data/lib/inqlude.rb +1 -0
  10. data/lib/kde_frameworks_release.rb +6 -1
  11. data/lib/manifest_handler.rb +44 -1
  12. data/lib/verifier.rb +4 -0
  13. data/lib/version.rb +1 -1
  14. data/lib/view.rb +62 -15
  15. data/manifest-format.md +30 -5
  16. data/spec/data/inqlude-all.json +11 -2
  17. data/spec/data/manifests/awesomelib/awesomelib.2013-09-08.manifest +4 -2
  18. data/spec/data/manifests/bleedingedge/bleedingedge.2012-01-01.manifest +3 -0
  19. data/spec/data/manifests/commercial/commercial.manifest +3 -0
  20. data/spec/data/manifests/newlib/newlib.manifest +1 -0
  21. data/spec/data/missing-topics/miss-topics/miss-topics.manifest +2 -1
  22. data/spec/integration/cli_verify_spec.rb +2 -0
  23. data/spec/integration/cli_view_spec.rb +102 -0
  24. data/spec/integration/spec_helper.rb +3 -0
  25. data/spec/online/cli_view_spec.rb +64 -0
  26. data/spec/online/spec_helper.rb +5 -0
  27. data/spec/stubs/qmake/qmake +2 -0
  28. data/spec/unit/cli_controller_spec.rb +51 -0
  29. data/spec/unit/kde_frameworks_release_spec.rb +36 -23
  30. data/spec/unit/manifest_handler_spec.rb +15 -1
  31. data/spec/unit/manifest_spec.rb +1 -1
  32. data/spec/unit/spec_helper.rb +10 -0
  33. data/spec/unit/view_spec.rb +68 -0
  34. data/topics/Manifest_updater/README.md +19 -0
  35. data/topics/Manifest_updater/app.js +43 -0
  36. data/topics/Manifest_updater/manifests/example/example.manifest +20 -0
  37. data/topics/Manifest_updater/package.json +9 -0
  38. data/topics/Manifest_updater/topics.csv +1 -0
  39. data/topics/Manifest_updater/update_manifests/example/example.manifest +24 -0
  40. data/topics/topics.csv +3 -0
  41. data/view/{about.html.haml → one-column/about.html.haml} +0 -0
  42. data/view/{all.html.haml → one-column/all.html.haml} +0 -0
  43. data/view/{commercial.html.haml → one-column/commercial.html.haml} +0 -0
  44. data/view/{contribute.html.haml → one-column/contribute.html.haml} +0 -0
  45. data/view/{development.html.haml → one-column/development.html.haml} +0 -0
  46. data/view/{favicon.ico → one-column/favicon.ico} +0 -0
  47. data/view/{get.html.haml → one-column/get.html.haml} +0 -0
  48. data/view/{group.html.haml → one-column/group.html.haml} +0 -0
  49. data/view/{index.html.haml → one-column/index.html.haml} +0 -0
  50. data/view/{layout.html.haml → one-column/layout.html.haml} +0 -0
  51. data/view/{library.html.haml → one-column/library.html.haml} +1 -1
  52. data/view/{public → one-column/public}/inqlude.css +0 -0
  53. data/view/{search.html.haml → one-column/search.html.haml} +0 -0
  54. data/view/{unreleased.html.haml → one-column/unreleased.html.haml} +0 -0
  55. data/view/two-column/about.html.haml +34 -0
  56. data/view/two-column/all.html.haml +47 -0
  57. data/view/two-column/contribute.html.haml +49 -0
  58. data/view/two-column/favicon.ico +0 -0
  59. data/view/two-column/get.html.haml +57 -0
  60. data/view/two-column/group.html.haml +52 -0
  61. data/view/two-column/index.html.haml +194 -0
  62. data/view/two-column/ios.ico +0 -0
  63. data/view/two-column/layout.html.haml +102 -0
  64. data/view/two-column/library.html.haml +64 -0
  65. data/view/two-column/public/inqlude.css +265 -0
  66. data/view/two-column/search.html.haml +20 -0
  67. data/view/two-column/topic.html.haml +47 -0
  68. metadata +41 -16
@@ -0,0 +1,47 @@
1
+ %home
2
+ = link_to "Home", "index"
3
+
4
+ %h3 All libraries
5
+
6
+ %table.table-hover.col-sm-12
7
+ - libraries.each do |library|
8
+ %tr
9
+ %td.name
10
+ - if library.latest_manifest.display_name
11
+ = link_to_library(library.latest_manifest.name, library.latest_manifest.display_name)
12
+ - else
13
+ = link_to_library(library.latest_manifest.name, library.latest_manifest.name)
14
+ %td.summary
15
+ = library.manifests.last.summary
16
+ %td.platforms
17
+ - if library.manifests.last.platforms.include? 'Linux'
18
+ %i.fa.fa-linux
19
+ - if library.manifests.last.platforms.include? 'OS X'
20
+ %i.fa.fa-apple
21
+ - if library.manifests.last.platforms.include? 'Windows'
22
+ %i.fa.fa-windows
23
+ - if library.manifests.last.platforms.include? 'Android'
24
+ %i.fa.fa-android
25
+ - if library.manifests.last.platforms.include? 'iOS'
26
+ %img{:src => "ios.ico", :height => "15%;"}
27
+ %td.topics
28
+ - if library.manifests.last.topics
29
+ - library.manifests.last.topics.each do |topic|
30
+ - if (topic != library.manifests.last.topics.last)
31
+ = topic + ", "
32
+ - else
33
+ = topic
34
+ %td.licenses
35
+ - library.manifests.last.licenses.each do |license|
36
+ - if (license != library.manifests.last.licenses.last)
37
+ = license + ", "
38
+ - else
39
+ = license
40
+
41
+ :javascript
42
+ $('table.table-hover.col-sm-12 tr').click( function() {
43
+ window.location = $(this).find('a').attr('href');
44
+ }).hover( function() {
45
+ $(this).toggleClass('hover');
46
+ });
47
+
@@ -0,0 +1,49 @@
1
+ %home
2
+ = link_to "Home", "index"
3
+
4
+ %h3 Contributing data about libraries
5
+
6
+ %p
7
+ To get a complete overview about all available Qt based libraries, we need
8
+ to collect data about these libraries. This includes descriptions,
9
+ instructions how to use them, as well as links to sources or installable
10
+ packages.
11
+ %p
12
+ The meta data used by Inqlude is collected in a git repository at
13
+ = link( "http://github.com/cornelius/inqlude-data" )
14
+ or
15
+ = link( "https://projects.kde.org/projects/websites/inqlude-data" ) + "."
16
+ It contains a manifest file in JSON format for each library, which has the
17
+ meta data in a structured machine-readable form. JSON is easy enough for
18
+ humans to read and edit as well. See the
19
+ = link_to "specification of the manifest format", "https://github.com/cornelius/inqlude/blob/master/manifest-format.md"
20
+ for documentation about what to put into the manifest.
21
+ %p
22
+ You can contribute meta data by providing patches to the inqlude-data
23
+ repository. Use the github mechanisms or just send patches by email.
24
+ Contributions are welcome.
25
+ %br
26
+
27
+ %h3 Contributing to the Inqlude tools
28
+
29
+ %p
30
+ The command line tool is developed in another git repository at
31
+ = link( "http://github.com/cornelius/inqlude" )
32
+ or
33
+ = link( "https://projects.kde.org/projects/websites/inqlude" ) + "."
34
+ It's still in a proof-of-concept state, so there is quite a bit work left.
35
+ Have a look at the
36
+ = link_to "list of open issues", "http://github.com/cornelius/inqlude/issues"
37
+ or read the source and come up with your own ideas what to improve.
38
+ %p
39
+ Especially welcome are contributions for adding support for native
40
+ package systems on the variety of Linux distributions and other systems
41
+ out there.
42
+ %br
43
+
44
+ %h3 Mailing list
45
+
46
+ %p
47
+ If you want to discuss any aspects of Inqlude, get in contact with us, have
48
+ questions, or want to contribute in any other way, the best way is to use the
49
+ mailing list #{link_to "inqlude@kde.org", "https://mail.kde.org/mailman/listinfo/inqlude"}.
@@ -0,0 +1,57 @@
1
+ %home
2
+ = link_to "Home", "index"
3
+
4
+ %h3 How to get libraries
5
+
6
+ %p
7
+ This page is about how to use Inqlude as a user, a developer using Qt
8
+ based libraries in her projects.
9
+ %p
10
+ First you can just use the web site. Find the information about libraries
11
+ here, and get the libraries using the provided links. This works and is the
12
+ recommended way for now, but there is an experimental, but more convenient
13
+ way.
14
+ %p
15
+ You can also use the command line client. This client makes it easy to get
16
+ the libraries you need with just a few commands, without having to know
17
+ URLs, or how libraries are packages.
18
+ %p
19
+ First you need to get the command line client.
20
+ It's a Qt 5 application. If your distribution doesn't have a package for
21
+ inqlude-client, you can download its sources from
22
+ = link_to( "download.kde.org", "http://download.kde.org/devel/helpers/")
23
+ or using
24
+ .code
25
+ git clone git://anongit.kde.org/inqlude-client
26
+ %p
27
+ There is a second command line client, written in Ruby. It can also
28
+ download libraries, but it is mostly aimed at maintaining the inqlude data.
29
+ It's available as a Ruby gem, so when you have rubygems installed you can simply do a
30
+ .code
31
+ sudo gem install inqlude
32
+ (For instructions how to get rubygems, see
33
+ = link_to( "rubygems.org", "http://rubygems.org" ) + ")."
34
+ %p
35
+ Once you have the client, you can get help about the available commands
36
+ with
37
+ .code
38
+ inqlude
39
+ Get a list of available libraries with
40
+ .code
41
+ inqlude list -r
42
+
43
+ Install a library with
44
+ .code
45
+ inqlude install <library_name>
46
+
47
+ Get a list of installed libraries with
48
+ .code
49
+ inqlude list
50
+ %p
51
+ The command line client uses your native package management system. In
52
+ case there is no meta data available for your system, the client falls
53
+ back to handling sources. Please consider helping to get your system
54
+ supported by contributing meta data or implementing a backend for your
55
+ system. See the
56
+ = link_to "instructions how to contribute", "contribute"
57
+ for more details.
@@ -0,0 +1,52 @@
1
+ %home
2
+ = link_to "Home", "index"
3
+
4
+ %h3
5
+ = group_title
6
+
7
+ %table.table-hover.col-sm-12
8
+ - group.each do |library|
9
+ %tr
10
+ %td.name
11
+ - if library.latest_manifest.display_name
12
+ = link_to_library(library.latest_manifest.name, library.latest_manifest.display_name)
13
+ - else
14
+ = link_to_library(library.latest_manifest.name, library.latest_manifest.name)
15
+ %td.summary
16
+ = library.manifests.last.summary
17
+ %td.platforms
18
+ %link{:href => "http://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.6.3/css/font-awesome.min.css", :rel => "stylesheet"}
19
+ - if library.manifests.last.platforms.include? 'Linux'
20
+ %i.fa.fa-linux
21
+ - if library.manifests.last.platforms.include? 'OS X'
22
+ %i.fa.fa-apple
23
+ - if library.manifests.last.platforms.include? 'Windows'
24
+ %i.fa.fa-windows
25
+ - if library.manifests.last.platforms.include? 'Android'
26
+ %i.fa.fa-android
27
+ - if library.manifests.last.platforms.include? 'iOS'
28
+ %img{:src => "apple.ico", :height => "15%;"}
29
+ %td.topics
30
+ - if library.manifests.last.topics
31
+ - library.manifests.last.topics.each do |topic|
32
+ - if (topic != library.manifests.last.topics.last)
33
+ = topic + ", "
34
+ - else
35
+ = topic
36
+ %td.licenses
37
+ - library.manifests.last.licenses.each do |license|
38
+ - if (license != library.manifests.last.licenses.last)
39
+ = license + ", "
40
+ - else
41
+ = license
42
+ %br
43
+
44
+ %p
45
+ #{group.count} libraries listed in group #{group_title}.
46
+
47
+ :javascript
48
+ $('table.table-hover.col-sm-12 tr').click( function() {
49
+ window.location = $(this).find('a').attr('href');
50
+ }).hover( function() {
51
+ $(this).toggleClass('hover');
52
+ });
@@ -0,0 +1,194 @@
1
+ %h3
2
+ Stable libraries
3
+
4
+ %table.table-hover.col-sm-12
5
+ - libraries(:stable).each do |library|
6
+ %tr
7
+ %td.name
8
+ - if library.latest_manifest.display_name
9
+ = link_to_library(library.latest_manifest.name, library.latest_manifest.display_name)
10
+ - else
11
+ = link_to_library(library.latest_manifest.name, library.latest_manifest.name)
12
+ %td.summary
13
+ = library.manifests.last.summary
14
+ %td.platforms
15
+ - if library.manifests.last.platforms.include? 'Linux'
16
+ %i.fa.fa-linux
17
+ - if library.manifests.last.platforms.include? 'OS X'
18
+ %i.fa.fa-apple
19
+ - if library.manifests.last.platforms.include? 'Windows'
20
+ %i.fa.fa-windows
21
+ - if library.manifests.last.platforms.include? 'Android'
22
+ %i.fa.fa-android
23
+ - if library.manifests.last.platforms.include? 'iOS'
24
+ %img{:src => "ios.ico", :height => "15%;"}
25
+ %td.topics
26
+ - if library.manifests.last.topics
27
+ - library.manifests.last.topics.each do |topic|
28
+ - if (topic != library.manifests.last.topics.last)
29
+ = topic + ", "
30
+ - else
31
+ = topic
32
+ %td.licenses
33
+ - library.manifests.last.licenses.each do |license|
34
+ - if (license != library.manifests.last.licenses.last)
35
+ = license + ", "
36
+ - else
37
+ = license
38
+
39
+ %h3
40
+ Developer releases
41
+
42
+ %table.table-hover.col-sm-12
43
+ - libraries(:beta).each do |library|
44
+ %tr
45
+ %td.name
46
+ - if library.latest_manifest.display_name
47
+ = link_to_library(library.latest_manifest.name, library.latest_manifest.display_name)
48
+ - else
49
+ = link_to_library(library.latest_manifest.name, library.latest_manifest.name)
50
+ %td.summary
51
+ = library.manifests.last.summary
52
+ %td.platforms
53
+ - if library.manifests.last.platforms.include? 'Linux'
54
+ %i.fa.fa-linux
55
+ - if library.manifests.last.platforms.include? 'OS X'
56
+ %i.fa.fa-apple
57
+ - if library.manifests.last.platforms.include? 'Windows'
58
+ %i.fa.fa-windows
59
+ - if library.manifests.last.platforms.include? 'Android'
60
+ %i.fa.fa-android
61
+ - if library.manifests.last.platforms.include? 'iOS'
62
+ %img{:src => "ios.ico", :height => "15%;"}
63
+ %td.topics
64
+ - if library.manifests.last.topics
65
+ - library.manifests.last.topics.each do |topic|
66
+ - if (topic != library.manifests.last.topics.last)
67
+ = topic + ", "
68
+ - else
69
+ = topic
70
+ %td.licenses
71
+ - library.manifests.last.licenses.each do |license|
72
+ - if (license != library.manifests.last.licenses.last)
73
+ = license + ", "
74
+ - else
75
+ = license
76
+
77
+ - libraries(:alpha).each do |library|
78
+ %tr
79
+ %td.name
80
+ - if library.latest_manifest.display_name
81
+ = link_to_library(library.latest_manifest.name, library.latest_manifest.display_name)
82
+ - else
83
+ = link_to_library(library.latest_manifest.name, library.latest_manifest.name)
84
+ %td.summary
85
+ = library.manifests.last.summary
86
+ %td.platforms
87
+ - if library.manifests.last.platforms.include? 'Linux'
88
+ %i.fa.fa-linux
89
+ - if library.manifests.last.platforms.include? 'OS X'
90
+ %i.fa.fa-apple
91
+ - if library.manifests.last.platforms.include? 'Windows'
92
+ %i.fa.fa-windows
93
+ - if library.manifests.last.platforms.include? 'Android'
94
+ %i.fa.fa-android
95
+ - if library.manifests.last.platforms.include? 'iOS'
96
+ %img{:src => "ios.ico", :height => "15%;"}
97
+ %td.topics
98
+ - if library.manifests.last.topics
99
+ - library.manifests.last.topics.each do |topic|
100
+ - if (topic != library.manifests.last.topics.last)
101
+ = topic + ", "
102
+ - else
103
+ = topic
104
+ %td.licenses
105
+ - library.manifests.last.licenses.each do |license|
106
+ - if (license != library.manifests.last.licenses.last)
107
+ = license + ", "
108
+ - else
109
+ = license
110
+
111
+ - libraries(:edge).each do |library|
112
+ %tr
113
+ %td.name
114
+ - if library.latest_manifest.display_name
115
+ = link_to_library(library.latest_manifest.name, library.latest_manifest.display_name)
116
+ - else
117
+ = link_to_library(library.latest_manifest.name, library.latest_manifest.name)
118
+ %td.summary
119
+ = library.manifests.last.summary
120
+ %td.platforms
121
+ - if library.manifests.last.platforms.include? 'Linux'
122
+ %i.fa.fa-linux
123
+ - if library.manifests.last.platforms.include? 'OS X'
124
+ %i.fa.fa-apple
125
+ - if library.manifests.last.platforms.include? 'Windows'
126
+ %i.fa.fa-windows
127
+ - if library.manifests.last.platforms.include? 'Android'
128
+ %i.fa.fa-android
129
+ - if library.manifests.last.platforms.include? 'iOS'
130
+ %img{:src => "ios.ico", :height => "15%;"}
131
+ %td.topics
132
+ - if library.manifests.last.topics
133
+ - library.manifests.last.topics.each do |topic|
134
+ - if (topic != library.manifests.last.topics.last)
135
+ = topic + ", "
136
+ - else
137
+ = topic
138
+ %td.licenses
139
+ - library.manifests.last.licenses.each do |license|
140
+ - if (license != library.manifests.last.licenses.last)
141
+ = license + ", "
142
+ - else
143
+ = license
144
+
145
+ %h3
146
+ Unreleased libraries
147
+
148
+ %table.table-hover.col-sm-12
149
+ - unreleased_libraries.each do |library|
150
+ %tr
151
+ %td.name
152
+ - if library.latest_manifest.display_name
153
+ = link_to_library(library.latest_manifest.name, library.latest_manifest.display_name)
154
+ - else
155
+ = link_to_library(library.latest_manifest.name, library.latest_manifest.name)
156
+ %td.summary
157
+ = library.manifests.last.summary
158
+ %td.platforms
159
+ - if library.manifests.last.platforms.include? 'Linux'
160
+ %i.fa.fa-linux
161
+ - if library.manifests.last.platforms.include? 'OS X'
162
+ %i.fa.fa-apple
163
+ - if library.manifests.last.platforms.include? 'Windows'
164
+ %i.fa.fa-windows
165
+ - if library.manifests.last.platforms.include? 'Android'
166
+ %i.fa.fa-android
167
+ - if library.manifests.last.platforms.include? 'iOS'
168
+ %img{:src => "ios.ico", :height => "15%;"}
169
+ %td.topics
170
+ - if library.manifests.last.topics
171
+ - library.manifests.last.topics.each do |topic|
172
+ - if (topic != library.manifests.last.topics.last)
173
+ = topic + ", "
174
+ - else
175
+ = topic
176
+ %td.licenses
177
+ - library.manifests.last.licenses.each do |license|
178
+ - if (license != library.manifests.last.licenses.last)
179
+ = license + ", "
180
+ - else
181
+ = license
182
+
183
+ %hr
184
+
185
+ %span.footer
186
+ Last updated on #{Date.today}
187
+
188
+ :javascript
189
+ $('table.table-hover.col-sm-12 tr').click( function() {
190
+ window.location = $(this).find('a').attr('href');
191
+ }).hover( function() {
192
+ $(this).toggleClass('hover');
193
+ });
194
+
Binary file
@@ -0,0 +1,102 @@
1
+ !!!
2
+ %head
3
+ %meta{ :charset => 'utf-8' }
4
+ <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" />
5
+ <link rel="stylesheet" href="http://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.6.3/css/font-awesome.min.css" rel="stylesheet" />
6
+ <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
7
+ = style_sheet
8
+ - if enable_search
9
+ <link href='https://fonts.googleapis.com/css?family=Droid+Sans' rel='stylesheet' type='text/css'>
10
+ <link rel="stylesheet" href="https://www.google.com/cse/style/look/default.css" type="text/css" />
11
+
12
+ %body
13
+ .container-fluid.header
14
+
15
+ .col-sm-8.left
16
+ .ribbon
17
+ = link_to "Alpha", "about"
18
+ %h1
19
+ %span.logo><
20
+ = link_to "#in", "index"
21
+ %span.logo.green><
22
+ = link_to "q", "index"
23
+ %span.logo><
24
+ = link_to "lude", "index"
25
+ %h2
26
+ %span.subtitle><
27
+ = link_to "The Qt library archive", "index"
28
+
29
+ .col-sm-4.right
30
+ - if enable_search
31
+ %gcse:searchbox-only{ resultsUrl: "https://inqlude.org/search.html" }
32
+ Loading...
33
+ %br{ :clear => "all" }
34
+
35
+ .container-fluid.content
36
+
37
+ .col-sm-3.side-bar
38
+ %p{:class => "description"}
39
+ Inqlude provides a comprehensive listing of all existing libraries for developers of applications using the #{link_to "Qt toolkit", "http://qt-project.org"}. Inqlude is run by the community and open for contributions.
40
+ %ul.titles-list
41
+ %li
42
+ = link_to "About", "about"
43
+ %li
44
+ = link_to "How to get libraries", "get"
45
+ %li
46
+ = link_to "How to contribute", "contribute"
47
+
48
+ %p{:class => "title"} Latest releases
49
+ %hr
50
+ %ul.side-list
51
+ %li
52
+ - latest_libraries.each do |library|
53
+ - if library.latest_manifest.group == "kde-frameworks"
54
+ = link_to_group('kde-frameworks', 'KDE Frameworks')
55
+ -else
56
+ - if library.latest_manifest.display_name
57
+ = link_to_library(library.latest_manifest.name, library.latest_manifest.display_name)
58
+ - else
59
+ = link_to_library(library.latest_manifest.name, library.latest_manifest.name)
60
+ %date
61
+ = '(' + library.latest_manifest.release_date + ')'
62
+ %br
63
+
64
+ %p{:class => "title"} Topics
65
+ %hr
66
+ %ul.side-list
67
+ %li
68
+ = link_to "All", "all"
69
+ %number
70
+ = ' (' + libraries.length.to_s + ')'
71
+ %li
72
+ - topics.each do |topic|
73
+ = link_to_topic(topic)
74
+ %number
75
+ = ' (' + no_of_libraries(topic).to_s + ')'
76
+ %br
77
+
78
+ .col-sm-9.main-pane
79
+ = yank
80
+
81
+ %br{ :clear => "all" }
82
+
83
+ %hr
84
+
85
+ .col-sm-12.legal
86
+ Inqlude is a
87
+ = link_to "KDE project", "http://kde.org"
88
+ = "|"
89
+ = link_to "Legal", "http://www.kde.org/community/whatiskde/impressum.php"
90
+
91
+ - if enable_search
92
+ :javascript
93
+ (function() {
94
+ var cx = '012526638842992167133:g7thmrlp2uw';
95
+ var gcse = document.createElement('script');
96
+ gcse.type = 'text/javascript';
97
+ gcse.async = true;
98
+ gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') +
99
+ '//cse.google.com/cse.js?cx=' + cx;
100
+ var s = document.getElementsByTagName('script')[0];
101
+ s.parentNode.insertBefore(gcse, s);
102
+ })();