inqlude 0.8.0 → 0.9.0

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 (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
+ })();