foreman_remote_execution 1.4.1 → 1.4.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (125) hide show
  1. checksums.yaml +5 -5
  2. data/.rubocop.yml +11 -9
  3. data/.rubocop_todo.yml +146 -116
  4. data/app/controllers/api/v2/job_invocations_controller.rb +6 -1
  5. data/app/controllers/api/v2/job_templates_controller.rb +0 -1
  6. data/app/controllers/job_invocations_controller.rb +6 -1
  7. data/app/lib/actions/remote_execution/run_host_job.rb +1 -1
  8. data/app/models/concerns/foreman_remote_execution/errors_flattener.rb +3 -0
  9. data/app/models/concerns/foreman_remote_execution/host_extensions.rb +1 -1
  10. data/app/models/concerns/foreman_remote_execution/subnet_extensions.rb +1 -1
  11. data/app/models/foreign_input_set.rb +1 -1
  12. data/app/models/job_invocation.rb +1 -1
  13. data/app/models/job_invocation_composer.rb +2 -2
  14. data/app/models/job_invocation_task_group.rb +1 -1
  15. data/app/models/job_template.rb +3 -3
  16. data/app/models/job_template_effective_user.rb +1 -1
  17. data/app/models/remote_execution_feature.rb +1 -1
  18. data/app/models/target_remote_execution_proxy.rb +1 -1
  19. data/app/models/targeting.rb +2 -2
  20. data/app/models/targeting_host.rb +1 -1
  21. data/app/models/template_input.rb +1 -1
  22. data/app/models/template_invocation.rb +1 -1
  23. data/app/models/template_invocation_input_value.rb +1 -1
  24. data/db/migrate/20150612121541_add_job_template_to_template.rb +1 -1
  25. data/db/migrate/20150616080015_create_template_input.rb +1 -1
  26. data/db/migrate/20150708133241_add_targeting.rb +1 -1
  27. data/db/migrate/20150708133242_add_invocation.rb +1 -1
  28. data/db/migrate/20150708133305_add_template_invocation.rb +1 -1
  29. data/db/migrate/20150812110800_add_resolved_at_to_targeting.rb +1 -1
  30. data/db/migrate/20150812145900_add_last_task_id_to_job_invocation.rb +1 -1
  31. data/db/migrate/20150826191632_create_target_remote_execution_proxies.rb +1 -1
  32. data/db/migrate/20150827144500_change_targeting_search_query_type.rb +1 -1
  33. data/db/migrate/20150827152730_add_options_to_template_input.rb +1 -1
  34. data/db/migrate/20150903192731_add_execution_to_interface.rb +2 -2
  35. data/db/migrate/20150923125825_add_job_invocation_task_group.rb +1 -1
  36. data/db/migrate/20151013135415_add_pub_key_to_smart_proxy.rb +1 -1
  37. data/db/migrate/20151022105508_rename_last_task_id_column.rb +1 -1
  38. data/db/migrate/20151116105412_add_triggering_to_job_invocation.rb +1 -1
  39. data/db/migrate/20151120171100_add_effective_user_to_template_invocation.rb +1 -1
  40. data/db/migrate/20151124162300_create_job_template_effective_users.rb +1 -1
  41. data/db/migrate/20151203100824_add_description_to_job_invocation.rb +1 -1
  42. data/db/migrate/20151215114631_add_host_id_to_template_invocation.rb +2 -2
  43. data/db/migrate/20151217092555_migrate_to_task_groups.rb +2 -2
  44. data/db/migrate/20160108134600_create_template_input_sets.rb +1 -1
  45. data/db/migrate/20160108141144_make_job_name_default_to_something.rb +1 -1
  46. data/db/migrate/20160111113032_upcase_ssh_feature.rb +2 -2
  47. data/db/migrate/20160113161916_add_run_host_job_task_id_to_template_invocation.rb +1 -1
  48. data/db/migrate/20160113162007_expand_all_template_invocations.rb +3 -3
  49. data/db/migrate/20160114120200_rename_job_categories.rb +1 -1
  50. data/db/migrate/20160114125628_rename_job_name_to_job_category.rb +1 -1
  51. data/db/migrate/20160118124600_create_remote_execution_features.rb +1 -1
  52. data/db/migrate/20160125155108_make_job_template_name_unique.rb +1 -1
  53. data/db/migrate/20160127134031_add_advanced_to_template_input.rb +1 -1
  54. data/db/migrate/20160127162711_reword_puppet_template_description.rb +1 -1
  55. data/db/migrate/20160203104056_add_concurrency_options_to_job_invocation.rb +1 -1
  56. data/db/migrate/20160926225841_update_template_input_value.rb +1 -1
  57. data/db/migrate/20170110145641_add_host_action_button_to_remote_execution_feature.rb +1 -1
  58. data/db/migrate/20170613101039_add_timeout_to_job_templates_and_job_invocations.rb +1 -1
  59. data/db/migrate/20180110104432_rename_template_invocation_permission.rb +25 -0
  60. data/db/migrate/20180112125015_fix_taxable_taxonomies_job_template.rb +14 -0
  61. data/db/seeds.d/90-bookmarks.rb +1 -1
  62. data/foreman_remote_execution.gemspec +2 -1
  63. data/lib/foreman_remote_execution/engine.rb +3 -3
  64. data/lib/foreman_remote_execution/version.rb +1 -1
  65. data/test/benchmark/run_hosts_job_benchmark.rb +10 -10
  66. data/test/benchmark/targeting_benchmark.rb +6 -6
  67. data/test/factories/foreman_remote_execution_factories.rb +14 -14
  68. data/test/functional/api/v2/foreign_input_sets_controller_test.rb +10 -15
  69. data/test/functional/api/v2/job_invocations_controller_test.rb +19 -8
  70. data/test/functional/api/v2/job_templates_controller_test.rb +12 -16
  71. data/test/functional/api/v2/remote_execution_features_controller_test.rb +3 -4
  72. data/test/functional/api/v2/template_inputs_controller_test.rb +8 -13
  73. data/test/test_plugin_helper.rb +4 -4
  74. data/test/unit/actions/run_hosts_job_test.rb +3 -3
  75. data/test/unit/concerns/exportable_test.rb +1 -1
  76. data/test/unit/concerns/foreman_tasks_cleaner_extensions_test.rb +2 -2
  77. data/test/unit/concerns/host_extensions_test.rb +20 -20
  78. data/test/unit/concerns/nic_extensions_test.rb +1 -1
  79. data/test/unit/input_template_renderer_test.rb +86 -86
  80. data/test/unit/job_invocation_composer_test.rb +17 -16
  81. data/test/unit/job_invocation_test.rb +10 -10
  82. data/test/unit/job_template_effective_user_test.rb +2 -2
  83. data/test/unit/job_template_importer_test.rb +3 -3
  84. data/test/unit/job_template_test.rb +15 -15
  85. data/test/unit/remote_execution_feature_test.rb +3 -3
  86. data/test/unit/remote_execution_provider_test.rb +15 -15
  87. data/test/unit/targeting_test.rb +3 -3
  88. data/test/unit/template_input_test.rb +1 -1
  89. data/test/unit/template_invocation_input_value_test.rb +17 -17
  90. metadata +19 -77
  91. data/doc/.gitignore +0 -7
  92. data/doc/Gemfile +0 -7
  93. data/doc/Rakefile +0 -41
  94. data/doc/_config.yml +0 -33
  95. data/doc/plugins/alert_block.rb +0 -27
  96. data/doc/plugins/div_tag.rb +0 -24
  97. data/doc/plugins/graphviz.rb +0 -121
  98. data/doc/plugins/plantuml.rb +0 -84
  99. data/doc/plugins/play.rb +0 -13
  100. data/doc/plugins/tags.rb +0 -137
  101. data/doc/plugins/toc.rb +0 -19
  102. data/doc/source/.nojekyll +0 -0
  103. data/doc/source/404.md +0 -6
  104. data/doc/source/_includes/footer.html +0 -21
  105. data/doc/source/_includes/header.html +0 -59
  106. data/doc/source/_includes/tocify.html +0 -6
  107. data/doc/source/_layouts/default.html +0 -9
  108. data/doc/source/_layouts/page.html +0 -25
  109. data/doc/source/atom.xml +0 -32
  110. data/doc/source/design/index.md +0 -1322
  111. data/doc/source/design/wireframes.pdf +0 -0
  112. data/doc/source/index.md +0 -18
  113. data/doc/source/static/css/bootstrap-responsive.min.css +0 -9
  114. data/doc/source/static/css/bootstrap.min.css +0 -866
  115. data/doc/source/static/css/jquery.tocify.css +0 -128
  116. data/doc/source/static/css/style.css +0 -285
  117. data/doc/source/static/css/syntax.css +0 -60
  118. data/doc/source/static/images/foreman.png +0 -0
  119. data/doc/source/static/images/glyphicons-halflings-white.png +0 -0
  120. data/doc/source/static/images/glyphicons-halflings.png +0 -0
  121. data/doc/source/static/js/bootstrap.min.js +0 -7
  122. data/doc/source/static/js/jquery-ui-1.9.2.custom.min.js +0 -6
  123. data/doc/source/static/js/jquery.js +0 -2
  124. data/doc/source/static/js/jquery.tocify.min.js +0 -3
  125. data/doc/source/static/js/scroll.js +0 -24
