hackboxen 0.1.2 → 0.1.3
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.
- data/CHANGELOG.textile +4 -0
 - data/README.textile +4 -4
 - data/VERSION +1 -1
 - data/hackboxen.gemspec +4 -3
 - data/lib/hackboxen/tasks/endpoint.rb +3 -4
 - data/lib/hackboxen/tasks/icss.rb +7 -5
 - data/lib/hackboxen/tasks/scaffold.rb +18 -10
 - data/lib/hackboxen/template/Rakefile.erb +1 -1
 - data/lib/hackboxen/template/config.yaml.erb +5 -1
 - data/lib/hackboxen/template/main.erb +3 -2
 - metadata +51 -12
 
    
        data/CHANGELOG.textile
    CHANGED
    
    | 
         @@ -40,6 +40,10 @@ h3. Version 0.1.1 
     | 
|
| 
       40 
40 
     | 
    
         | 
| 
       41 
41 
     | 
    
         
             
            * A hackbox __name__ is now separate from a dataset __protocol__. Namespaces are still shared for organizational purposes, but a protocol directory is no longer created for the output. 
         
     | 
| 
       42 
42 
     | 
    
         | 
| 
      
 43 
     | 
    
         
            +
            h3. Version 0.1.3
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
      
 45 
     | 
    
         
            +
            * The tasks @hb:endpoint@ and @hb:icss@ can now move multiple files, instead of just one.
         
     | 
| 
      
 46 
     | 
    
         
            +
             
     | 
| 
       43 
47 
     | 
    
         
             
            h3. Still Needing
         
     | 
| 
       44 
48 
     | 
    
         | 
| 
       45 
49 
     | 
    
         
             
            * Full spec coverage for the hackboxen library.
         
     | 
    
        data/README.textile
    CHANGED
    
    | 
         @@ -58,7 +58,7 @@ The hackbox output directory is where all of the data that a hackbox acquires, r 
     | 
|
| 
       58 
58 
     | 
    
         
             
                            ├── ripd
         
     | 
| 
       59 
59 
     | 
    
         
             
                            │   └── bnc_download.zip
         
     | 
| 
       60 
60 
     | 
    
         
             
                            └── env
         
     | 
| 
       61 
     | 
    
         
            -
                                └──  
     | 
| 
      
 61 
     | 
    
         
            +
                                └── working_config.json         
         
     | 
| 
       62 
62 
     | 
    
         
             
            </code></pre>
         
     | 
| 
       63 
63 
     | 
    
         | 
| 
       64 
64 
     | 
    
         
             
            * @fixd/@: **(required)** See the output interface described below.
         
     | 
| 
         @@ -66,7 +66,7 @@ The hackbox output directory is where all of the data that a hackbox acquires, r 
     | 
|
| 
       66 
66 
     | 
    
         
             
            * @rawd/@: **(optional)** This will contain all intermediate data processing outputs.
         
     | 
| 
       67 
67 
     | 
    
         
             
            * @ripd/@: **(required)** This will contain virginal downloaded source data adhering to the directory structure from which it was pulled.
         
     | 
| 
       68 
68 
     | 
    
         
             
            * @env/@:  **(required)** This directory contains a file describing the environment in which the hackbox was run.
         
     | 
| 
       69 
     | 
    
         
            -
            ** @ 
     | 
| 
      
 69 
     | 
    
         
            +
            ** @working_config.json@: **(required)** All runtime config metadata used to generate the schema and output data.
         
     | 
| 
       70 
70 
     | 
    
         | 
| 
       71 
71 
     | 
    
         
             
            Engine and output directories are generally created dynamically and are not meant to be archival.
         
     | 
| 
       72 
72 
     | 
    
         | 
| 
         @@ -124,9 +124,9 @@ The Hackboxen library depends on the following gems: "configliere":http://github 
     | 
|
| 
       124 
124 
     | 
    
         | 
| 
       125 
125 
     | 
    
         
             
            h3. Creating a Hackbox
         
     | 
| 
       126 
126 
     | 
    
         | 
| 
       127 
     | 
    
         
            -
            Hackboxen comes with scaffold task that creates a template hackbox for you. Required arguments are @--namespace=@ and @-- 
     | 
| 
      
 127 
     | 
    
         
            +
            Hackboxen comes with scaffold task that creates a template hackbox for you. Required arguments are @--namespace=@ and @--hackbox_name=@. Optional arguments are @--protocol=@ and @--targets=@. The @protocol@ will default to the @hackbox_name@ unless otherwise specified. 
         
     | 
