facter 2.1.0-x64-mingw32

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of facter might be problematic. Click here for more details.

Files changed (440) hide show
  1. checksums.yaml +7 -0
  2. data/COMMITTERS.md +194 -0
  3. data/CONTRIBUTING.md +65 -0
  4. data/Gemfile +53 -0
  5. data/LICENSE +15 -0
  6. data/README.md +33 -0
  7. data/Rakefile +79 -0
  8. data/bin/facter +20 -0
  9. data/etc/facter.conf +5 -0
  10. data/ext/build_defaults.yaml +24 -0
  11. data/ext/debian/changelog.erb +59 -0
  12. data/ext/debian/compat +1 -0
  13. data/ext/debian/control +14 -0
  14. data/ext/debian/copyright +19 -0
  15. data/ext/debian/docs +1 -0
  16. data/ext/debian/lintian-overrides +0 -0
  17. data/ext/debian/rules +10 -0
  18. data/ext/debian/source/format +1 -0
  19. data/ext/facter-diff +74 -0
  20. data/ext/ips/facter.p5m.erb +10 -0
  21. data/ext/ips/rules +7 -0
  22. data/ext/ips/transforms +18 -0
  23. data/ext/osx/file_mapping.yaml +27 -0
  24. data/ext/osx/preflight.erb +33 -0
  25. data/ext/osx/prototype.plist.erb +38 -0
  26. data/ext/project_data.yaml +36 -0
  27. data/ext/redhat/facter.spec.erb +220 -0
  28. data/ext/solaris/pkginfo +7 -0
  29. data/install.rb +380 -0
  30. data/lib/facter.rb +261 -0
  31. data/lib/facter/Cfkey.rb +42 -0
  32. data/lib/facter/application.rb +204 -0
  33. data/lib/facter/architecture.rb +50 -0
  34. data/lib/facter/augeasversion.rb +28 -0
  35. data/lib/facter/blockdevices.rb +105 -0
  36. data/lib/facter/core/aggregate.rb +220 -0
  37. data/lib/facter/core/directed_graph.rb +46 -0
  38. data/lib/facter/core/execution.rb +123 -0
  39. data/lib/facter/core/execution/base.rb +81 -0
  40. data/lib/facter/core/execution/posix.rb +50 -0
  41. data/lib/facter/core/execution/windows.rb +57 -0
  42. data/lib/facter/core/logging.rb +169 -0
  43. data/lib/facter/core/resolvable.rb +94 -0
  44. data/lib/facter/core/suitable.rb +113 -0
  45. data/lib/facter/dhcp_servers.rb +39 -0
  46. data/lib/facter/domain.rb +99 -0
  47. data/lib/facter/ec2.rb +44 -0
  48. data/lib/facter/ec2/rest.rb +130 -0
  49. data/lib/facter/facterversion.rb +15 -0
  50. data/lib/facter/filesystems.rb +38 -0
  51. data/lib/facter/fqdn.rb +24 -0
  52. data/lib/facter/gce.rb +16 -0
  53. data/lib/facter/gce/metadata.rb +87 -0
  54. data/lib/facter/hardwareisa.rb +20 -0
  55. data/lib/facter/hardwaremodel.rb +67 -0
  56. data/lib/facter/hostname.rb +31 -0
  57. data/lib/facter/id.rb +21 -0
  58. data/lib/facter/interfaces.rb +46 -0
  59. data/lib/facter/ipaddress.rb +171 -0
  60. data/lib/facter/ipaddress6.rb +82 -0
  61. data/lib/facter/iphostnumber.rb +29 -0
  62. data/lib/facter/kernel.rb +22 -0
  63. data/lib/facter/kernelmajversion.rb +23 -0
  64. data/lib/facter/kernelrelease.rb +50 -0
  65. data/lib/facter/kernelversion.rb +22 -0
  66. data/lib/facter/ldom.rb +47 -0
  67. data/lib/facter/lsbdistcodename.rb +16 -0
  68. data/lib/facter/lsbdistdescription.rb +25 -0
  69. data/lib/facter/lsbdistid.rb +16 -0
  70. data/lib/facter/lsbdistrelease.rb +16 -0
  71. data/lib/facter/lsbmajdistrelease.rb +27 -0
  72. data/lib/facter/lsbrelease.rb +16 -0
  73. data/lib/facter/macaddress.rb +97 -0
  74. data/lib/facter/macosx.rb +56 -0
  75. data/lib/facter/manufacturer.rb +68 -0
  76. data/lib/facter/memory.rb +168 -0
  77. data/lib/facter/netmask.rb +42 -0
  78. data/lib/facter/network.rb +20 -0
  79. data/lib/facter/operatingsystem.rb +141 -0
  80. data/lib/facter/operatingsystemmajrelease.rb +47 -0
  81. data/lib/facter/operatingsystemrelease.rb +250 -0
  82. data/lib/facter/osfamily.rb +37 -0
  83. data/lib/facter/partitions.rb +35 -0
  84. data/lib/facter/path.rb +14 -0
  85. data/lib/facter/physicalprocessorcount.rb +91 -0
  86. data/lib/facter/processor.rb +168 -0
  87. data/lib/facter/ps.rb +30 -0
  88. data/lib/facter/puppetversion.rb +20 -0
  89. data/lib/facter/rubysitedir.rb +12 -0
  90. data/lib/facter/rubyversion.rb +12 -0
  91. data/lib/facter/selinux.rb +99 -0
  92. data/lib/facter/ssh.rb +72 -0
  93. data/lib/facter/timezone.rb +14 -0
  94. data/lib/facter/uniqueid.rb +4 -0
  95. data/lib/facter/uptime.rb +34 -0
  96. data/lib/facter/uptime_days.rb +15 -0
  97. data/lib/facter/uptime_hours.rb +15 -0
  98. data/lib/facter/uptime_seconds.rb +24 -0
  99. data/lib/facter/util/architecture.rb +19 -0
  100. data/lib/facter/util/collection.rb +161 -0
  101. data/lib/facter/util/composite_loader.rb +12 -0
  102. data/lib/facter/util/config.rb +63 -0
  103. data/lib/facter/util/confine.rb +66 -0
  104. data/lib/facter/util/dhcp_servers.rb +43 -0
  105. data/lib/facter/util/directory_loader.rb +83 -0
  106. data/lib/facter/util/ec2.rb +106 -0
  107. data/lib/facter/util/fact.rb +204 -0
  108. data/lib/facter/util/file_read.rb +37 -0
  109. data/lib/facter/util/formatter.rb +39 -0
  110. data/lib/facter/util/ip.rb +285 -0
  111. data/lib/facter/util/ip/windows.rb +215 -0
  112. data/lib/facter/util/loader.rb +155 -0
  113. data/lib/facter/util/macaddress.rb +43 -0
  114. data/lib/facter/util/macosx.rb +73 -0
  115. data/lib/facter/util/manufacturer.rb +99 -0
  116. data/lib/facter/util/memory.rb +228 -0
  117. data/lib/facter/util/netmask.rb +40 -0
  118. data/lib/facter/util/normalization.rb +94 -0
  119. data/lib/facter/util/nothing_loader.rb +12 -0
  120. data/lib/facter/util/operatingsystem.rb +21 -0
  121. data/lib/facter/util/parser.rb +158 -0
  122. data/lib/facter/util/partitions.rb +41 -0
  123. data/lib/facter/util/partitions/linux.rb +65 -0
  124. data/lib/facter/util/plist.rb +24 -0
  125. data/lib/facter/util/plist/generator.rb +228 -0
  126. data/lib/facter/util/plist/parser.rb +226 -0
  127. data/lib/facter/util/posix.rb +16 -0
  128. data/lib/facter/util/processor.rb +289 -0
  129. data/lib/facter/util/registry.rb +11 -0
  130. data/lib/facter/util/resolution.rb +160 -0
  131. data/lib/facter/util/solaris_zones.rb +158 -0
  132. data/lib/facter/util/unix_root.rb +5 -0
  133. data/lib/facter/util/uptime.rb +81 -0
  134. data/lib/facter/util/values.rb +109 -0
  135. data/lib/facter/util/virtual.rb +180 -0
  136. data/lib/facter/util/vlans.rb +21 -0
  137. data/lib/facter/util/windows_root.rb +7 -0
  138. data/lib/facter/util/wmi.rb +16 -0
  139. data/lib/facter/util/xendomains.rb +10 -0
  140. data/lib/facter/version.rb +86 -0
  141. data/lib/facter/virtual.rb +311 -0
  142. data/lib/facter/vlans.rb +17 -0
  143. data/lib/facter/xendomains.rb +20 -0
  144. data/lib/facter/zfs_version.rb +10 -0
  145. data/lib/facter/zonename.rb +6 -0
  146. data/lib/facter/zones.rb +17 -0
  147. data/lib/facter/zpool_version.rb +10 -0
  148. data/spec/fixtures/cpuinfo/amd64dual +57 -0
  149. data/spec/fixtures/cpuinfo/amd64quad +79 -0
  150. data/spec/fixtures/cpuinfo/amd64solo +23 -0
  151. data/spec/fixtures/cpuinfo/amd64tri +86 -0
  152. data/spec/fixtures/cpuinfo/amd64twentyfour +600 -0
  153. data/spec/fixtures/cpuinfo/bbg3-armel +12 -0
  154. data/spec/fixtures/cpuinfo/beaglexm-armel +12 -0
  155. data/spec/fixtures/cpuinfo/panda-armel +17 -0
  156. data/spec/fixtures/cpuinfo/ppc64 +19 -0
  157. data/spec/fixtures/cpuinfo/sparc +10 -0
  158. data/spec/fixtures/hpux/machinfo/hppa-rp4440 +26 -0
  159. data/spec/fixtures/hpux/machinfo/ia64-rx2620 +49 -0
  160. data/spec/fixtures/hpux/machinfo/ia64-rx6600 +26 -0
  161. data/spec/fixtures/hpux/machinfo/ia64-rx8640 +53 -0
  162. data/spec/fixtures/hpux/machinfo/superdome-server-SD32B +53 -0
  163. data/spec/fixtures/hpux/machinfo/superdome2-16s +31 -0
  164. data/spec/fixtures/hpux/sched.models +174 -0
  165. data/spec/fixtures/hpux/unistd.h +1534 -0
  166. data/spec/fixtures/ifconfig/bsd_ifconfig_all_with_multiple_interfaces +18 -0
  167. data/spec/fixtures/ifconfig/centos_5_5 +17 -0
  168. data/spec/fixtures/ifconfig/centos_5_5_eth0 +8 -0
  169. data/spec/fixtures/ifconfig/darwin_10_3_0 +26 -0
  170. data/spec/fixtures/ifconfig/darwin_10_3_0_en0 +6 -0
  171. data/spec/fixtures/ifconfig/darwin_10_6_4 +28 -0
  172. data/spec/fixtures/ifconfig/darwin_10_6_4_en1 +6 -0
  173. data/spec/fixtures/ifconfig/darwin_10_6_6_dualstack +8 -0
  174. data/spec/fixtures/ifconfig/darwin_10_6_6_dualstack_en1 +7 -0
  175. data/spec/fixtures/ifconfig/darwin_9_8_0 +26 -0
  176. data/spec/fixtures/ifconfig/darwin_9_8_0_en0 +6 -0
  177. data/spec/fixtures/ifconfig/darwin_ifconfig_all_with_multiple_interfaces +23 -0
  178. data/spec/fixtures/ifconfig/fedora_10 +36 -0
  179. data/spec/fixtures/ifconfig/fedora_10_eth0 +9 -0
  180. data/spec/fixtures/ifconfig/fedora_13 +18 -0
  181. data/spec/fixtures/ifconfig/fedora_13_eth0 +9 -0
  182. data/spec/fixtures/ifconfig/fedora_8 +38 -0
  183. data/spec/fixtures/ifconfig/fedora_8_eth0 +9 -0
  184. data/spec/fixtures/ifconfig/freebsd_6_0 +12 -0
  185. data/spec/fixtures/ifconfig/ifconfig_net_tools_1.60.txt +19 -0
  186. data/spec/fixtures/ifconfig/ifconfig_ubuntu_1204.txt +16 -0
  187. data/spec/fixtures/ifconfig/linux_ifconfig_all_with_multiple_interfaces +19 -0
  188. data/spec/fixtures/ifconfig/linux_ifconfig_no_addr +19 -0
  189. data/spec/fixtures/ifconfig/linux_ifconfig_no_mac +8 -0
  190. data/spec/fixtures/ifconfig/linux_ifconfig_venet +24 -0
  191. data/spec/fixtures/ifconfig/open_solaris_10 +12 -0
  192. data/spec/fixtures/ifconfig/open_solaris_b132 +20 -0
  193. data/spec/fixtures/ifconfig/openbsd_bridge_rules +11 -0
  194. data/spec/fixtures/ifconfig/sunos_ifconfig_all_with_multiple_interfaces +10 -0
  195. data/spec/fixtures/ifconfig/ubuntu_7_04 +38 -0
  196. data/spec/fixtures/ifconfig/ubuntu_7_04_eth0 +9 -0
  197. data/spec/fixtures/ldom/ldom_v1 +6 -0
  198. data/spec/fixtures/netstat/centos_5_5 +5 -0
  199. data/spec/fixtures/netstat/darwin_10_3_0 +35 -0
  200. data/spec/fixtures/netstat/darwin_10_6_4 +29 -0
  201. data/spec/fixtures/netstat/darwin_10_6_6_dualstack +34 -0
  202. data/spec/fixtures/netstat/darwin_9_8_0 +28 -0
  203. data/spec/fixtures/netstat/fedora_10 +7 -0
  204. data/spec/fixtures/netstat/open_solaris_10 +16 -0
  205. data/spec/fixtures/netstat/open_solaris_b132 +17 -0
  206. data/spec/fixtures/netstat/ubuntu_7_04 +7 -0
  207. data/spec/fixtures/processorcount/solaris-psrinfo +24 -0
  208. data/spec/fixtures/processorcount/solaris-sparc-kstat-cpu-info +1216 -0
  209. data/spec/fixtures/processorcount/solaris-x86_64-kstat-cpu-info +225 -0
  210. data/spec/fixtures/unit/dhcp_servers/nmcli_devices +4 -0
  211. data/spec/fixtures/unit/dhcp_servers/nmcli_devices_disconnected +4 -0
  212. data/spec/fixtures/unit/dhcp_servers/nmcli_eth0_dhcp +36 -0
  213. data/spec/fixtures/unit/dhcp_servers/nmcli_eth0_static +24 -0
  214. data/spec/fixtures/unit/dhcp_servers/nmcli_wlan0_dhcp +49 -0
  215. data/spec/fixtures/unit/dhcp_servers/nmcli_wlan0_static +37 -0
  216. data/spec/fixtures/unit/dhcp_servers/route +3 -0
  217. data/spec/fixtures/unit/dhcp_servers/route_nogw +1 -0
  218. data/spec/fixtures/unit/ec2/rest/meta-data/root +20 -0
  219. data/spec/fixtures/unit/filesystems/linux +28 -0
  220. data/spec/fixtures/unit/gce/metadata/metadata.json +69 -0
  221. data/spec/fixtures/unit/interfaces/ifconfig_net_tools_1.60.txt +19 -0
  222. data/spec/fixtures/unit/interfaces/ifconfig_net_tools_1.60.txt.em1 +10 -0
  223. data/spec/fixtures/unit/interfaces/ifconfig_net_tools_1.60.txt.lo +8 -0
  224. data/spec/fixtures/unit/ipaddress/ifconfig_multiple_127_addresses.txt +20 -0
  225. data/spec/fixtures/unit/ipaddress/ifconfig_net_tools_1.60.txt +19 -0
  226. data/spec/fixtures/unit/ipaddress/ifconfig_non_english_locale.txt +18 -0
  227. data/spec/fixtures/unit/ipaddress/ifconfig_ubuntu_1204.txt +16 -0
  228. data/spec/fixtures/unit/kernelrelease/openbsd-5.3 +2 -0
  229. data/spec/fixtures/unit/kernelrelease/openbsd-5.3-current +3 -0
  230. data/spec/fixtures/unit/memory/aix-svmon +9 -0
  231. data/spec/fixtures/unit/memory/aix-swap_l +2 -0
  232. data/spec/fixtures/unit/memory/darwin-swapinfo-multiple +3 -0
  233. data/spec/fixtures/unit/memory/darwin-swapinfo-single +2 -0
  234. data/spec/fixtures/unit/memory/darwin-vm_stat +13 -0
  235. data/spec/fixtures/unit/memory/dragonfly-vmstat +3 -0
  236. data/spec/fixtures/unit/memory/freebsd-vmstat +3 -0
  237. data/spec/fixtures/unit/memory/linux-proc_meminfo +10 -0
  238. data/spec/fixtures/unit/memory/openbsd-vmstat +3 -0
  239. data/spec/fixtures/unit/memory/smartos_zone_swap_l-single +2 -0
  240. data/spec/fixtures/unit/memory/solaris-prtconf +4 -0
  241. data/spec/fixtures/unit/memory/solaris-swap_l-multiple +3 -0
  242. data/spec/fixtures/unit/memory/solaris-swap_l-single +2 -0
  243. data/spec/fixtures/unit/memory/solaris-vmstat +3 -0
  244. data/spec/fixtures/unit/netmask/darwin_10_8_5.txt +30 -0
  245. data/spec/fixtures/unit/netmask/ifconfig_aix_7.txt +3 -0
  246. data/spec/fixtures/unit/netmask/ifconfig_net_tools_1.60.txt +19 -0
  247. data/spec/fixtures/unit/netmask/ifconfig_ubuntu_1204.txt +16 -0
  248. data/spec/fixtures/unit/selinux/selinux_sestatus +6 -0
  249. data/spec/fixtures/unit/util/dhcp_servers/route +3 -0
  250. data/spec/fixtures/unit/util/dhcp_servers/route_nogw +1 -0
  251. data/spec/fixtures/unit/util/ec2/centos-arp-ec2.out +1 -0
  252. data/spec/fixtures/unit/util/ec2/linux-arp-ec2.out +1 -0
  253. data/spec/fixtures/unit/util/ec2/linux-arp-not-ec2.out +5 -0
  254. data/spec/fixtures/unit/util/ec2/solaris8_arp_a_not_ec2.out +7 -0
  255. data/spec/fixtures/unit/util/ec2/windows-2008-arp-a-not-ec2.out +6 -0
  256. data/spec/fixtures/unit/util/ec2/windows-2008-arp-a.out +10 -0
  257. data/spec/fixtures/unit/util/ip/6.0-STABLE_FreeBSD_ifconfig +12 -0
  258. data/spec/fixtures/unit/util/ip/Mac_OS_X_10.5.5_ifconfig +26 -0
  259. data/spec/fixtures/unit/util/ip/darwin_ifconfig_all_with_multiple_interfaces +10 -0
  260. data/spec/fixtures/unit/util/ip/darwin_ifconfig_single_interface +6 -0
  261. data/spec/fixtures/unit/util/ip/debian_kfreebsd_ifconfig +40 -0
  262. data/spec/fixtures/unit/util/ip/hpux_1111_ifconfig_lan0 +2 -0
  263. data/spec/fixtures/unit/util/ip/hpux_1111_ifconfig_lan1 +2 -0
  264. data/spec/fixtures/unit/util/ip/hpux_1111_ifconfig_lo0 +2 -0
  265. data/spec/fixtures/unit/util/ip/hpux_1111_lanscan +5 -0
  266. data/spec/fixtures/unit/util/ip/hpux_1111_netstat_in +4 -0
  267. data/spec/fixtures/unit/util/ip/hpux_1131_asterisk_ifconfig_lan0 +2 -0
  268. data/spec/fixtures/unit/util/ip/hpux_1131_asterisk_ifconfig_lan1 +2 -0
  269. data/spec/fixtures/unit/util/ip/hpux_1131_asterisk_ifconfig_lo0 +2 -0
  270. data/spec/fixtures/unit/util/ip/hpux_1131_asterisk_lanscan +5 -0
  271. data/spec/fixtures/unit/util/ip/hpux_1131_asterisk_netstat_in +4 -0
  272. data/spec/fixtures/unit/util/ip/hpux_1131_ifconfig_lan0 +2 -0
  273. data/spec/fixtures/unit/util/ip/hpux_1131_ifconfig_lan1 +2 -0
  274. data/spec/fixtures/unit/util/ip/hpux_1131_ifconfig_lo0 +2 -0
  275. data/spec/fixtures/unit/util/ip/hpux_1131_lanscan +4 -0
  276. data/spec/fixtures/unit/util/ip/hpux_1131_netstat_in +4 -0
  277. data/spec/fixtures/unit/util/ip/hpux_1131_nic_bonding_ifconfig_lan1 +2 -0
  278. data/spec/fixtures/unit/util/ip/hpux_1131_nic_bonding_ifconfig_lan4 +2 -0
  279. data/spec/fixtures/unit/util/ip/hpux_1131_nic_bonding_ifconfig_lan4_1 +2 -0
  280. data/spec/fixtures/unit/util/ip/hpux_1131_nic_bonding_ifconfig_lo0 +2 -0
  281. data/spec/fixtures/unit/util/ip/hpux_1131_nic_bonding_lanscan +9 -0
  282. data/spec/fixtures/unit/util/ip/hpux_1131_nic_bonding_netstat_in +6 -0
  283. data/spec/fixtures/unit/util/ip/linux_2_6_35_proc_net_bonding_bond0 +19 -0
  284. data/spec/fixtures/unit/util/ip/linux_get_single_interface_eth0 +10 -0
  285. data/spec/fixtures/unit/util/ip/linux_get_single_interface_ib0 +8 -0
  286. data/spec/fixtures/unit/util/ip/linux_get_single_interface_lo +9 -0
  287. data/spec/fixtures/unit/util/ip/linux_ifconfig_all_with_single_interface +18 -0
  288. data/spec/fixtures/unit/util/ip/linux_ifconfig_ib0 +8 -0
  289. data/spec/fixtures/unit/util/ip/solaris_ifconfig_all_with_multiple_interfaces +8 -0
  290. data/spec/fixtures/unit/util/ip/solaris_ifconfig_single_interface +3 -0
  291. data/spec/fixtures/unit/util/ip/windows_netsh_all_interfaces +12 -0
  292. data/spec/fixtures/unit/util/ip/windows_netsh_single_interface +7 -0
  293. data/spec/fixtures/unit/util/ip/windows_netsh_single_interface6 +18 -0
  294. data/spec/fixtures/unit/util/manufacturer/freebsd_dmidecode +42 -0
  295. data/spec/fixtures/unit/util/manufacturer/intel_linux_dmidecode +549 -0
  296. data/spec/fixtures/unit/util/manufacturer/linux_dmidecode_with_spaces +60 -0
  297. data/spec/fixtures/unit/util/manufacturer/opensolaris_smbios +33 -0
  298. data/spec/fixtures/unit/util/manufacturer/smartos_smbios +533 -0
  299. data/spec/fixtures/unit/util/manufacturer/solaris_sunfire_v120_prtdiag +33 -0
  300. data/spec/fixtures/unit/util/manufacturer/solaris_t5220_prtdiag +136 -0
  301. data/spec/fixtures/unit/util/operatingsystem/cumuluslinux.txt +8 -0
  302. data/spec/fixtures/unit/util/operatingsystem/redhat-7.txt +12 -0
  303. data/spec/fixtures/unit/util/operatingsystem/sabayon.txt +7 -0
  304. data/spec/fixtures/unit/util/operatingsystem/wheezy.txt +9 -0
  305. data/spec/fixtures/unit/util/partitions/partitions/mount +9 -0
  306. data/spec/fixtures/unit/util/processor/solaris-i86pc +28 -0
  307. data/spec/fixtures/unit/util/processor/solaris-sun4u +151 -0
  308. data/spec/fixtures/unit/util/processor/x86-pentium2 +41 -0
  309. data/spec/fixtures/unit/util/uptime/kstat_boot_time +1 -0
  310. data/spec/fixtures/unit/util/uptime/sysctl_kern_boottime_darwin +1 -0
  311. data/spec/fixtures/unit/util/uptime/sysctl_kern_boottime_openbsd +1 -0
  312. data/spec/fixtures/unit/util/uptime/ubuntu_proc_uptime +1 -0
  313. data/spec/fixtures/unit/util/virtual/invalid_unicode_dmi_entries +0 -0
  314. data/spec/fixtures/unit/util/virtual/solaris10_proc_self_status1 +0 -0
  315. data/spec/fixtures/unit/util/vlans/centos-5-no-vlans +2 -0
  316. data/spec/fixtures/unit/util/vlans/linux_vlan_config +6 -0
  317. data/spec/fixtures/unit/util/xendomains/xendomains +4 -0
  318. data/spec/fixtures/unit/virtual/sysfs_dmi_entries_raw.txt +0 -0
  319. data/spec/fixtures/unit/zfs_version/freebsd_8.2 +14 -0
  320. data/spec/fixtures/unit/zfs_version/freebsd_9.0 +13 -0
  321. data/spec/fixtures/unit/zfs_version/linux-fuse_0.6.9 +14 -0
  322. data/spec/fixtures/unit/zfs_version/solaris_10 +10 -0
  323. data/spec/fixtures/unit/zfs_version/solaris_11 +12 -0
  324. data/spec/fixtures/unit/zpool_version/freebsd_8.2 +26 -0
  325. data/spec/fixtures/unit/zpool_version/freebsd_9.0 +38 -0
  326. data/spec/fixtures/unit/zpool_version/linux-fuse_0.6.9 +35 -0
  327. data/spec/fixtures/unit/zpool_version/solaris_10 +31 -0
  328. data/spec/fixtures/unit/zpool_version/solaris_11 +43 -0
  329. data/spec/fixtures/virtual/proc_1_cgroup/in_a_container +9 -0
  330. data/spec/fixtures/virtual/proc_1_cgroup/in_a_docker_container +8 -0
  331. data/spec/fixtures/virtual/proc_1_cgroup/not_in_a_container +9 -0
  332. data/spec/fixtures/virtual/proc_self_status/vserver_2_1/guest +37 -0
  333. data/spec/fixtures/virtual/proc_self_status/vserver_2_1/host +36 -0
  334. data/spec/fixtures/virtual/proc_self_status/vserver_2_3/guest +39 -0
  335. data/spec/fixtures/virtual/proc_self_status/vserver_2_3/host +39 -0
  336. data/spec/integration/facter_spec.rb +39 -0
  337. data/spec/lib/facter_spec/cpuinfo.rb +15 -0
  338. data/spec/lib/facter_spec/windows_network.rb +64 -0
  339. data/spec/puppetlabs_spec/files.rb +57 -0
  340. data/spec/puppetlabs_spec/fixtures.rb +49 -0
  341. data/spec/puppetlabs_spec/matchers.rb +87 -0
  342. data/spec/puppetlabs_spec/verbose.rb +9 -0
  343. data/spec/puppetlabs_spec_helper.rb +26 -0
  344. data/spec/shared_contexts/platform.rb +55 -0
  345. data/spec/shared_formats/parses.rb +3 -0
  346. data/spec/spec_helper.rb +75 -0
  347. data/spec/unit/application_spec.rb +101 -0
  348. data/spec/unit/architecture_spec.rb +63 -0
  349. data/spec/unit/blockdevices_spec.rb +109 -0
  350. data/spec/unit/core/aggregate_spec.rb +125 -0
  351. data/spec/unit/core/directed_graph_spec.rb +79 -0
  352. data/spec/unit/core/execution/base_spec.rb +130 -0
  353. data/spec/unit/core/execution/posix_spec.rb +86 -0
  354. data/spec/unit/core/execution/windows_spec.rb +106 -0
  355. data/spec/unit/core/execution_spec.rb +42 -0
  356. data/spec/unit/core/logging_spec.rb +104 -0
  357. data/spec/unit/core/resolvable_spec.rb +81 -0
  358. data/spec/unit/core/suitable_spec.rb +106 -0
  359. data/spec/unit/dhcp_servers_spec.rb +152 -0
  360. data/spec/unit/domain_spec.rb +310 -0
  361. data/spec/unit/ec2/rest_spec.rb +145 -0
  362. data/spec/unit/ec2_spec.rb +127 -0
  363. data/spec/unit/facter_spec.rb +108 -0
  364. data/spec/unit/filesystems_spec.rb +50 -0
  365. data/spec/unit/fqdn_spec.rb +16 -0
  366. data/spec/unit/gce/metadata_spec.rb +49 -0
  367. data/spec/unit/gce_spec.rb +34 -0
  368. data/spec/unit/hardwareisa_spec.rb +41 -0
  369. data/spec/unit/hardwaremodel_spec.rb +56 -0
  370. data/spec/unit/hostname_spec.rb +40 -0
  371. data/spec/unit/id_spec.rb +29 -0
  372. data/spec/unit/interfaces_spec.rb +57 -0
  373. data/spec/unit/ipaddress6_spec.rb +161 -0
  374. data/spec/unit/ipaddress_spec.rb +114 -0
  375. data/spec/unit/kernel_spec.rb +24 -0
  376. data/spec/unit/kernelmajversion_spec.rb +22 -0
  377. data/spec/unit/kernelrelease_spec.rb +69 -0
  378. data/spec/unit/kernelversion_spec.rb +32 -0
  379. data/spec/unit/ldom_spec.rb +75 -0
  380. data/spec/unit/lsbdistcodename_spec.rb +25 -0
  381. data/spec/unit/lsbdistdescription_spec.rb +25 -0
  382. data/spec/unit/lsbdistid_spec.rb +25 -0
  383. data/spec/unit/lsbdistrelease_spec.rb +25 -0
  384. data/spec/unit/lsbmajdistrelease_spec.rb +13 -0
  385. data/spec/unit/lsbrelease_spec.rb +25 -0
  386. data/spec/unit/macaddress_spec.rb +73 -0
  387. data/spec/unit/manufacturer_spec.rb +115 -0
  388. data/spec/unit/memory_spec.rb +470 -0
  389. data/spec/unit/netmask_spec.rb +106 -0
  390. data/spec/unit/operatingsystem_spec.rb +160 -0
  391. data/spec/unit/operatingsystemmajrelease_spec.rb +38 -0
  392. data/spec/unit/operatingsystemrelease_spec.rb +236 -0
  393. data/spec/unit/osfamily_spec.rb +62 -0
  394. data/spec/unit/partitions_spec.rb +48 -0
  395. data/spec/unit/physicalprocessorcount_spec.rb +85 -0
  396. data/spec/unit/processor_spec.rb +401 -0
  397. data/spec/unit/ps_spec.rb +42 -0
  398. data/spec/unit/selinux_spec.rb +114 -0
  399. data/spec/unit/ssh_spec.rb +77 -0
  400. data/spec/unit/uniqueid_spec.rb +27 -0
  401. data/spec/unit/uptime_spec.rb +110 -0
  402. data/spec/unit/util/collection_spec.rb +258 -0
  403. data/spec/unit/util/config_spec.rb +97 -0
  404. data/spec/unit/util/confine_spec.rb +148 -0
  405. data/spec/unit/util/dhcp_servers_spec.rb +63 -0
  406. data/spec/unit/util/directory_loader_spec.rb +88 -0
  407. data/spec/unit/util/ec2_spec.rb +184 -0
  408. data/spec/unit/util/fact_spec.rb +142 -0
  409. data/spec/unit/util/file_read_spec.rb +29 -0
  410. data/spec/unit/util/formatter_spec.rb +50 -0
  411. data/spec/unit/util/ip/windows_spec.rb +80 -0
  412. data/spec/unit/util/ip_spec.rb +467 -0
  413. data/spec/unit/util/loader_spec.rb +286 -0
  414. data/spec/unit/util/macaddress_spec.rb +141 -0
  415. data/spec/unit/util/macosx_spec.rb +114 -0
  416. data/spec/unit/util/manufacturer_spec.rb +223 -0
  417. data/spec/unit/util/normalization_spec.rb +113 -0
  418. data/spec/unit/util/operatingsystem_spec.rb +92 -0
  419. data/spec/unit/util/parser_spec.rb +200 -0
  420. data/spec/unit/util/partitions/partitions_spec.rb +67 -0
  421. data/spec/unit/util/partitions_spec.rb +19 -0
  422. data/spec/unit/util/posix_spec.rb +11 -0
  423. data/spec/unit/util/processor_spec.rb +92 -0
  424. data/spec/unit/util/registry_spec.rb +76 -0
  425. data/spec/unit/util/resolution_spec.rb +129 -0
  426. data/spec/unit/util/solaris_zones_spec.rb +127 -0
  427. data/spec/unit/util/uptime_spec.rb +126 -0
  428. data/spec/unit/util/values_spec.rb +171 -0
  429. data/spec/unit/util/virtual_spec.rb +364 -0
  430. data/spec/unit/util/vlans_spec.rb +42 -0
  431. data/spec/unit/util/wmi_spec.rb +19 -0
  432. data/spec/unit/util/xendomains_spec.rb +21 -0
  433. data/spec/unit/version_spec.rb +42 -0
  434. data/spec/unit/virtual_spec.rb +519 -0
  435. data/spec/unit/zfs_version_spec.rb +75 -0
  436. data/spec/unit/zonename_spec.rb +14 -0
  437. data/spec/unit/zones_spec.rb +55 -0
  438. data/spec/unit/zpool_version_spec.rb +75 -0
  439. data/spec/watchr.rb +125 -0
  440. metadata +815 -0
