Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/dod38fr/perl-tk-objscanner
A Perl/Tk widget to view recursively a data structure
https://github.com/dod38fr/perl-tk-objscanner
Last synced: 2 days ago
JSON representation
A Perl/Tk widget to view recursively a data structure
- Host: GitHub
- URL: https://github.com/dod38fr/perl-tk-objscanner
- Owner: dod38fr
- Created: 2014-07-26T15:47:35.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2023-10-27T23:10:19.000Z (about 1 year ago)
- Last Synced: 2025-01-02T23:57:16.372Z (6 days ago)
- Language: Perl
- Size: 88.9 KB
- Stars: 0
- Watchers: 1
- Forks: 3
- Open Issues: 2
-
Metadata Files:
- Readme: README.org
- Changelog: Changes
Awesome Lists containing this project
README
* Tk::ObjScanner
:PROPERTIES:
:CUSTOM_ID: tkobjscanner
:END:** What is Tk::ObjScanner
Tk::ObjScanner is a Perl/Tk module that provides a GUI to scan any perl
data including the attributes of an object.This module also provides =data-viewer=, a standalone script that
opens a =Tk::ObjScanner= widget on a JSON or YAML file.For instance, this command =data-viewer /usr/share/nodejs/tar/package.json=
creates the following widget:[[file:data-viewer.png]]
** In more details
The scanner is a composite widget made of a HList. This widget acts as a
scanner to the object (or hash ref) passed with the 'caller' parameter.
The scanner will retrieve all keys of the hash/object and insert them in
the HList.When the user double clicks on a key, the corresponding value will be
added in the HList. If the user use the middle button to open a tied
item, the internals of the tied object will be displayed.If the value is a scalar, the scalar will be displayed in a popup text
window.If the value is a code ref, the deparsed code will be displayed in a
popup text window.This widget can be used as a regular widget in a Tk application or can
be used as an autonomous popup widget that will display the content of a
data structure. The latter is like a call to a graphical =Data::Dumper=.The scanner recognizes:
- tied hashes arrays or scalars
- weak reference (See weaken function of =Scalar::Util= for details)This module was tested with perl5.8.2 and Tk 804.025 (beta). But
should work with older versions of perl (> 5.6.1) or Tk. On the other
hand, =data-viewer= requires Perl 5.16.See the embedded documentation in the module for more details.
*Note* that test program (in the 't' directory) can be run interactively
this way :#+begin_example
perl t/xxx.t 1
#+end_example*** Installation
:PROPERTIES:
:CUSTOM_ID: installation
:END:
#+begin_example
gunzip -c .tar.gz | tar xvf -
cd
perl Makefile.PL
make test
make install
#+end_exampleFrom github, this module is built with *Dist::Zilla*.
You must make sure that the following modules are installed:
#+begin_example
Dist::Zilla::Plugin::MetaResources
Dist::Zilla::Plugin::Prepender
Dist::Zilla::Plugin::Prereqs
Dist::Zilla::PluginBundle::Filter
#+end_exampleOn debian or ubuntu, do:
#+begin_example
sudo aptitude install \
libdist-zilla-plugin-prepender-perl \
libdist-zilla-plugins-cjm-perl \
libdist-zilla-perl
#+end_exampleThen run:
#+begin_example
dzil build
#+end_exampleor
#+begin_example
dzil test
dzil build
#+end_example--------------
Comments and suggestions are always welcome.
** Contributors
:PROPERTIES:
:CUSTOM_ID: contributors
:END:
Many thanks to *Achim Bohnet* for all the tests, patches (and reports)
he made. Many improvements were made thanks to his efforts.Thanks to *Rudi Farkas* for the 'watch' patch.
Thanks to *heytitle* for the documentation fixes
Thanks to *E. Choroba* for the retro compatibility patch