@@ -1,128 +0,0 @@
1
- /*
2
- * jquery.tocify.css 1.2.0
3
- * Author: @gregfranko
4
- */
5
-
6
- /* The Table of Contents container element */
7
- #toc {
8
- position: fixed;
9
- overflow: auto;
10
- max-height: 90%;
11
- }
12
- @media (min-width:1px) and (max-width:767px) { #toc { position: static} }
13
-
14
-
15
- /* The Table of Contents is composed of multiple nested unordered lists. These styles remove the default styling of an unordered list because it is ugly. */
16
- #toc ul, #toc li {
17
- list-style: none;
18
- margin: 0;
19
- padding: 0;
20
- border: none;
21
- line-height: 30px;
22
- }
23
-
24
- /* Top level header elements */
25
- .header {
26
- text-indent: 10px;
27
- }
28
-
29
- /* Top level subheader elements. These are the first nested items underneath a header element. */
30
- .sub-header {
31
- text-indent: 20px;
32
- display: none;
33
- }
34
-
35
- /* Makes the font smaller for all subheader elements. */
36
- .sub-header li {
37
- font-size: 12px;
38
- }
39
-
40
- /* Further indents second level subheader elements. */
41
- .sub-header .sub-header {
42
- text-indent: 30px;
43
- }
44
-
45
- /* Further indents third level subheader elements. You can continue this pattern if you have more nested elements. */
46
- .sub-header .sub-header .sub-header {
47
- text-indent: 40px;
48
- }
49
-
50
- /* Twitter Bootstrap Override Style */
51
- .nav-list > li > a, .nav-list .nav-header {
52
- margin: 0px;
53
- }
54
-
55
- /* Twitter Bootstrap Override Style */
56
- .nav-list > li > a {
57
- padding: 5px;
58
- }
59
-
60
- /* Sidenav for Docs
61
- -------------------------------------------------- */
62
-
63
- .bs-docs-sidenav {
64
- margin: 30px 0 0;
65
- padding: 0;
66
- background-color: #fff;
67
- -webkit-border-radius: 6px;
68
- -moz-border-radius: 6px;
69
- border-radius: 6px;
70
- -webkit-box-shadow: 0 1px 4px rgba(0,0,0,.065);
71
- -moz-box-shadow: 0 1px 4px rgba(0,0,0,.065);
72
- box-shadow: 0 1px 4px rgba(0,0,0,.065);
73
- }
74
- .bs-docs-sidenav > li > a {
75
- display: block;
76
- padding: 8px 14px;
77
- border: 1px solid #e5e5e5;
78
- }
79
- .bs-docs-sidenav.header:first-of-type > li:first-child > a {
80
- -webkit-border-radius: 6px 6px 0 0;
81
- -moz-border-radius: 6px 6px 0 0;
82
- border-radius: 6px 6px 0 0;
83
- }
84
- .bs-docs-sidenav:last-of-type > li:last-child > a {
85
- -webkit-border-radius: 0 0 6px 6px;
86
- -moz-border-radius: 0 0 6px 6px;
87
- border-radius: 0 0 6px 6px;
88
- }
89
- .bs-docs-sidenav > .active > a {
90
- position: relative;
91
- z-index: 2;
92
- padding: 9px 15px;
93
- border: 0;
94
- text-shadow: 0 1px 0 rgba(0,0,0,.15);
95
- -webkit-box-shadow: inset 1px 0 0 rgba(0,0,0,.1), inset -1px 0 0 rgba(0,0,0,.1);
96
- -moz-box-shadow: inset 1px 0 0 rgba(0,0,0,.1), inset -1px 0 0 rgba(0,0,0,.1);
97
- box-shadow: inset 1px 0 0 rgba(0,0,0,.1), inset -1px 0 0 rgba(0,0,0,.1);
98
- }
99
- /* Chevrons */
100
- .bs-docs-sidenav .icon-chevron-right {
101
- float: right;
102
- margin-top: 6px;
103
- margin-right: -6px;
104
- opacity: .25;
105
- }
106
- .bs-docs-sidenav > li > a:hover {
107
- background-color: #f5f5f5;
108
- }
109
- .bs-docs-sidenav a:hover .icon-chevron-right {
110
- opacity: .5;
111
- }
112
- .bs-docs-sidenav .active a .icon-chevron-right,
113
- .bs-docs-sidenav .active a:hover .icon-chevron-right {
114
- background-image: url(/static/images/glyphicons-halflings-white.png);
115
- opacity: 1;
116
- }
117
- .bs-docs-sidenav .icon-chevron-right,
118
- .bs-docs-sidenav a:hover .icon-chevron-right {
119
- background-image: url(/static/images/glyphicons-halflings.png);
120
- }
121
- .bs-docs-sidenav.affix {
122
- top: 40px;
123
- }
124
- .bs-docs-sidenav.affix-bottom {
125
- position: absolute;
126
- top: auto;
127
- bottom: 270px;
128
- }
@@ -1,285 +0,0 @@
1
- html { height: 100%; overflow: auto;}
2
- body { height: 100%; font-family: "Cabin", "Helvetica Neue", Helvetica, Arial, sans-serif; }
3
- #wrap { min-height: 100%; }
4
- #main { padding-bottom: 80px; }
5
- @media (min-width: 979px){ #main { padding-top:90px; } }
6
-
7
- th.underlined {
8
- text-decoration: underline
9
- }
10
-
11
- .half {
12
- width: 44%;
13
- }
14
-
15
- .logo {
16
- display: block;
17
- height: 76px;
18
- margin-bottom: -94px;
19
- padding-top: 18px;
20
- }
21
-
22
- .brand {
23
- position: relative;
24
- z-index: 100;
25
- padding: 35px 20px 10px;
26
- width: 120px;
27
- }
28
-
29
- .brand a {
30
- position: absolute;
31
- }
32
-
33
- .navbar a.subtitle {
34
- font-size: 13px;
35
- top: 40px;
36
- }
37
-
38
- .navbar .nav>li>a
39
- {
40
- padding: 25px 15px;
41
- }
42
-
43
- body > .navbar .brand {
44
- margin-left: 68px;
45
- padding-top: 24px;
46
- font-weight: bold;
47
- text-shadow: 0 1px 0 rgba(255,255,255,.1), 0 0 30px rgba(255,255,255,.125);
48
- -webkit-transition: all .2s linear;
49
- -moz-transition: all .2s linear;
50
- transition: all .2s linear;
51
- }
52
-
53
- /* text align left */
54
- .la { text-align: left; }
55
- /* text align right */
56
- .ra { text-align: right; }
57
- /* text align center */
58
- .ca { text-align: center; }
59
- /* float right */
60
- .fr { float: right; }
61
- /* float left */
62
- .fl { float: left; }
63
-
64
- .gray{
65
- color:#808080 !important;
66
- }
67
-
68
- .stats-grid{
69
- float:left;margin:0 0 20px 20px;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:0 1px 1px rgba(0, 0, 0, 0.075);
70
- }
71
-
72
- .subnav {
73
- height: 36px;
74
- background-color: #EEE;
75
- background-repeat: repeat-x;
76
- background-image: -moz-linear-gradient(top, whiteSmoke 0%, #EEE 100%);
77
- background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, whiteSmoke), color-stop(100%, #EEE));
78
- background-image: -webkit-linear-gradient(top, whiteSmoke 0%, #EEE 100%);
79
- background-image: -ms-linear-gradient(top, whiteSmoke 0%, #EEE 100%);
80
- background-image: -o-linear-gradient(top, whiteSmoke 0%, #EEE 100%);
81
- filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f5f5f5', endColorstr='#eeeeee',GradientType=0 );
82
- background-image: linear-gradient(top, whiteSmoke 0%, #EEE 100%);
83
- border: 1px solid #E5E5E5;
84
- -webkit-border-radius: 4px;
85
- -moz-border-radius: 4px;
86
- border-radius: 4px;
87
- }
88
- .subnav ul { margin-top: 7px;margin-bottom: 0;}
89
- .subnav ul li { list-style-type: none; margin: 0; display: inline-block;}
90
- .subnav ul a { display: inline-block; padding: 2px 8px; font-size: 11px;
91
- font-weight: bold; text-decoration: none; color: #666;border: 1px solid transparent;
92
- border-radius: 10px;
93
- }
94
-
95
- /* Website specific bootstrap customizations */
96
- @media (max-width: 978px){
97
- .hero-unit{
98
- padding-left: 0;
99
- padding-right: 0;
100
- margin-left: -20px;
101
- margin-right: -20px;
102
- }
103
- }
104
- .hero-unit{
105
- padding-bottom: 0;
106
- overflow: auto;
107
- color: #fff;
108
- background-color: #005375;
109
- margin-top: -20px;
110
- margin-bottom: 0px;
111
- text-align: center;
112
- border-radius: 0;
113
- }
114
- .hero-unit .carousel-inner>.item>img {
115
- max-height: 320px;
116
- margin-left: auto;
117
- margin-right: auto;
118
- }
119
-
120
- #content h3.tagline{ padding-top: 3px; }
121
-
122
- .site-description{
123
- text-align: center;
124
- margin-bottom: 50px;
125
- }
126
-
127
- .site-description h4{
128
- font-weight: normal;
129
- }
130
-
131
- #latest-news{
132
- background-color: #758289;
133
- padding-bottom: 50px;
134
- }
135
-
136
- .latest-news{
137
- padding: 10px;
138
- border: 1px solid #333;
139
- text-align: center;
140
- background-color: #f9f9f9;
141
- }
142
-
143
- #content h1 {
144
- padding-top: 30px;
145
- padding-bottom: 9px;
146
- margin: 20px 0 30px;
147
- border-bottom: 1px solid #EEE;
148
- }
149
-
150
- #content h2 {
151
- padding-top: 25px;
152
- padding-bottom: 9px;
153
- margin: 20px 0 8px;
154
- border-bottom: 1px solid #EEE;
155
- }
156
- #content h3 {
157
- padding-top: 8px;
158
- padding-bottom: 9px;
159
- margin: 0 0 10px;
160
- }
161
-
162
- .homepage-img {
163
- display: block;
164
- margin: 30px auto;
165
- max-height: 80px;
166
- }
167
-
168
- .homepage-primary-img{
169
- max-height: 320px;
170
- }
171
-
172
- .center{
173
- text-align: center;
174
- }
175
-
176
- .footer{
177
- background-color: #f2f2f2;
178
- margin-top: -80px;
179
- height: 80px;
180
- font-size: 11px;
181
- color: #888;
182
- text-align: center;
183
- }
184
- .footer a {
185
- color: #6AF;
186
- }
187
-
188
- .nav .dropdown-toggle .caret {
189
- border-bottom-color: #999999;
190
- border-top-color: #999999;
191
- }
192
-
193
- .nav .dropdown-toggle:hover .caret {
194
- border-bottom-color: #FFFFFF;
195
- border-top-color: #FFFFFF;
196
- }
197
-
198
- .footnote {
199
- color: #cd5c5c;
200
- font-weight: bold
201
- }
202
-
203
- .social-buttons {
204
- margin-left: -125px;
205
- }
206
-
207
- .social-buttons li {
208
- display: inline-block;
209
- padding: 5px 8px;
210
- line-height: 1;
211
- }
212
-
213
- .version-marker{
214
- position: absolute;
215
- margin-top: -15px;
216
- }
217
- .version-marker p{
218
- background-color: #fafafa;
219
- padding: 0 5px;
220
- text-shadow: 0 1px 0 #fff;
221
- font-weight: bold;
222
- font-size: 11px;
223
- color: #555;
224
- border-radius: 3px;
225
- }
226
-
227
- #doc h2 img{
228
- max-width: 60px;
229
- background-color: #f2f2f2;
230
- border: 1px solid #ccc;
231
- border-radius: 3px;
232
- }
233
-
234
- #doc img{
235
- padding: 5px;
236
- margin: 5px 0;
237
- background-color: #f2f2f2;
238
- border: 1px solid #ccc;
239
- border-radius: 3px;
240
- }
241
-
242
- #doc .pull-left img{
243
- margin-right: 8px;
244
- }
245
-
246
- #doc .pull-right img{
247
- margin-left: 8px;
248
- }
249
-
250
- .learn-more #doc img{
251
- max-height: 25px;
252
- margin-left: 15px;
253
- }
254
-
255
- #doc a{color: #0088cc;}
256
-
257
- .carousel-caption {
258
- position: relative;
259
- background: none;
260
- min-height: 70px;
261
- }
262
-
263
- iframe:not([allowtransparency]){
264
- background-image: url('/static/images/spinner.gif');
265
- background-repeat: no-repeat;
266
- background-position: center center;
267
- }
268
-
269
- #home {
270
- background: url(/static/images/home.jpg) 50% 0 fixed;
271
- height: 100%;
272
- margin: 0 auto;
273
- width: 100%;
274
- position: relative;
275
- padding: 50px 0;
276
- }
277
-
278
- .quickstart_os:not(.quickstart_os_none) {
279
- display: none;
280
- }
281
-
282
- .modal-youtube {
283
- width: 700px;
284
- margin-left:-320px;
285
- }
@@ -1,60 +0,0 @@
1
- .highlight { background: #ffffff; }
2
- .highlight .c { color: #999988; font-style: italic } /* Comment */
3
- .highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */
4
- .highlight .k { color: #195f91; } /* Keyword */
5
- .highlight .o { color: #93a1a1; } /* Operator */
6
- .highlight .cm { color: #999988; font-style: italic } /* Comment.Multiline */
7
- .highlight .cp { color: #999999; font-weight: bold } /* Comment.Preproc */
8
- .highlight .c1 { color: #999988; font-style: italic } /* Comment.Single */
9
- .highlight .cs { color: #999999; font-weight: bold; font-style: italic } /* Comment.Special */
10
- .highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
11
- .highlight .gd .x { color: #000000; background-color: #ffaaaa } /* Generic.Deleted.Specific */
12
- .highlight .ge { font-style: italic } /* Generic.Emph */
13
- .highlight .gr { color: #aa0000 } /* Generic.Error */
14
- .highlight .gh { color: #999999 } /* Generic.Heading */
15
- .highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
16
- .highlight .gi .x { color: #000000; background-color: #aaffaa } /* Generic.Inserted.Specific */
17
- .highlight .go { color: #888888 } /* Generic.Output */
18
- .highlight .gp { color: #555555 } /* Generic.Prompt */
19
- .highlight .gs { font-weight: bold } /* Generic.Strong */
20
- .highlight .gu { color: #aaaaaa } /* Generic.Subheading */
21
- .highlight .gt { color: #aa0000 } /* Generic.Traceback */
22
- .highlight .kc { font-weight: bold } /* Keyword.Constant */
23
- .highlight .kd { font-weight: bold } /* Keyword.Declaration */
24
- .highlight .kp { } /* Keyword.Pseudo */
25
- .highlight .kr { font-weight: bold } /* Keyword.Reserved */
26
- .highlight .kt { color: #445588; font-weight: bold } /* Keyword.Type */
27
- .highlight .m { color: #009999 } /* Literal.Number */
28
- .highlight .s { color: #d14 } /* Literal.String */
29
- .highlight .na { color: #008080 } /* Name.Attribute */
30
- .highlight .nb { color: #195F91 } /* Name.Builtin */
31
- .highlight .nc { color: #CB4B16 } /* Name.Class */
32
- .highlight .no { color: #CB4B16 } /* Name.Constant */
33
- .highlight .ni { color: #800080 } /* Name.Entity */
34
- .highlight .ne { color: #990000; font-weight: bold } /* Name.Exception */
35
- .highlight .nf { color: #444444 } /* Name.Function */
36
- .highlight .nn { color: #555555 } /* Name.Namespace */
37
- .highlight .nt { color: #000080 } /* Name.Tag */
38
- .highlight .nv { color: #008080 } /* Name.Variable */
39
- .highlight .ow { font-weight: bold } /* Operator.Word */
40
- .highlight .w { color: #bbbbbb } /* Text.Whitespace */
41
- .highlight .mf { color: #009999 } /* Literal.Number.Float */
42
- .highlight .mh { color: #009999 } /* Literal.Number.Hex */
43
- .highlight .mi { color: #009999 } /* Literal.Number.Integer */
44
- .highlight .mo { color: #009999 } /* Literal.Number.Oct */
45
- .highlight .sb { color: #d14 } /* Literal.String.Backtick */
46
- .highlight .sc { color: #d14 } /* Literal.String.Char */
47
- .highlight .sd { color: #d14 } /* Literal.String.Doc */
48
- .highlight .s2 { color: #268bd2 } /* Literal.String.Double */
49
- .highlight .se { color: #d14 } /* Literal.String.Escape */
50
- .highlight .sh { color: #d14 } /* Literal.String.Heredoc */
51
- .highlight .si { color: #d14 } /* Literal.String.Interpol */
52
- .highlight .sx { color: #d14 } /* Literal.String.Other */
53
- .highlight .sr { color: #009926 } /* Literal.String.Regex */
54
- .highlight .s1 { color: #268bd2 } /* Literal.String.Single */
55
- .highlight .ss { color: #444 } /* Literal.String.Symbol */
56
- .highlight .bp { color: #999999 } /* Name.Builtin.Pseudo */
57
- .highlight .vc { color: #008080 } /* Name.Variable.Class */
58
- .highlight .vg { color: #008080 } /* Name.Variable.Global */
59
- .highlight .vi { color: #008080 } /* Name.Variable.Instance */
60
- .highlight .il { color: #009999 } /* Literal.Number.Integer.Long */