| 
       128 
128 
     | 
    
         | 
| 
       129 
     | 
    
         
            -
            <pre><code>hb-scaffold --namespace=foo.bar.baz -- 
     | 
| 
      
 129 
     | 
    
         
            +
            <pre><code>hb-scaffold --namespace=foo.bar.baz --hackbox_name=qux --targets=catalog,mysql
         
     | 
| 
       130 
130 
     | 
    
         
             
            </code></pre>
         
     | 
| 
       131 
131 
     | 
    
         | 
| 
       132 
132 
     | 
    
         
             
            This will create the following directories and files:
         
     | 
    
        data/VERSION
    CHANGED
    
    | 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            0.1. 
     | 
| 
      
 1 
     | 
    
         
            +
            0.1.3
         
     | 
    
        data/hackboxen.gemspec
    CHANGED
    
    | 
         @@ -5,11 +5,11 @@ 
     | 
|
| 
       5 
5 
     | 
    
         | 
| 
       6 
6 
     | 
    
         
             
            Gem::Specification.new do |s|
         
     | 
| 
       7 
7 
     | 
    
         
             
              s.name = %q{hackboxen}
         
     | 
| 
       8 
     | 
    
         
            -
              s.version = "0.1. 
     | 
| 
      
 8 
     | 
    
         
            +
              s.version = "0.1.3"
         
     | 
| 
       9 
9 
     | 
    
         | 
| 
       10 
10 
     | 
    
         
             
              s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
         
     | 
| 
       11 
11 
     | 
    
         
             
              s.authors = ["kornypoet", "Ganglion", "bollacker"]
         
     | 