@@ -0,0 +1,46 @@
1
+ require 'set'
2
+ require 'tsort'
3
+
4
+ module Facter
5
+ module Core
6
+ class DirectedGraph < Hash
7
+ include TSort
8
+
9
+ def acyclic?
10
+ cycles.empty?
11
+ end
12
+
13
+ def cycles
14
+ cycles = []
15
+ each_strongly_connected_component do |component|
16
+ cycles << component if component.size > 1
17
+ end
18
+ cycles
19
+ end
20
+
21
+ alias tsort_each_node each_key
22
+
23
+ def tsort_each_child(node)
24
+ fetch(node, []).each do |child|
25
+ yield child
26
+ end
27
+ end
28
+
29
+ def tsort
30
+ missing = Set.new(self.values.flatten) - Set.new(self.keys)
31
+
32
+ if not missing.empty?
33
+ raise MissingVertex, "Cannot sort elements; cannot depend on missing elements #{missing.to_a}"
34
+ end
35
+
36
+ super
37
+
38
+ rescue TSort::Cyclic
39
+ raise CycleError, "Cannot sort elements; found the following cycles: #{cycles.inspect}"
40
+ end
41
+
42
+ class CycleError < StandardError; end
43
+ class MissingVertex < StandardError; end
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,123 @@
1
+ require 'facter/util/config'
2
+
3
+ module Facter
4
+ module Core
5
+ module Execution
6
+
7
+ require 'facter/core/execution/base'
8
+ require 'facter/core/execution/windows'
9
+ require 'facter/core/execution/posix'
10
+
11
+ @@impl = if Facter::Util::Config.is_windows?
12
+ Facter::Core::Execution::Windows.new
13
+ else
14
+ Facter::Core::Execution::Posix.new
15
+ end
16
+
17
+ def self.impl
18
+ @@impl
19
+ end
20
+
21
+ module_function
22
+
23
+ # Returns the locations to be searched when looking for a binary. This
24
+ # is currently determined by the +PATH+ environment variable plus
25
+ # `/sbin` and `/usr/sbin` when run on unix
26
+ #
27
+ # @return [Array<String>] the paths to be searched for binaries
28
+ # @api private
29
+ def search_paths
30
+ @@impl.search_paths
31
+ end
32
+
33
+ # Determines the full path to a binary. If the supplied filename does not
34
+ # already describe an absolute path then different locations (determined
35
+ # by {search_paths}) will be searched for a match.
36
+ #
37
+ # Returns nil if no matching executable can be found otherwise returns
38
+ # the expanded pathname.
39
+ #
40
+ # @param bin [String] the executable to locate
41
+ # @return [String,nil] the full path to the executable or nil if not
42
+ # found
43
+ #
44
+ # @api public
45
+ def which(bin)
46
+ @@impl.which(bin)
47
+ end
48
+
49
+ # Determine in a platform-specific way whether a path is absolute. This
50
+ # defaults to the local platform if none is specified.
51
+ #
52
+ # @param path [String] the path to check
53
+ # @param platform [:posix,:windows,nil] the platform logic to use
54
+ def absolute_path?(path, platform = nil)
55
+ @@impl.absolute_path?(path, platform)
56
+ end
57
+
58
+ # Given a command line, this returns the command line with the
59
+ # executable written as an absolute path. If the executable contains
60
+ # spaces, it has be put in double quotes to be properly recognized.
61
+ #
62
+ # @param command [String] the command line
63
+ #
64
+ # @return [String, nil] the command line with the executable's path
65
+ # expanded, or nil if the executable cannot be found.
66
+ def expand_command(command)
67
+ @@impl.expand_command(command)
68
+ end
69
+
70
+ # Overrides environment variables within a block of code. The
71
+ # specified values will be set for the duration of the block, after
72
+ # which the original values (if any) will be restored.
73
+ #
74
+ # @overload with_env(values, { || ... })
75
+ #
76
+ # @param values [Hash<String=>String>] A hash of the environment
77
+ # variables to override
78
+ #
79
+ # @return [void]
80
+ #
81
+ # @api public
82
+ def with_env(values, &block)
83
+ @@impl.with_env(values, &block)
84
+ end
85
+
86
+ # Try to execute a command and return the output.
87
+ #
88
+ # @param code [String] the program to run
89
+ #
90
+ # @return [String] the output of the program, or nil if the command does
91
+ # not exist or could not be executed.
92
+ #
93
+ # @deprecated Use #{execute} instead
94
+ # @api public
95
+ def exec(command)
96
+ @@impl.execute(command, :on_fail => nil)
97
+ end
98
+
99
+ # Execute a command and return the output of that program.
100
+ #
101
+ # @param code [String] the program to run
102
+ # @param options [Hash]
103
+ #
104
+ # @option options [Object] :on_fail How to behave when the command could
105
+ # not be run. Specifying :raise will raise an error, anything else will
106
+ # return that object on failure. Default is :raise.
107
+ #
108
+ # @raise [Facter::Core::Execution::ExecutionFailure] If the command does
109
+ # not exist or could not be executed.
110
+ #
111
+ # @return [String] the output of the program, or the value of :on_fail if
112
+ # command execution failed and :on_fail was specified.
113
+ #
114
+ # @api public
115
+ # @since 2.0.1
116
+ def execute(command, options = {})
117
+ @@impl.execute(command, options)
118
+ end
119
+
120
+ class ExecutionFailure < StandardError; end
121
+ end
122
+ end
123
+ end
@@ -0,0 +1,81 @@
1
+ class Facter::Core::Execution::Base
2
+
3
+ def with_env(values)
4
+ old = {}
5
+ values.each do |var, value|
6
+ # save the old value if it exists
7
+ if old_val = ENV[var]
8
+ old[var] = old_val
9
+ end
10
+ # set the new (temporary) value for the environment variable
11
+ ENV[var] = value
12
+ end
13
+ # execute the caller's block, capture the return value
14
+ rv = yield
15
+ # use an ensure block to make absolutely sure we restore the variables
16
+ ensure
17
+ # restore the old values
18
+ values.each do |var, value|
19
+ if old.include?(var)
20
+ ENV[var] = old[var]
21
+ else
22
+ # if there was no old value, delete the key from the current environment variables hash
23
+ ENV.delete(var)
24
+ end
25
+ end
26
+ # return the captured return value
27
+ rv
28
+ end
29
+
30
+ def execute(command, options = {})
31
+
32
+ on_fail = options.fetch(:on_fail, :raise)
33
+
34
+ # Set LC_ALL and LANG to force i18n to C for the duration of this exec; this ensures that any code that parses the
35
+ # output of the command can expect it to be in a consistent / predictable format / locale
36
+ with_env 'LC_ALL' => 'C', 'LANG' => 'C' do
37
+
38
+ expanded_command = expand_command(command)
39
+
40
+ if expanded_command.nil?
41
+ if on_fail == :raise
42
+ raise Facter::Core::Execution::ExecutionFailure.new, "Could not execute '#{command}': command not found"
43
+ else
44
+ return on_fail
45
+ end
46
+ end
47
+
48
+ out = ''
49
+
50
+ begin
51
+ wait_for_child = true
52
+ out = %x{#{expanded_command}}.chomp
53
+ wait_for_child = false
54
+ rescue => detail
55
+ if on_fail == :raise
56
+ raise Facter::Core::Execution::ExecutionFailure.new, "Failed while executing '#{expanded_command}': #{detail.message}"
57
+ else
58
+ return on_fail
59
+ end
60
+ ensure
61
+ if wait_for_child
62
+ # We need to ensure that if this command exits early then any spawned
63
+ # children will be reaped. Process execution is frequently
64
+ # terminated using Timeout.timeout but since the timeout isn't in
65
+ # this scope we can't rescue the raised exception. The best that
66
+ # we can do is determine if the child has exited, and if it hasn't
67
+ # then we need to spawn a thread to wait for the child.
68
+ #
69
+ # Due to the limitations of Ruby 1.8 there aren't good ways to
70
+ # asynchronously run a command and grab the PID of that command
71
+ # using the standard library. The best we can do is blindly wait
72
+ # on all processes and hope for the best. This issue is described
73
+ # at https://tickets.puppetlabs.com/browse/FACT-150
74
+ Thread.new { Process.waitall }
75
+ end
76
+ end
77
+
78
+ out
79
+ end
80
+ end
81
+ end
@@ -0,0 +1,50 @@
1
+ class Facter::Core::Execution::Posix < Facter::Core::Execution::Base
2
+
3
+ DEFAULT_SEARCH_PATHS = ['/sbin', '/usr/sbin']
4
+
5
+ def search_paths
6
+ # Make sure facter is usable even for non-root users. Most commands
7
+ # in /sbin (like ifconfig) can be run as non privileged users as
8
+ # long as they do not modify anything - which we do not do with facter
9
+ ENV['PATH'].split(File::PATH_SEPARATOR) + DEFAULT_SEARCH_PATHS
10
+ end
11
+
12
+ def which(bin)
13
+ if absolute_path?(bin)
14
+ return bin if File.executable?(bin)
15
+ else
16
+ search_paths.each do |dir|
17
+ dest = File.join(dir, bin)
18
+ return dest if File.executable?(dest)
19
+ end
20
+ end
21
+ nil
22
+ end
23
+
24
+ ABSOLUTE_PATH_REGEX = %r{^/}
25
+
26
+ def absolute_path?(path)
27
+ !! (path =~ ABSOLUTE_PATH_REGEX)
28
+ end
29
+
30
+ DOUBLE_QUOTED_COMMAND = /^"(.+?)"(?:\s+(.*))?/
31
+ SINGLE_QUOTED_COMMAND = /^'(.+?)'(?:\s+(.*))?/
32
+
33
+ def expand_command(command)
34
+ exe = nil
35
+ args = nil
36
+
37
+ if (match = (command.match(DOUBLE_QUOTED_COMMAND) || command.match(SINGLE_QUOTED_COMMAND)))
38
+ exe, args = match.captures
39
+ else
40
+ exe, args = command.split(/ /,2)
41
+ end
42
+
43
+ if exe and (expanded = which(exe))
44
+ expanded = "'#{expanded}'" if expanded.match(/\s/)
45
+ expanded << " #{args}" if args
46
+
47
+ return expanded
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,57 @@
1
+ class Facter::Core::Execution::Windows < Facter::Core::Execution::Base
2
+
3
+ def search_paths
4
+ ENV['PATH'].split(File::PATH_SEPARATOR)
5
+ end
6
+
7
+ DEFAULT_COMMAND_EXTENSIONS = %w[.COM .EXE .BAT .CMD]
8
+
9
+ def which(bin)
10
+ if absolute_path?(bin)
11
+ return bin if File.executable?(bin)
12
+ else
13
+ search_paths.each do |dir|
14
+ dest = File.join(dir, bin)
15
+ dest.gsub!(File::SEPARATOR, File::ALT_SEPARATOR)
16
+ if File.extname(dest).empty?
17
+ exts = ENV['PATHEXT']
18
+ exts = exts ? exts.split(File::PATH_SEPARATOR) : DEFAULT_COMMAND_EXTENSIONS
19
+ exts.each do |ext|
20
+ destext = dest + ext
21
+ return destext if File.executable?(destext)
22
+ end
23
+ end
24
+ return dest if File.executable?(dest)
25
+ end
26
+ end
27
+ nil
28
+ end
29
+
30
+ slash = '[\\\\/]'
31
+ name = '[^\\\\/]+'
32
+ ABSOLUTE_PATH_REGEX = %r!^(([A-Z]:#{slash})|(#{slash}#{slash}#{name}#{slash}#{name})|(#{slash}#{slash}\?#{slash}#{name}))!i
33
+
34
+ def absolute_path?(path)
35
+ !! (path =~ ABSOLUTE_PATH_REGEX)
36
+ end
37
+
38
+ DOUBLE_QUOTED_COMMAND = /^"(.+?)"(?:\s+(.*))?/
39
+
40
+ def expand_command(command)
41
+ exe = nil
42
+ args = nil
43
+
44
+ if (match = command.match(DOUBLE_QUOTED_COMMAND))
45
+ exe, args = match.captures
46
+ else
47
+ exe, args = command.split(/ /,2)
48
+ end
49
+
50
+ if exe and (expanded = which(exe))
51
+ expanded = "\"#{expanded}\"" if expanded.match(/\s+/)
52
+ expanded << " #{args}" if args
53
+
54
+ return expanded
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,169 @@
1
+ require 'facter'
2
+
3
+ module Facter::Core::Logging
4
+
5
+ extend self
6
+
7
+ # @api private
8
+ GREEN = ""
9
+ # @api private
10
+ RESET = ""
11
+
12
+ # @api private
13
+ @@debug = false
14
+ # @api private
15
+ @@timing = false
16
+ # @api private
17
+ @@trace = false
18
+
19
+ # @api private
20
+ @@warn_messages = {}
21
+ # @api private
22
+ @@debug_messages = {}
23
+
24
+ # Prints a debug message if debugging is turned on
25
+ #
26
+ # @param msg [String] the debug message
27
+ # @return [void]
28
+ def debug(msg)
29
+ if self.debugging?
30
+ if msg.nil? or msg.empty?
31
+ invoker = caller[0].slice(/.*:\d+/)
32
+ self.warn "#{self.class}#debug invoked with invalid message #{msg.inspect}:#{msg.class} at #{invoker}"
33
+ else
34
+ puts GREEN + msg + RESET
35
+ end
36
+ end
37
+ end
38
+
39
+ # Prints a debug message only once.
40
+ #
41
+ # @note Uniqueness is based on the string, not the specific location
42
+ # of the method call.
43
+ #
44
+ # @param msg [String] the debug message
45
+ # @return [void]
46
+ def debugonce(msg)
47
+ if msg and not msg.empty? and @@debug_messages[msg].nil?
48
+ @@debug_messages[msg] = true
49
+ debug(msg)
50
+ end
51
+ end
52
+
53
+ # Prints a warning message. The message is only printed if debugging
54
+ # is enabled.
55
+ #
56
+ # @param msg [String] the warning message to be printed
57
+ #
58
+ # @return [void]
59
+ def warn(msg)
60
+ if msg.nil? or msg.empty?
61
+ invoker = caller[0].slice(/.*:\d+/)
62
+ Kernel.warn "#{self.class}#debug invoked with invalid message #{msg.inspect}:#{msg.class} at #{invoker}"
63
+ else
64
+ Kernel.warn msg
65
+ end
66
+ end
67
+
68
+ # Prints a warning message only once per process. Each unique string
69
+ # is printed once.
70
+ #
71
+ # @note Unlike {warn} the message will be printed even if debugging is
72
+ # not turned on. This behavior is likely to change and should not be
73
+ # relied on.
74
+ #
75
+ # @param msg [String] the warning message to be printed
76
+ #
77
+ # @return [void]
78
+ def warnonce(msg)
79
+ if @@warn_messages[msg].nil?
80
+ self.warn(msg)
81
+ @@warn_messages[msg] = true
82
+ end
83
+ end
84
+
85
+ def log_exception(exception, message = :default)
86
+ self.warn(format_exception(exception, message, @@trace))
87
+ end
88
+
89
+ def format_exception(exception, message, trace)
90
+ arr = []
91
+
92
+ if message == :default
93
+ arr << exception.message
94
+ elsif message
95
+ arr << message
96
+ end
97
+
98
+ if trace
99
+ arr.concat(exception.backtrace)
100
+ end
101
+
102
+ arr.flatten.join("\n")
103
+ end
104
+
105
+ # Print an exception message, and optionally a backtrace if trace is set
106
+
107
+ # Print timing information
108
+ #
109
+ # @param string [String] the time to print
110
+ # @return [void]
111
+ #
112
+ # @api private
113
+ def show_time(string)
114
+ $stderr.puts "#{GREEN}#{string}#{RESET}" if string and self.timing?
115
+ end
116
+
117
+ # Enable or disable logging of debug messages
118
+ #
119
+ # @param bool [true, false]
120
+ # @return [void]
121
+ #
122
+ # @api private
123
+ def debugging(bool)
124
+ @@debug = bool
125
+ end
126
+
127
+ # Is debugging enabled?
128
+ #
129
+ # @return [true, false]
130
+ #
131
+ # @api private
132
+ def debugging?
133
+ @@debug
134
+ end
135
+
136
+ # Enable or disable logging of timing information
137
+ #
138
+ # @param bool [true, false]
139
+ # @return [void]
140
+ #
141
+ # @api private
142
+ def timing(bool)
143
+ @@timing = bool
144
+ end
145
+
146
+ # Returns whether timing output is turned on
147
+ #
148
+ # @api private
149
+ def timing?
150
+ @@timing
151
+ end
152
+
153
+ def trace(bool)
154
+ @@trace = bool
155
+ end
156
+
157
+ def trace?
158
+ @@trace
159
+ end
160
+
161
+ # Clears the seen state of warning messages. See {warnonce}.
162
+ #
163
+ # @return [void]
164
+ #
165
+ # @api private
166
+ def clear_messages
167
+ @@warn_messages.clear
168
+ end
169
+ end