| 
       12 
     | 
    
         
            -
              s.date = %q{2011-07- 
     | 
| 
      
 12 
     | 
    
         
            +
              s.date = %q{2011-07-11}
         
     | 
| 
       13 
13 
     | 
    
         
             
              s.description = %q{A simple framework to assist in standardizing the data-munging input/output process.}
         
     | 
| 
       14 
14 
     | 
    
         
             
              s.email = %q{travis@infochimps.com}
         
     | 
| 
       15 
15 
     | 
    
         
             
              s.executables = ["hb-install", "hb-scaffold", "hb-runner"]
         
     | 
| 
         @@ -57,13 +57,14 @@ Gem::Specification.new do |s| 
     | 
|
| 
       57 
57 
     | 
    
         
             
              s.homepage = %q{http://github.com/infochimps/hackboxen}
         
     | 
| 
       58 
58 
     | 
    
         
             
              s.licenses = ["MIT"]
         
     | 
| 
       59 
59 
     | 
    
         
             
              s.require_paths = ["lib"]
         
     | 
| 
       60 
     | 
    
         
            -
              s.rubygems_version = %q{1. 
     | 
| 
      
 60 
     | 
    
         
            +
              s.rubygems_version = %q{1.3.7}
         
     | 
| 
       61 
61 
     | 
    
         
             
              s.summary = %q{A simple framework to assist in standardizing the data-munging input/output process.}
         
     | 
| 
       62 
62 
     | 
    
         
             
              s.test_files = [
         
     | 
| 
       63 
63 
     | 
    
         
             
                "spec/install_spec.rb"
         
     | 
| 
       64 
64 
     | 
    
         
             
              ]
         
     | 
| 
       65 
65 
     | 
    
         | 
| 
       66 
66 
     | 
    
         
             
              if s.respond_to? :specification_version then
         
     | 
| 
      
 67 
     | 
    
         
            +
                current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
         
     | 
| 
       67 
68 
     | 
    
         
             
                s.specification_version = 3
         
     | 
| 
       68 
69 
     | 
    
         | 
| 
       69 
70 
     | 
    
         
             
                if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
         
     | 
| 
         @@ -3,11 +3,10 @@ module HackBoxen 
     | 
|
| 
       3 
3 
     | 
    
         | 
| 
       4 
4 
     | 
    
         
             
                desc "Copy an endpoint.rb file to the output code directory if the endpoint exists"
         
     | 
| 
       5 
5 
     | 
    
         
             
                task :endpoint => ['hb:create_required_paths'] do
         
     | 
| 
       6 
     | 
    
         
            -
                   
     | 
| 
       7 
     | 
    
         
            -
                   
     | 
| 
       8 
     | 
    
         
            -
                  if File.exists? srcfile
         
     | 
| 
      
 6 
     | 
    
         
            +
                  endpoints = Dir[File.join(path_to(:hb_engine), '**/*_endpoint.rb')]
         
     | 
| 
      
 7 
     | 
    
         
            +
                  endpoints.each do |srcfile|
         
     | 
| 
       9 
8 
     | 
    
         
             
                    HackBoxen.current_fs.mkpath path_to(:code_dir)
         
     | 
| 
       10 
     | 
    
         
            -
                    destfile = File.join(path_to(:code_dir),  
     | 
| 
      
 9 
     | 
    
         
            +
                    destfile = File.join(path_to(:code_dir), File.basename(srcfile))
         
     | 
| 
       11 
10 
     | 
    
         
             
                    HackBoxen.current_fs.cp(srcfile, destfile)
         
     | 
| 
       12 
11 
     | 
    
         
             
                  end
         
     | 
| 
       13 
12 
     | 
    
         
             
                end
         
     | 
    
        data/lib/hackboxen/tasks/icss.rb
    CHANGED
    
    | 
         @@ -3,11 +3,13 @@ module HackBoxen 
     | 
|
| 
       3 
3 
     | 
    
         | 
| 
       4 
4 
     | 
    
         
             
                desc "Copy the Icss file to the output directory in the filesystem specified in the WorkingConfig"
         
     | 
| 
       5 
5 
     | 
    
         
             
                task :icss => ['hb:create_required_paths'] do
         
     | 
| 
       6 
     | 
    
         
            -
                   
     | 
| 
       7 
     | 
    
         
            -
                   
     | 
| 
       8 
     | 
    
         
            -
                     
     | 
| 
       9 
     | 
    
         
            -
                     
     | 
| 
       10 
     | 
    
         
            -
             
     | 
| 
      
 6 
     | 
    
         
            +
                  icss_yamls    = Dir[File.join(path_to(:hb_config), '**/*.icss.yaml')]
         
     | 
| 
      
 7 
     | 
    
         
            +
                  icss_yamls.each do |icss_yaml|
         
     | 
| 
      
 8 
     | 
    
         
            +
                    icss_hsh    = YAML.load(File.read(icss_yaml))
         
     | 
| 
      
 9 
     | 
    
         
            +
                    if icss_hsh
         
     | 
| 
      
 10 
     | 
    
         
            +
                      icss_json = File.join(path_to(:fixd_dir), "#{icss_hsh['protocol']}.icss.json")
         
     | 
| 
      
 11 
     | 
    
         
            +
                      HackBoxen.current_fs.open(File.join(icss_json), 'w') { |f| f.puts icss_hsh.to_json }
         
     | 
| 
      
 12 
     | 
    
         
            +
                    end
         
     | 
| 
       11 
13 
     | 
    
         
             
                  end
         
     | 
| 
       12 
14 
     | 
    
         
             
                end
         
     | 
| 
       13 
15 
     | 
    
         | 
| 
         @@ -7,17 +7,21 @@ machine_config = '/etc/hackbox/hackbox.yaml' 
     | 
|
| 
       7 
7 
     | 
    
         
             
            install_config = File.join(ENV['HOME'], '.hackbox/hackbox.yaml')
         
     | 
| 
       8 
8 
     | 
    
         | 
| 
       9 
9 
     | 
    
         
             
            Settings.use :commandline, :config_file
         
     | 
| 
       10 
     | 
    
         
            -
            Settings.define :namespace, 
     | 
| 
       11 
     | 
    
         
            -
            Settings.define : 
     | 
| 
       12 
     | 
    
         
            -
            Settings.define : 
     | 
| 
       13 
     | 
    
         
            -
            Settings.define : 
     | 
| 
      
 10 
     | 
    
         
            +
            Settings.define :namespace,    :required => true
         
     | 
| 
      
 11 
     | 
    
         
            +
            Settings.define :hackbox_name, :required => true
         
     | 
| 
      
 12 
     | 
    
         
            +
            Settings.define :protocol
         
     | 
| 
      
 13 
     | 
    
         
            +
            Settings.define :coderoot,     :required => true
         
     | 
| 
      
 14 
     | 
    
         
            +
            Settings.define :targets,      :default  => 'catalog'
         
     | 
| 
       14 
15 
     | 
    
         
             
            Settings.read(machine_config) if File.exists? machine_config
         
     | 
| 
       15 
16 
     | 
    
         
             
            Settings.read(install_config) if File.exists? install_config
         
     | 
| 
       16 
17 
     | 
    
         
             
            Settings.resolve!
         
     | 
| 
       17 
18 
     | 
    
         | 
| 
      
 19 
     | 
    
         
            +
            # Have the hackbox name be a default for the protocol if unspecified
         
     | 
| 
      
 20 
     | 
    
         
            +
            Settings[:protocol] = Settings[:hackbox_name] unless Settings[:protocol]
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
       18 
22 
     | 
    
         
             
            # Hackbox directories to be created
         
     | 
| 
       19 
23 
     | 
    
         
             
            coderoot = Settings[:coderoot]
         
     | 
| 
       20 
     | 
    
         
            -
            hackbox  = File.join(coderoot, Settings[:namespace].gsub(/\./,'/'), Settings[: 
     | 
| 
      
 24 
     | 
    
         
            +
            hackbox  = File.join(coderoot, Settings[:namespace].gsub(/\./,'/'), Settings[:hackbox_name])
         
     | 
| 
       21 
25 
     | 
    
         
             
            engine   = File.join(hackbox, 'engine')
         
     | 
| 
       22 
26 
     | 
    
         
             
            config   = File.join(hackbox, 'config')
         
     | 
| 
       23 
27 
     | 
    
         | 
| 
         @@ -34,12 +38,12 @@ templates   = File.join(hb_lib_dir, 'lib/hackboxen/template') 
     | 
|
| 
       34 
38 
     | 
    
         | 
| 
       35 
39 
     | 
    
         
             
            # Create a basic endpoint if apeyeye was specified as a target
         
     | 
| 
       36 
40 
     | 
    
         
             
            file endpoint, [:config] => engine do |t, args|
         
     | 
| 
       37 
     | 
    
         
            -
              HackBoxen::Template.new(File.join(templates,  
     | 
| 
      
 41 
     | 
    
         
            +
              HackBoxen::Template.new(File.join(templates, 'endpoint.rb.erb'), endpoint, args[:config]).substitute!
         
     | 
| 
       38 
42 
     | 
    
         
             
            end
         
     | 
| 
       39 
43 
     | 
    
         | 
| 
       40 
44 
     | 
    
         
             
            # Create a basic hackbox Rakefile
         
     | 
| 
       41 
45 
     | 
    
         
             
            file rakefile => hackbox do
         
     | 
| 
       42 
     | 
    
         
            -
              HackBoxen::Template.new(File.join(templates,  
     | 
| 
      
 46 
     | 
    
         
            +
              HackBoxen::Template.new(File.join(templates, 'Rakefile.erb'), rakefile, {}).substitute!
         
     | 
| 
       43 
47 
     | 
    
         
             
            end
         
     | 
| 
       44 
48 
     | 
    
         | 
| 
       45 
49 
     | 
    
         
             
            # Create a basic executable hackbox main file
         
     | 
| 
         @@ -50,8 +54,12 @@ end 
     | 
|
| 
       50 
54 
     | 
    
         | 
| 
       51 
55 
     | 
    
         
             
            # Create a basic config file
         
     | 
| 
       52 
56 
     | 
    
         
             
            file config_yml => config do
         
     | 
| 
       53 
     | 
    
         
            -
              basic_config = { 
     | 
| 
       54 
     | 
    
         
            -
             
     | 
| 
      
 57 
     | 
    
         
            +
              basic_config = {
         
     | 
| 
      
 58 
     | 
    
         
            +
                'namespace'    => Settings[:namespace],
         
     | 
| 
      
 59 
     | 
    
         
            +
                'ruby_version' => RUBY_VERSION,
         
     | 
| 
      
 60 
     | 
    
         
            +
                'hb_version'   => Gem.source_index.find_name('swineherd').first.version.to_s
         
     | 
| 
      
 61 
     | 
    
         
            +
              }
         
     | 
| 
      
 62 
     | 
    
         
            +
              HackBoxen::Template.new(File.join(templates, 'config.yaml.erb'), config_yml, basic_config).substitute!
         
     | 
| 
       55 
63 
     | 
    
         
             
            end
         
     | 
| 
       56 
64 
     | 
    
         | 
| 
       57 
65 
     | 
    
         
             
            # Create a basic icss file
         
     | 
| 
         @@ -62,7 +70,7 @@ file icss_yml => config do 
     | 
|
| 
       62 
70 
     | 
    
         
             
                'protocol'  => Settings[:protocol],
         
     | 
| 
       63 
71 
     | 
    
         
             
                'targets'   => targets
         
     | 
| 
       64 
72 
     | 
    
         
             
              }
         
     | 
| 
       65 
     | 
    
         
            -
              HackBoxen::Template.new(File.join(templates,  
     | 
| 
      
 73 
     | 
    
         
            +
              HackBoxen::Template.new(File.join(templates, 'icss.yaml.erb'), icss_yml, basic_config).substitute!
         
     | 
| 
       66 
74 
     | 
    
         
             
              Rake::Task[endpoint].invoke(basic_config) if targets.include? 'apeyeye'
         
     | 
| 
       67 
75 
     | 
    
         
             
            end
         
     | 
| 
       68 
76 
     | 
    
         | 
| 
         @@ -13,7 +13,7 @@ task :get_data do 
     | 
|
| 
       13 
13 
     | 
    
         
             
              #
         
     | 
| 
       14 
14 
     | 
    
         
             
            end
         
     | 
| 
       15 
15 
     | 
    
         | 
| 
       16 
     | 
    
         
            -
            task :default => ['hb:create_working_config', 'hb:icss', 'hb: 
     | 
| 
      
 16 
     | 
    
         
            +
            task :default => ['hb:create_working_config', 'hb:icss', 'hb:endpoint', :get_data, 'hb:init']
         
     | 
| 
       17 
17 
     | 
    
         
             
            #
         
     | 
| 
       18 
18 
     | 
    
         
             
            # hb:create_working_config makes establishes all required directories and serializes out all
         
     | 
| 
       19 
19 
     | 
    
         
             
            # configuration options into env/working_config.json. This task is required.
         
     | 
| 
         @@ -4,7 +4,11 @@ 
     | 
|
| 
       4 
4 
     | 
    
         
             
            # during the execution of a hackbox should be put in here.
         
     | 
| 
       5 
5 
     | 
    
         
             
            #
         
     | 
| 
       6 
6 
     | 
    
         
             
            namespace: <%= namespace %>
         
     | 
| 
       7 
     | 
    
         
            -
            protocol: <%= protocol %>
         
     | 
| 
       8 
7 
     | 
    
         
             
            filesystem_scheme: file
         
     | 
| 
       9 
8 
     | 
    
         
             
            under_consideration: true # This flag is set to true for initial publishing, then removed when fully complete
         
     | 
| 
       10 
9 
     | 
    
         
             
            update_frequency: monthly # How often the data is refreshed
         
     | 
| 
      
 10 
     | 
    
         
            +
            requires:
         
     | 
| 
      
 11 
     | 
    
         
            +
              language:
         
     | 
| 
      
 12 
     | 
    
         
            +
                ruby: <%= ruby_version %>
         
     | 
| 
      
 13 
     | 
    
         
            +
                gems:
         
     | 
| 
      
 14 
     | 
    
         
            +
                - hackboxen: <%= hb_version %>
         
     | 
| 
         @@ -16,12 +16,13 @@ inputdir  = ARGV[0] 
     | 
|
| 
       16 
16 
     | 
    
         
             
            outputdir = ARGV[1]
         
     | 
| 
       17 
17 
     | 
    
         | 
| 
       18 
18 
     | 
    
         
             
            #
         
     | 
| 
       19 
     | 
    
         
            -
            # Ruby example: read in the  
     | 
| 
      
 19 
     | 
    
         
            +
            # Ruby example: read in the working_config.json file in env/ into a ruby hash
         
     | 
| 
       20 
20 
     | 
    
         
             
            # (same as a javascript associative array, a java hashmap, a python dictionary, etc)
         
     | 
| 
       21 
21 
     | 
    
         
             
            # called 'options' to access the configuration settings used to execute the Rakefile
         
     | 
| 
       22 
22 
     | 
    
         
             
            #
         
     | 
| 
      
 23 
     | 
    
         
            +
            require 'rubygems'
         
     | 
| 
       23 
24 
     | 
    
         
             
            require 'json'
         
     | 
| 
       24 
     | 
    
         
            -
            options = JSON.parse(File.read(File.join(inputdir, "env", " 
     | 
| 
      
 25 
     | 
    
         
            +
            options = JSON.parse(File.read(File.join(inputdir, "env", "working_config.json")))
         
     | 
| 
       25 
26 
     | 
    
         | 
| 
       26 
27 
     | 
    
         
             
            #
         
     | 
| 
       27 
28 
     | 
    
         
             
            # If you require 'hackboxen' you can access the default paths utility method
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,8 +1,13 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification 
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: hackboxen
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version 
         
     | 
| 
       4 
     | 
    
         
            -
               
     | 
| 
       5 
     | 
    
         
            -
               
     | 
| 
      
 4 
     | 
    
         
            +
              hash: 29
         
     | 
| 
      
 5 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 6 
     | 
    
         
            +
              segments: 
         
     | 
| 
      
 7 
     | 
    
         
            +
              - 0
         
     | 
| 
      
 8 
     | 
    
         
            +
              - 1
         
     | 
| 
      
 9 
     | 
    
         
            +
              - 3
         
     | 
| 
      
 10 
     | 
    
         
            +
              version: 0.1.3
         
     | 
| 
       6 
11 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       7 
12 
     | 
    
         
             
            authors: 
         
     | 
| 
       8 
13 
     | 
    
         
             
            - kornypoet
         
     | 
| 
         @@ -12,84 +17,115 @@ autorequire: 
     | 
|
| 
       12 
17 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       13 
18 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       14 
19 
     | 
    
         | 
| 
       15 
     | 
    
         
            -
            date: 2011-07- 
     | 
| 
      
 20 
     | 
    
         
            +
            date: 2011-07-11 00:00:00 -05:00
         
     | 
| 
       16 
21 
     | 
    
         
             
            default_executable: 
         
     | 
| 
       17 
22 
     | 
    
         
             
            dependencies: 
         
     | 
| 
       18 
23 
     | 
    
         
             
            - !ruby/object:Gem::Dependency 
         
     | 
| 
       19 
     | 
    
         
            -
              name: swineherd
         
     | 
| 
       20 
24 
     | 
    
         
             
              requirement: &id001 !ruby/object:Gem::Requirement 
         
     | 
| 
       21 
25 
     | 
    
         
             
                none: false
         
     | 
| 
       22 
26 
     | 
    
         
             
                requirements: 
         
     | 
| 
       23 
27 
     | 
    
         
             
                - - ">="
         
     | 
| 
       24 
28 
     | 
    
         
             
                  - !ruby/object:Gem::Version 
         
     | 
| 
      
 29 
     | 
    
         
            +
                    hash: 23
         
     | 
| 
      
 30 
     | 
    
         
            +
                    segments: 
         
     | 
| 
      
 31 
     | 
    
         
            +
                    - 0
         
     | 
| 
      
 32 
     | 
    
         
            +
                    - 0
         
     | 
| 
      
 33 
     | 
    
         
            +
                    - 4
         
     | 
| 
       25 
34 
     | 
    
         
             
                    version: 0.0.4
         
     | 
| 
       26 
35 
     | 
    
         
             
              type: :runtime
         
     | 
| 
      
 36 
     | 
    
         
            +
              name: swineherd
         
     | 
| 
       27 
37 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       28 
38 
     | 
    
         
             
              version_requirements: *id001
         
     | 
| 
       29 
39 
     | 
    
         
             
            - !ruby/object:Gem::Dependency 
         
     | 
| 
       30 
     | 
    
         
            -
              name: configliere
         
     | 
| 
       31 
40 
     | 
    
         
             
              requirement: &id002 !ruby/object:Gem::Requirement 
         
     | 
| 
       32 
41 
     | 
    
         
             
                none: false
         
     | 
| 
       33 
42 
     | 
    
         
             
                requirements: 
         
     | 
| 
       34 
43 
     | 
    
         
             
                - - "="
         
     | 
| 
       35 
44 
     | 
    
         
             
                  - !ruby/object:Gem::Version 
         
     | 
| 
      
 45 
     | 
    
         
            +
                    hash: 3
         
     | 
| 
      
 46 
     | 
    
         
            +
                    segments: 
         
     | 
| 
      
 47 
     | 
    
         
            +
                    - 0
         
     | 
| 
      
 48 
     | 
    
         
            +
                    - 4
         
     | 
| 
      
 49 
     | 
    
         
            +
                    - 6
         
     | 
| 
       36 
50 
     | 
    
         
             
                    version: 0.4.6
         
     | 
| 
       37 
51 
     | 
    
         
             
              type: :runtime
         
     | 
| 
      
 52 
     | 
    
         
            +
              name: configliere
         
     | 
| 
       38 
53 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       39 
54 
     | 
    
         
             
              version_requirements: *id002
         
     | 
| 
       40 
55 
     | 
    
         
             
            - !ruby/object:Gem::Dependency 
         
     | 
| 
       41 
     | 
    
         
            -
              name: rake
         
     | 
| 
       42 
56 
     | 
    
         
             
              requirement: &id003 !ruby/object:Gem::Requirement 
         
     | 
| 
       43 
57 
     | 
    
         
             
                none: false
         
     | 
| 
       44 
58 
     | 
    
         
             
                requirements: 
         
     | 
| 
       45 
59 
     | 
    
         
             
                - - ">="
         
     | 
| 
       46 
60 
     | 
    
         
             
                  - !ruby/object:Gem::Version 
         
     | 
| 
      
 61 
     | 
    
         
            +
                    hash: 49
         
     | 
| 
      
 62 
     | 
    
         
            +
                    segments: 
         
     | 
| 
      
 63 
     | 
    
         
            +
                    - 0
         
     | 
| 
      
 64 
     | 
    
         
            +
                    - 8
         
     | 
| 
      
 65 
     | 
    
         
            +
                    - 7
         
     | 
| 
       47 
66 
     | 
    
         
             
                    version: 0.8.7
         
     | 
| 
       48 
67 
     | 
    
         
             
              type: :runtime
         
     | 
| 
      
 68 
     | 
    
         
            +
              name: rake
         
     | 
| 
       49 
69 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       50 
70 
     | 
    
         
             
              version_requirements: *id003
         
     | 
| 
       51 
71 
     | 
    
         
             
            - !ruby/object:Gem::Dependency 
         
     | 
| 
       52 
     | 
    
         
            -
              name: shoulda
         
     | 
| 
       53 
72 
     | 
    
         
             
              requirement: &id004 !ruby/object:Gem::Requirement 
         
     | 
| 
       54 
73 
     | 
    
         
             
                none: false
         
     | 
| 
       55 
74 
     | 
    
         
             
                requirements: 
         
     | 
| 
       56 
75 
     | 
    
         
             
                - - ">="
         
     | 
| 
       57 
76 
     | 
    
         
             
                  - !ruby/object:Gem::Version 
         
     | 
| 
      
 77 
     | 
    
         
            +
                    hash: 3
         
     | 
| 
      
 78 
     | 
    
         
            +
                    segments: 
         
     | 
| 
      
 79 
     | 
    
         
            +
                    - 0
         
     | 
| 
       58 
80 
     | 
    
         
             
                    version: "0"
         
     | 
| 
       59 
81 
     | 
    
         
             
              type: :development
         
     | 
| 
      
 82 
     | 
    
         
            +
              name: shoulda
         
     | 
| 
       60 
83 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       61 
84 
     | 
    
         
             
              version_requirements: *id004
         
     | 
| 
       62 
85 
     | 
    
         
             
            - !ruby/object:Gem::Dependency 
         
     | 
| 
       63 
     | 
    
         
            -
              name: bundler
         
     | 
| 
       64 
86 
     | 
    
         
             
              requirement: &id005 !ruby/object:Gem::Requirement 
         
     | 
| 
       65 
87 
     | 
    
         
             
                none: false
         
     | 
| 
       66 
88 
     | 
    
         
             
                requirements: 
         
     | 
| 
       67 
89 
     | 
    
         
             
                - - ~>
         
     | 
| 
       68 
90 
     | 
    
         
             
                  - !ruby/object:Gem::Version 
         
     | 
| 
      
 91 
     | 
    
         
            +
                    hash: 23
         
     | 
| 
      
 92 
     | 
    
         
            +
                    segments: 
         
     | 
| 
      
 93 
     | 
    
         
            +
                    - 1
         
     | 
| 
      
 94 
     | 
    
         
            +
                    - 0
         
     | 
| 
      
 95 
     | 
    
         
            +
                    - 0
         
     | 
| 
       69 
96 
     | 
    
         
             
                    version: 1.0.0
         
     | 
| 
       70 
97 
     | 
    
         
             
              type: :development
         
     | 
| 
      
 98 
     | 
    
         
            +
              name: bundler
         
     | 
| 
       71 
99 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       72 
100 
     | 
    
         
             
              version_requirements: *id005
         
     | 
| 
       73 
101 
     | 
    
         
             
            - !ruby/object:Gem::Dependency 
         
     | 
| 
       74 
     | 
    
         
            -
              name: jeweler
         
     | 
| 
       75 
102 
     | 
    
         
             
              requirement: &id006 !ruby/object:Gem::Requirement 
         
     | 
| 
       76 
103 
     | 
    
         
             
                none: false
         
     | 
| 
       77 
104 
     | 
    
         
             
                requirements: 
         
     | 
| 
       78 
105 
     | 
    
         
             
                - - ~>
         
     | 
| 
       79 
106 
     | 
    
         
             
                  - !ruby/object:Gem::Version 
         
     | 
| 
      
 107 
     | 
    
         
            +
                    hash: 7
         
     | 
| 
      
 108 
     | 
    
         
            +
                    segments: 
         
     | 
| 
      
 109 
     | 
    
         
            +
                    - 1
         
     | 
| 
      
 110 
     | 
    
         
            +
                    - 5
         
     | 
| 
      
 111 
     | 
    
         
            +
                    - 2
         
     | 
| 
       80 
112 
     | 
    
         
             
                    version: 1.5.2
         
     | 
| 
       81 
113 
     | 
    
         
             
              type: :development
         
     | 
| 
      
 114 
     | 
    
         
            +
              name: jeweler
         
     | 
| 
       82 
115 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       83 
116 
     | 
    
         
             
              version_requirements: *id006
         
     | 
| 
       84 
117 
     | 
    
         
             
            - !ruby/object:Gem::Dependency 
         
     | 
| 
       85 
     | 
    
         
            -
              name: rcov
         
     | 
| 
       86 
118 
     | 
    
         
             
              requirement: &id007 !ruby/object:Gem::Requirement 
         
     | 
| 
       87 
119 
     | 
    
         
             
                none: false
         
     | 
| 
       88 
120 
     | 
    
         
             
                requirements: 
         
     | 
| 
       89 
121 
     | 
    
         
             
                - - ">="
         
     | 
| 
       90 
122 
     | 
    
         
             
                  - !ruby/object:Gem::Version 
         
     | 
| 
      
 123 
     | 
    
         
            +
                    hash: 3
         
     | 
| 
      
 124 
     | 
    
         
            +
                    segments: 
         
     | 
| 
      
 125 
     | 
    
         
            +
                    - 0
         
     | 
| 
       91 
126 
     | 
    
         
             
                    version: "0"
         
     | 
| 
       92 
127 
     | 
    
         
             
              type: :development
         
     | 
| 
      
 128 
     | 
    
         
            +
              name: rcov
         
     | 
| 
       93 
129 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       94 
130 
     | 
    
         
             
              version_requirements: *id007
         
     | 
| 
       95 
131 
     | 
    
         
             
            description: A simple framework to assist in standardizing the data-munging input/output process.
         
     | 
| 
         @@ -153,7 +189,7 @@ required_ruby_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       153 
189 
     | 
    
         
             
              requirements: 
         
     | 
| 
       154 
190 
     | 
    
         
             
              - - ">="
         
     | 
| 
       155 
191 
     | 
    
         
             
                - !ruby/object:Gem::Version 
         
     | 
| 
       156 
     | 
    
         
            -
                  hash:  
     | 
| 
      
 192 
     | 
    
         
            +
                  hash: 3
         
     | 
| 
       157 
193 
     | 
    
         
             
                  segments: 
         
     | 
| 
       158 
194 
     | 
    
         
             
                  - 0
         
     | 
| 
       159 
195 
     | 
    
         
             
                  version: "0"
         
     | 
| 
         @@ -162,11 +198,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       162 
198 
     | 
    
         
             
              requirements: 
         
     | 
| 
       163 
199 
     | 
    
         
             
              - - ">="
         
     | 
| 
       164 
200 
     | 
    
         
             
                - !ruby/object:Gem::Version 
         
     | 
| 
      
 201 
     | 
    
         
            +
                  hash: 3
         
     | 
| 
      
 202 
     | 
    
         
            +
                  segments: 
         
     | 
| 
      
 203 
     | 
    
         
            +
                  - 0
         
     | 
| 
       165 
204 
     | 
    
         
             
                  version: "0"
         
     | 
| 
       166 
205 
     | 
    
         
             
            requirements: []
         
     | 
| 
       167 
206 
     | 
    
         | 
| 
       168 
207 
     | 
    
         
             
            rubyforge_project: 
         
     | 
| 
       169 
     | 
    
         
            -
            rubygems_version: 1. 
     | 
| 
      
 208 
     | 
    
         
            +
            rubygems_version: 1.3.7
         
     | 
| 
       170 
209 
     | 
    
         
             
            signing_key: 
         
     | 
| 
       171 
210 
     | 
    
         
             
            specification_version: 3
         
     | 
| 
       172 
211 
     | 
    
         
             
            summary: A simple framework to assist in standardizing the data-munging input/output process.
         
     |