wukong 3.0.0.pre → 3.0.0.pre2
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +46 -33
- data/.gitmodules +3 -0
- data/.rspec +1 -1
- data/.travis.yml +8 -1
- data/.yardopts +0 -13
- data/Guardfile +4 -6
- data/{LICENSE.textile → LICENSE.md} +43 -55
- data/README-old.md +422 -0
- data/README.md +279 -418
- data/Rakefile +21 -5
- data/TODO.md +6 -6
- data/bin/wu-clean-encoding +31 -0
- data/bin/wu-lign +2 -2
- data/bin/wu-local +69 -0
- data/bin/wu-server +70 -0
- data/examples/Gemfile +38 -0
- data/examples/README.md +9 -0
- data/examples/dataflow/apache_log_line.rb +64 -25
- data/examples/dataflow/fibonacci_series.rb +101 -0
- data/examples/dataflow/parse_apache_logs.rb +37 -7
- data/examples/{dataflow.rb → dataflow/scraper_macro_flow.rb} +0 -0
- data/examples/dataflow/simple.rb +4 -4
- data/examples/geo.rb +4 -0
- data/examples/geo/geo_grids.numbers +0 -0
- data/examples/geo/geolocated.rb +331 -0
- data/examples/geo/quadtile.rb +69 -0
- data/examples/geo/spec/geolocated_spec.rb +247 -0
- data/examples/geo/tile_fetcher.rb +77 -0
- data/examples/graph/minimum_spanning_tree.rb +61 -61
- data/examples/jabberwocky.txt +36 -0
- data/examples/models/wikipedia.rb +20 -0
- data/examples/munging/Gemfile +8 -0
- data/examples/munging/airline_flights/airline.rb +57 -0
- data/examples/munging/airline_flights/airline_flights.rake +83 -0
- data/{lib/wukong/settings.rb → examples/munging/airline_flights/airplane.rb} +0 -0
- data/examples/munging/airline_flights/airport.rb +211 -0
- data/examples/munging/airline_flights/airport_id_unification.rb +129 -0
- data/examples/munging/airline_flights/airport_ok_chars.rb +4 -0
- data/examples/munging/airline_flights/flight.rb +156 -0
- data/examples/munging/airline_flights/models.rb +4 -0
- data/examples/munging/airline_flights/parse.rb +26 -0
- data/examples/munging/airline_flights/reconcile_airports.rb +142 -0
- data/examples/munging/airline_flights/route.rb +35 -0
- data/examples/munging/airline_flights/tasks.rake +83 -0
- data/examples/munging/airline_flights/timezone_fixup.rb +62 -0
- data/examples/munging/airline_flights/topcities.rb +167 -0
- data/examples/munging/airports/40_wbans.txt +40 -0
- data/examples/munging/airports/filter_weather_reports.rb +37 -0
- data/examples/munging/airports/join.pig +31 -0
- data/examples/munging/airports/to_tsv.rb +33 -0
- data/examples/munging/airports/usa_wbans.pig +19 -0
- data/examples/munging/airports/usa_wbans.txt +2157 -0
- data/examples/munging/airports/wbans.pig +19 -0
- data/examples/munging/airports/wbans.txt +2310 -0
- data/examples/munging/geo/geo_json.rb +54 -0
- data/examples/munging/geo/geo_models.rb +69 -0
- data/examples/munging/geo/geonames_models.rb +78 -0
- data/examples/munging/geo/iso_codes.rb +172 -0
- data/examples/munging/geo/reconcile_countries.rb +124 -0
- data/examples/munging/geo/tasks.rake +71 -0
- data/examples/munging/rake_helper.rb +62 -0
- data/examples/munging/weather/.gitignore +1 -0
- data/examples/munging/weather/Gemfile +4 -0
- data/examples/munging/weather/Rakefile +28 -0
- data/examples/munging/weather/extract_ish.rb +13 -0
- data/examples/munging/weather/models/weather.rb +119 -0
- data/examples/munging/weather/utils/noaa_downloader.rb +46 -0
- data/examples/munging/wikipedia/README.md +34 -0
- data/examples/munging/wikipedia/Rakefile +193 -0
- data/examples/munging/wikipedia/articles/extract_articles-parsed.rb +79 -0
- data/examples/munging/wikipedia/articles/extract_articles-templated.rb +136 -0
- data/examples/munging/wikipedia/articles/textualize_articles.rb +54 -0
- data/examples/munging/wikipedia/articles/verify_structure.rb +43 -0
- data/examples/munging/wikipedia/articles/wp2txt-LICENSE.txt +22 -0
- data/examples/munging/wikipedia/articles/wp2txt_article.rb +259 -0
- data/examples/munging/wikipedia/articles/wp2txt_utils.rb +452 -0
- data/examples/munging/wikipedia/dbpedia/dbpedia_common.rb +4 -0
- data/examples/munging/wikipedia/dbpedia/dbpedia_extract_geocoordinates.rb +78 -0
- data/examples/munging/wikipedia/dbpedia/extract_links.rb +193 -0
- data/examples/munging/wikipedia/dbpedia/sameas_extractor.rb +20 -0
- data/examples/munging/wikipedia/n1_subuniverse/n1_nodes.pig +18 -0
- data/examples/munging/wikipedia/page_metadata/extract_page_metadata.rb +21 -0
- data/examples/munging/wikipedia/page_metadata/extract_page_metadata.rb.old +27 -0
- data/examples/munging/wikipedia/pagelinks/augment_pagelinks.pig +29 -0
- data/examples/munging/wikipedia/pagelinks/extract_pagelinks.rb +14 -0
- data/examples/munging/wikipedia/pagelinks/extract_pagelinks.rb.old +25 -0
- data/examples/munging/wikipedia/pagelinks/undirect_pagelinks.pig +29 -0
- data/examples/munging/wikipedia/pageviews/augment_pageviews.pig +32 -0
- data/examples/munging/wikipedia/pageviews/extract_pageviews.rb +85 -0
- data/examples/munging/wikipedia/pig_style_guide.md +25 -0
- data/examples/munging/wikipedia/redirects/redirects_page_metadata.pig +19 -0
- data/examples/munging/wikipedia/subuniverse/sub_articles.pig +23 -0
- data/examples/munging/wikipedia/subuniverse/sub_page_metadata.pig +24 -0
- data/examples/munging/wikipedia/subuniverse/sub_pagelinks_from.pig +22 -0
- data/examples/munging/wikipedia/subuniverse/sub_pagelinks_into.pig +22 -0
- data/examples/munging/wikipedia/subuniverse/sub_pagelinks_within.pig +26 -0
- data/examples/munging/wikipedia/subuniverse/sub_pageviews.pig +29 -0
- data/examples/munging/wikipedia/subuniverse/sub_undirected_pagelinks_within.pig +24 -0
- data/examples/munging/wikipedia/utils/get_namespaces.rb +86 -0
- data/examples/munging/wikipedia/utils/munging_utils.rb +68 -0
- data/examples/munging/wikipedia/utils/namespaces.json +1 -0
- data/examples/rake_helper.rb +85 -0
- data/examples/server_logs/geo_ip_mapping/munge_geolite.rb +82 -0
- data/examples/server_logs/logline.rb +95 -0
- data/examples/server_logs/models.rb +66 -0
- data/examples/server_logs/page_counts.pig +48 -0
- data/examples/server_logs/server_logs-01-parse-script.rb +13 -0
- data/examples/server_logs/server_logs-02-histograms-full.rb +33 -0
- data/examples/server_logs/server_logs-02-histograms-mapper.rb +14 -0
- data/{old/examples/server_logs/breadcrumbs.rb → examples/server_logs/server_logs-03-breadcrumbs-full.rb} +26 -30
- data/examples/server_logs/server_logs-04-page_page_edges-full.rb +40 -0
- data/examples/string_reverser.rb +26 -0
- data/examples/text/pig_latin.rb +2 -2
- data/examples/text/regional_flavor/README.md +14 -0
- data/examples/text/regional_flavor/article_wordbags.pig +39 -0
- data/examples/text/regional_flavor/j01-article_wordbags.rb +4 -0
- data/examples/text/regional_flavor/simple_pig_script.pig +27 -0
- data/examples/word_count/accumulator.rb +26 -0
- data/examples/word_count/tokenizer.rb +13 -0
- data/examples/word_count/word_count.rb +6 -0
- data/examples/workflow/cherry_pie.dot +97 -0
- data/examples/workflow/cherry_pie.png +0 -0
- data/examples/workflow/cherry_pie.rb +61 -26
- data/lib/hanuman.rb +34 -7
- data/lib/hanuman/graph.rb +55 -31
- data/lib/hanuman/graphvizzer.rb +199 -178
- data/lib/hanuman/graphvizzer/gv_models.rb +161 -0
- data/lib/hanuman/graphvizzer/gv_presenter.rb +97 -0
- data/lib/hanuman/link.rb +35 -0
- data/lib/hanuman/registry.rb +46 -0
- data/lib/hanuman/stage.rb +76 -32
- data/lib/wukong.rb +23 -24
- data/lib/wukong/boot.rb +87 -0
- data/lib/wukong/configuration.rb +8 -0
- data/lib/wukong/dataflow.rb +45 -78
- data/lib/wukong/driver.rb +99 -0
- data/lib/wukong/emitter.rb +22 -0
- data/lib/wukong/model/faker.rb +24 -24
- data/lib/wukong/model/flatpack_parser/flat.rb +60 -0
- data/lib/wukong/model/flatpack_parser/flatpack.rb +4 -0
- data/lib/wukong/model/flatpack_parser/lang.rb +46 -0
- data/lib/wukong/model/flatpack_parser/parser.rb +55 -0
- data/lib/wukong/model/flatpack_parser/tokens.rb +130 -0
- data/lib/wukong/processor.rb +60 -114
- data/lib/wukong/spec_helpers.rb +81 -0
- data/lib/wukong/spec_helpers/integration_driver.rb +144 -0
- data/lib/wukong/spec_helpers/integration_driver_matchers.rb +219 -0
- data/lib/wukong/spec_helpers/processor_helpers.rb +95 -0
- data/lib/wukong/spec_helpers/processor_methods.rb +108 -0
- data/lib/wukong/spec_helpers/shared_examples.rb +15 -0
- data/lib/wukong/spec_helpers/spec_driver.rb +28 -0
- data/lib/wukong/spec_helpers/spec_driver_matchers.rb +195 -0
- data/lib/wukong/version.rb +2 -1
- data/lib/wukong/widget/filters.rb +311 -0
- data/lib/wukong/widget/processors.rb +156 -0
- data/lib/wukong/widget/reducers.rb +7 -0
- data/lib/wukong/widget/reducers/accumulator.rb +73 -0
- data/lib/wukong/widget/reducers/bin.rb +318 -0
- data/lib/wukong/widget/reducers/count.rb +61 -0
- data/lib/wukong/widget/reducers/group.rb +85 -0
- data/lib/wukong/widget/reducers/group_concat.rb +70 -0
- data/lib/wukong/widget/reducers/moments.rb +72 -0
- data/lib/wukong/widget/reducers/sort.rb +130 -0
- data/lib/wukong/widget/serializers.rb +287 -0
- data/lib/wukong/widget/sink.rb +10 -52
- data/lib/wukong/widget/source.rb +7 -113
- data/lib/wukong/widget/utils.rb +46 -0
- data/lib/wukong/widgets.rb +6 -0
- data/spec/examples/dataflow/fibonacci_series_spec.rb +18 -0
- data/spec/examples/dataflow/parsing_spec.rb +12 -11
- data/spec/examples/dataflow/simple_spec.rb +32 -6
- data/spec/examples/dataflow/telegram_spec.rb +36 -36
- data/spec/examples/graph/minimum_spanning_tree_spec.rb +30 -31
- data/spec/examples/munging/airline_flights/identifiers_spec.rb +16 -0
- data/spec/examples/munging/airline_flights_spec.rb +202 -0
- data/spec/examples/text/pig_latin_spec.rb +13 -16
- data/spec/examples/workflow/cherry_pie_spec.rb +34 -4
- data/spec/hanuman/graph_spec.rb +27 -2
- data/spec/hanuman/hanuman_spec.rb +10 -0
- data/spec/hanuman/registry_spec.rb +123 -0
- data/spec/hanuman/stage_spec.rb +61 -7
- data/spec/spec_helper.rb +29 -19
- data/spec/support/hanuman_test_helpers.rb +14 -12
- data/spec/support/shared_context_for_reducers.rb +37 -0
- data/spec/support/shared_examples_for_builders.rb +101 -0
- data/spec/support/shared_examples_for_shortcuts.rb +57 -0
- data/spec/support/wukong_test_helpers.rb +37 -11
- data/spec/wukong/dataflow_spec.rb +77 -55
- data/spec/wukong/local_runner_spec.rb +24 -24
- data/spec/wukong/model/faker_spec.rb +132 -131
- data/spec/wukong/runner_spec.rb +8 -8
- data/spec/wukong/widget/filters_spec.rb +61 -0
- data/spec/wukong/widget/processors_spec.rb +126 -0
- data/spec/wukong/widget/reducers/bin_spec.rb +92 -0
- data/spec/wukong/widget/reducers/count_spec.rb +11 -0
- data/spec/wukong/widget/reducers/group_spec.rb +20 -0
- data/spec/wukong/widget/reducers/moments_spec.rb +36 -0
- data/spec/wukong/widget/reducers/sort_spec.rb +26 -0
- data/spec/wukong/widget/serializers_spec.rb +92 -0
- data/spec/wukong/widget/sink_spec.rb +15 -15
- data/spec/wukong/widget/source_spec.rb +65 -41
- data/spec/wukong/wukong_spec.rb +10 -0
- data/wukong.gemspec +17 -10
- metadata +359 -335
- data/.document +0 -5
- data/VERSION +0 -1
- data/bin/hdp-bin +0 -44
- data/bin/hdp-bzip +0 -23
- data/bin/hdp-cat +0 -3
- data/bin/hdp-catd +0 -3
- data/bin/hdp-cp +0 -3
- data/bin/hdp-du +0 -86
- data/bin/hdp-get +0 -3
- data/bin/hdp-kill +0 -3
- data/bin/hdp-kill-task +0 -3
- data/bin/hdp-ls +0 -11
- data/bin/hdp-mkdir +0 -2
- data/bin/hdp-mkdirp +0 -12
- data/bin/hdp-mv +0 -3
- data/bin/hdp-parts_to_keys.rb +0 -77
- data/bin/hdp-ps +0 -3
- data/bin/hdp-put +0 -3
- data/bin/hdp-rm +0 -32
- data/bin/hdp-sort +0 -40
- data/bin/hdp-stream +0 -40
- data/bin/hdp-stream-flat +0 -22
- data/bin/hdp-stream2 +0 -39
- data/bin/hdp-sync +0 -17
- data/bin/hdp-wc +0 -67
- data/bin/wu-flow +0 -10
- data/bin/wu-map +0 -17
- data/bin/wu-red +0 -17
- data/bin/wukong +0 -17
- data/data/CREDITS.md +0 -355
- data/data/graph/airfares.tsv +0 -2174
- data/data/text/gift_of_the_magi.txt +0 -225
- data/data/text/jabberwocky.txt +0 -36
- data/data/text/rectification_of_names.txt +0 -33
- data/data/twitter/a_atsigns_b.tsv +0 -64
- data/data/twitter/a_follows_b.tsv +0 -53
- data/data/twitter/tweet.tsv +0 -167
- data/data/twitter/twitter_user.tsv +0 -55
- data/data/wikipedia/dbpedia-sentences.tsv +0 -1000
- data/docpages/INSTALL.textile +0 -92
- data/docpages/LICENSE.textile +0 -107
- data/docpages/README-elastic_map_reduce.textile +0 -377
- data/docpages/README-performance.textile +0 -90
- data/docpages/README-wulign.textile +0 -65
- data/docpages/UsingWukong-part1-get_ready.textile +0 -17
- data/docpages/UsingWukong-part2-ThinkingBigData.textile +0 -75
- data/docpages/UsingWukong-part3-parsing.textile +0 -138
- data/docpages/_config.yml +0 -39
- data/docpages/avro/avro_notes.textile +0 -56
- data/docpages/avro/performance.textile +0 -36
- data/docpages/avro/tethering.textile +0 -19
- data/docpages/bigdata-tips.textile +0 -143
- data/docpages/code/api_response_example.txt +0 -20
- data/docpages/code/parser_skeleton.rb +0 -38
- data/docpages/diagrams/MapReduceDiagram.graffle +0 -0
- data/docpages/favicon.ico +0 -0
- data/docpages/gem.css +0 -16
- data/docpages/hadoop-tips.textile +0 -83
- data/docpages/index.textile +0 -92
- data/docpages/intro.textile +0 -8
- data/docpages/moreinfo.textile +0 -174
- data/docpages/news.html +0 -24
- data/docpages/pig/PigLatinExpressionsList.txt +0 -122
- data/docpages/pig/PigLatinReferenceManual.txt +0 -1640
- data/docpages/pig/commandline_params.txt +0 -26
- data/docpages/pig/cookbook.html +0 -481
- data/docpages/pig/images/hadoop-logo.jpg +0 -0
- data/docpages/pig/images/instruction_arrow.png +0 -0
- data/docpages/pig/images/pig-logo.gif +0 -0
- data/docpages/pig/piglatin_ref1.html +0 -1103
- data/docpages/pig/piglatin_ref2.html +0 -14340
- data/docpages/pig/setup.html +0 -505
- data/docpages/pig/skin/basic.css +0 -166
- data/docpages/pig/skin/breadcrumbs.js +0 -237
- data/docpages/pig/skin/fontsize.js +0 -166
- data/docpages/pig/skin/getBlank.js +0 -40
- data/docpages/pig/skin/getMenu.js +0 -45
- data/docpages/pig/skin/images/chapter.gif +0 -0
- data/docpages/pig/skin/images/chapter_open.gif +0 -0
- data/docpages/pig/skin/images/current.gif +0 -0
- data/docpages/pig/skin/images/external-link.gif +0 -0
- data/docpages/pig/skin/images/header_white_line.gif +0 -0
- data/docpages/pig/skin/images/page.gif +0 -0
- data/docpages/pig/skin/images/pdfdoc.gif +0 -0
- data/docpages/pig/skin/images/rc-b-l-15-1body-2menu-3menu.png +0 -0
- data/docpages/pig/skin/images/rc-b-r-15-1body-2menu-3menu.png +0 -0
- data/docpages/pig/skin/images/rc-b-r-5-1header-2tab-selected-3tab-selected.png +0 -0
- data/docpages/pig/skin/images/rc-t-l-5-1header-2searchbox-3searchbox.png +0 -0
- data/docpages/pig/skin/images/rc-t-l-5-1header-2tab-selected-3tab-selected.png +0 -0
- data/docpages/pig/skin/images/rc-t-l-5-1header-2tab-unselected-3tab-unselected.png +0 -0
- data/docpages/pig/skin/images/rc-t-r-15-1body-2menu-3menu.png +0 -0
- data/docpages/pig/skin/images/rc-t-r-5-1header-2searchbox-3searchbox.png +0 -0
- data/docpages/pig/skin/images/rc-t-r-5-1header-2tab-selected-3tab-selected.png +0 -0
- data/docpages/pig/skin/images/rc-t-r-5-1header-2tab-unselected-3tab-unselected.png +0 -0
- data/docpages/pig/skin/print.css +0 -54
- data/docpages/pig/skin/profile.css +0 -181
- data/docpages/pig/skin/screen.css +0 -587
- data/docpages/pig/tutorial.html +0 -1059
- data/docpages/pig/udf.html +0 -1509
- data/docpages/tutorial.textile +0 -283
- data/docpages/usage.textile +0 -195
- data/docpages/wutils.textile +0 -263
- data/examples/dataflow/complex.rb +0 -11
- data/examples/dataflow/donuts.rb +0 -13
- data/examples/tiny_count/jabberwocky_output.tsv +0 -92
- data/examples/word_count.rb +0 -48
- data/examples/workflow/fiddle.rb +0 -24
- data/lib/away/escapement.rb +0 -129
- data/lib/away/exe.rb +0 -11
- data/lib/away/experimental.rb +0 -5
- data/lib/away/from_file.rb +0 -52
- data/lib/away/job.rb +0 -56
- data/lib/away/job/rake_compat.rb +0 -17
- data/lib/away/registry.rb +0 -79
- data/lib/away/runner.rb +0 -276
- data/lib/away/runner/execute.rb +0 -121
- data/lib/away/script.rb +0 -161
- data/lib/away/script/hadoop_command.rb +0 -240
- data/lib/away/source/file_list_source.rb +0 -15
- data/lib/away/source/looper.rb +0 -18
- data/lib/away/task.rb +0 -219
- data/lib/hanuman/action.rb +0 -21
- data/lib/hanuman/chain.rb +0 -4
- data/lib/hanuman/graphviz.rb +0 -74
- data/lib/hanuman/resource.rb +0 -6
- data/lib/hanuman/slot.rb +0 -87
- data/lib/hanuman/slottable.rb +0 -220
- data/lib/wukong/bad_record.rb +0 -15
- data/lib/wukong/event.rb +0 -44
- data/lib/wukong/local_runner.rb +0 -55
- data/lib/wukong/mapred.rb +0 -3
- data/lib/wukong/universe.rb +0 -48
- data/lib/wukong/widget/filter.rb +0 -81
- data/lib/wukong/widget/gibberish.rb +0 -123
- data/lib/wukong/widget/monitor.rb +0 -26
- data/lib/wukong/widget/reducer.rb +0 -66
- data/lib/wukong/widget/stringifier.rb +0 -50
- data/lib/wukong/workflow.rb +0 -22
- data/lib/wukong/workflow/command.rb +0 -42
- data/old/config/emr-example.yaml +0 -48
- data/old/examples/README.txt +0 -17
- data/old/examples/contrib/jeans/README.markdown +0 -165
- data/old/examples/contrib/jeans/data/normalized_sizes +0 -3
- data/old/examples/contrib/jeans/data/orders.tsv +0 -1302
- data/old/examples/contrib/jeans/data/sizes +0 -3
- data/old/examples/contrib/jeans/normalize.rb +0 -20
- data/old/examples/contrib/jeans/sizes.rb +0 -55
- data/old/examples/corpus/bnc_word_freq.rb +0 -44
- data/old/examples/corpus/bucket_counter.rb +0 -47
- data/old/examples/corpus/dbpedia_abstract_to_sentences.rb +0 -86
- data/old/examples/corpus/sentence_bigrams.rb +0 -53
- data/old/examples/corpus/sentence_coocurrence.rb +0 -66
- data/old/examples/corpus/stopwords.rb +0 -138
- data/old/examples/corpus/words_to_bigrams.rb +0 -53
- data/old/examples/emr/README.textile +0 -110
- data/old/examples/emr/dot_wukong_dir/credentials.json +0 -7
- data/old/examples/emr/dot_wukong_dir/emr.yaml +0 -69
- data/old/examples/emr/dot_wukong_dir/emr_bootstrap.sh +0 -33
- data/old/examples/emr/elastic_mapreduce_example.rb +0 -28
- data/old/examples/network_graph/adjacency_list.rb +0 -74
- data/old/examples/network_graph/breadth_first_search.rb +0 -72
- data/old/examples/network_graph/gen_2paths.rb +0 -68
- data/old/examples/network_graph/gen_multi_edge.rb +0 -112
- data/old/examples/network_graph/gen_symmetric_links.rb +0 -64
- data/old/examples/pagerank/README.textile +0 -6
- data/old/examples/pagerank/gen_initial_pagerank_graph.pig +0 -57
- data/old/examples/pagerank/pagerank.rb +0 -72
- data/old/examples/pagerank/pagerank_initialize.rb +0 -42
- data/old/examples/pagerank/run_pagerank.sh +0 -21
- data/old/examples/sample_records.rb +0 -33
- data/old/examples/server_logs/apache_log_parser.rb +0 -15
- data/old/examples/server_logs/nook.rb +0 -48
- data/old/examples/server_logs/nook/faraday_dummy_adapter.rb +0 -94
- data/old/examples/server_logs/user_agent.rb +0 -40
- data/old/examples/simple_word_count.rb +0 -82
- data/old/examples/size.rb +0 -61
- data/old/examples/stats/avg_value_frequency.rb +0 -86
- data/old/examples/stats/binning_percentile_estimator.rb +0 -140
- data/old/examples/stats/data/avg_value_frequency.tsv +0 -3
- data/old/examples/stats/rank_and_bin.rb +0 -173
- data/old/examples/stupidly_simple_filter.rb +0 -40
- data/old/examples/word_count.rb +0 -75
- data/old/graph/graphviz_builder.rb +0 -580
- data/old/graph_easy/Attributes.pm +0 -4181
- data/old/graph_easy/Graphviz.pm +0 -2232
- data/old/wukong.rb +0 -18
- data/old/wukong/and_pig.rb +0 -38
- data/old/wukong/bad_record.rb +0 -18
- data/old/wukong/datatypes.rb +0 -24
- data/old/wukong/datatypes/enum.rb +0 -127
- data/old/wukong/datatypes/fake_types.rb +0 -17
- data/old/wukong/decorator.rb +0 -28
- data/old/wukong/encoding/asciize.rb +0 -108
- data/old/wukong/extensions.rb +0 -16
- data/old/wukong/extensions/array.rb +0 -18
- data/old/wukong/extensions/blank.rb +0 -93
- data/old/wukong/extensions/class.rb +0 -189
- data/old/wukong/extensions/date_time.rb +0 -53
- data/old/wukong/extensions/emittable.rb +0 -69
- data/old/wukong/extensions/enumerable.rb +0 -79
- data/old/wukong/extensions/hash.rb +0 -167
- data/old/wukong/extensions/hash_keys.rb +0 -16
- data/old/wukong/extensions/hash_like.rb +0 -150
- data/old/wukong/extensions/hashlike_class.rb +0 -47
- data/old/wukong/extensions/module.rb +0 -2
- data/old/wukong/extensions/pathname.rb +0 -27
- data/old/wukong/extensions/string.rb +0 -65
- data/old/wukong/extensions/struct.rb +0 -17
- data/old/wukong/extensions/symbol.rb +0 -11
- data/old/wukong/filename_pattern.rb +0 -74
- data/old/wukong/helper.rb +0 -7
- data/old/wukong/helper/stopwords.rb +0 -195
- data/old/wukong/helper/tokenize.rb +0 -35
- data/old/wukong/logger.rb +0 -38
- data/old/wukong/periodic_monitor.rb +0 -72
- data/old/wukong/schema.rb +0 -269
- data/old/wukong/script.rb +0 -286
- data/old/wukong/script/avro_command.rb +0 -5
- data/old/wukong/script/cassandra_loader_script.rb +0 -40
- data/old/wukong/script/emr_command.rb +0 -168
- data/old/wukong/script/hadoop_command.rb +0 -237
- data/old/wukong/script/local_command.rb +0 -41
- data/old/wukong/store.rb +0 -10
- data/old/wukong/store/base.rb +0 -27
- data/old/wukong/store/cassandra.rb +0 -10
- data/old/wukong/store/cassandra/streaming.rb +0 -75
- data/old/wukong/store/cassandra/struct_loader.rb +0 -21
- data/old/wukong/store/cassandra_model.rb +0 -91
- data/old/wukong/store/chh_chunked_flat_file_store.rb +0 -37
- data/old/wukong/store/chunked_flat_file_store.rb +0 -48
- data/old/wukong/store/conditional_store.rb +0 -57
- data/old/wukong/store/factory.rb +0 -8
- data/old/wukong/store/flat_file_store.rb +0 -89
- data/old/wukong/store/key_store.rb +0 -51
- data/old/wukong/store/null_store.rb +0 -15
- data/old/wukong/store/read_thru_store.rb +0 -22
- data/old/wukong/store/tokyo_tdb_key_store.rb +0 -33
- data/old/wukong/store/tyrant_rdb_key_store.rb +0 -57
- data/old/wukong/store/tyrant_tdb_key_store.rb +0 -20
- data/old/wukong/streamer.rb +0 -30
- data/old/wukong/streamer/accumulating_reducer.rb +0 -83
- data/old/wukong/streamer/base.rb +0 -126
- data/old/wukong/streamer/counting_reducer.rb +0 -25
- data/old/wukong/streamer/filter.rb +0 -20
- data/old/wukong/streamer/instance_streamer.rb +0 -15
- data/old/wukong/streamer/json_streamer.rb +0 -21
- data/old/wukong/streamer/line_streamer.rb +0 -12
- data/old/wukong/streamer/list_reducer.rb +0 -31
- data/old/wukong/streamer/rank_and_bin_reducer.rb +0 -145
- data/old/wukong/streamer/record_streamer.rb +0 -14
- data/old/wukong/streamer/reducer.rb +0 -11
- data/old/wukong/streamer/set_reducer.rb +0 -14
- data/old/wukong/streamer/struct_streamer.rb +0 -48
- data/old/wukong/streamer/summing_reducer.rb +0 -29
- data/old/wukong/streamer/uniq_by_last_reducer.rb +0 -51
- data/old/wukong/typed_struct.rb +0 -12
- data/spec/away/encoding_spec.rb +0 -32
- data/spec/away/exe_spec.rb +0 -20
- data/spec/away/flow_spec.rb +0 -82
- data/spec/away/graph_spec.rb +0 -6
- data/spec/away/job_spec.rb +0 -15
- data/spec/away/rake_compat_spec.rb +0 -9
- data/spec/away/script_spec.rb +0 -81
- data/spec/hanuman/graphviz_spec.rb +0 -29
- data/spec/hanuman/slot_spec.rb +0 -2
- data/spec/support/examples_helper.rb +0 -10
- data/spec/support/streamer_test_helpers.rb +0 -6
- data/spec/support/wukong_widget_helpers.rb +0 -66
- data/spec/wukong/processor_spec.rb +0 -109
- data/spec/wukong/widget/filter_spec.rb +0 -99
- data/spec/wukong/widget/stringifier_spec.rb +0 -51
- data/spec/wukong/workflow/command_spec.rb +0 -5
@@ -1,15 +0,0 @@
|
|
1
|
-
module Wukong
|
2
|
-
class Source
|
3
|
-
|
4
|
-
# A FileListSource is a collection of files
|
5
|
-
#
|
6
|
-
# FileLists are lazy. When given a list of glob patterns for possible files to be included in the file list, instead of searching the file structures to find the files, a FileList holds the pattern for latter use.
|
7
|
-
#
|
8
|
-
# This allows us to define a number of FileList to match any number of files, but only search out the actual files when then FileList itself is actually used. The key is that the first time an element of the FileList/Array is requested, the pending patterns are resolved into a real list of file names.
|
9
|
-
#
|
10
|
-
# @see_also http://rdoc.info/gems/rake/Rake/FileList
|
11
|
-
#
|
12
|
-
class FileListSource < Wukong::Source
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
data/lib/away/source/looper.rb
DELETED
data/lib/away/task.rb
DELETED
@@ -1,219 +0,0 @@
|
|
1
|
-
module Wukong
|
2
|
-
|
3
|
-
#
|
4
|
-
#
|
5
|
-
# action
|
6
|
-
# only_if -- Only execute this task if the given block's result is truthy
|
7
|
-
# not_if -- Do not execute this task if the given block's result is truthy
|
8
|
-
#
|
9
|
-
# ignore_failure -- If true, we will continue running the recipe if this resource fails for any reason. (defaults to false)
|
10
|
-
# provider -- The class name of a provider to use for this resource.
|
11
|
-
# retries -- Number of times to catch exceptions and retry the resource (defaults to 0). Requires Chef >= 0.10.4.
|
12
|
-
# retry_delay -- Retry delay in seconds (defaults to 2). Requires Chef >= 0.10.4.
|
13
|
-
# supports -- A hash of options that hint providers as to the capabilities of this resource.
|
14
|
-
#
|
15
|
-
module Task
|
16
|
-
|
17
|
-
#
|
18
|
-
# * `:nothing` -- do nothing - useful if you want to specify a resource, but only notify it of other actions.
|
19
|
-
#
|
20
|
-
# In the absence of another default action, `:nothing` is the default.
|
21
|
-
#
|
22
|
-
# @param [:delayed, :immediately] timing
|
23
|
-
def trigger
|
24
|
-
end
|
25
|
-
|
26
|
-
def run
|
27
|
-
# if dry_run? ; Log.warn "" ; return ; end
|
28
|
-
# ...
|
29
|
-
end
|
30
|
-
|
31
|
-
# Notify another resource to take an action if this resource changes state for any reason.
|
32
|
-
#
|
33
|
-
# @example
|
34
|
-
# notifies :action, "resource_type[resource_name]", :notification_timing
|
35
|
-
def notifies ; end
|
36
|
-
# Take action on this resource if another resource changes state. Works similarly to notifies, but the direction of the relationship is reversed.
|
37
|
-
def subscribes ; end
|
38
|
-
|
39
|
-
def depends(tasks)
|
40
|
-
tasks = Array(tasks)
|
41
|
-
end
|
42
|
-
|
43
|
-
module ClassMethods
|
44
|
-
end
|
45
|
-
def self.included(base)
|
46
|
-
base.send(:include, Wukong::Stage)
|
47
|
-
base.extend(ClassMethods)
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
|
52
|
-
module Task
|
53
|
-
#
|
54
|
-
#
|
55
|
-
class DirectoryTask
|
56
|
-
include Wukong::Task
|
57
|
-
#
|
58
|
-
define_action :create, :description => "Create this directory only if it does not exist. If it exists, do nothing"
|
59
|
-
define_action :update, :description => "Update this directory, whether it exists or not"
|
60
|
-
define_action :delete, :description => "Delete this directory, whether it exists or not"
|
61
|
-
self.default_action = :create
|
62
|
-
#
|
63
|
-
field :path, String, :description => "The path to the directory; by default, the name"
|
64
|
-
field :mode, String, :description => "The octal mode of the directory, e.g. '0755'. Numeric values are *not allowed* -- there's too much danger of saying '755' when you mean 'octal 0755'"
|
65
|
-
field :recursive, :boolean, :description => "recursive=true to operate on parents and leaf, false to operate on leaf only", :default => false,
|
66
|
-
:summary => %Q{- delete: remove the base directory and then recursively delete its parents until one is non-empty.
|
67
|
-
- create: create recursively (ie, mkdir -p). Note: owner/group/mode only applies to the leaf directory, regardless of the value of this attribute.}
|
68
|
-
end
|
69
|
-
|
70
|
-
#
|
71
|
-
class FileTask
|
72
|
-
include Wukong::Task
|
73
|
-
define_action :create, :description => "Create this file only if it does not exist. If it exists, do nothing"
|
74
|
-
define_action :update, :description => "Update this file, whether it exists or not"
|
75
|
-
define_action :delete, :description => "Delete this file, whether it exists or not"
|
76
|
-
define_action :touch, :description => "Touch this file (update the mtime/atime). Will raise a CantTouchThisError if the filesystem does not support mtime/atimes, unless you specify the `:please_hammer => \"don't hurt em\"` option."
|
77
|
-
self.default_action = :create
|
78
|
-
#
|
79
|
-
field :path, String, :description => "Path to the file; by default, the resource's name"
|
80
|
-
field :mode, String, :description => "Octal mode of the file - e.g. '0755' default varies"
|
81
|
-
# field :backup, String, :description => "How many backups of this file to keep. Set to false if you want no backups", :default => "5"
|
82
|
-
end
|
83
|
-
|
84
|
-
#
|
85
|
-
# Creates a filesystem link, symbolic by default.
|
86
|
-
#
|
87
|
-
class LnTask
|
88
|
-
include Wukong::Task
|
89
|
-
define_action :create, :description => "Create this link only if it does not exist. If it exists, do nothing"
|
90
|
-
define_action :update, :description => "Update this link, whether it exists or not"
|
91
|
-
define_action :delete, :description => "Delete this link, whether it exists or not"
|
92
|
-
self.default_action = :create
|
93
|
-
#
|
94
|
-
field :target_file, String, :description => "Path to the created link; by default, same as options[:name]"
|
95
|
-
field :to, String, :description => "The real file you want to link to"
|
96
|
-
field :link_type, Symbol, :description => "create a :symbolic or :hard link", :default => :symbolic
|
97
|
-
end
|
98
|
-
|
99
|
-
#
|
100
|
-
# Create file from a given template:
|
101
|
-
#
|
102
|
-
class TemplateTask
|
103
|
-
include Wukong::Task
|
104
|
-
define_action :create, :description => "Create this file only if it does not exist. If it exists, do nothing"
|
105
|
-
define_action :update, :description => "Update this file, whether it exists or not"
|
106
|
-
define_action :delete, :description => "Delete this file, whether it exists or not"
|
107
|
-
self.default_action = :create
|
108
|
-
#
|
109
|
-
field :path, String, :description => "Path to the file; by default, same as options[:name]"
|
110
|
-
field :source, String, :description => "Template source file"
|
111
|
-
field :variables, String, :description => "Variables to use in the template"
|
112
|
-
#
|
113
|
-
field :mode, String, :description => "Octal mode of the file - e.g. '0755' default varies"
|
114
|
-
# field :backup, String, :description => "How many backups of this file to keep. Set to false if you want no backups", :default => 5
|
115
|
-
end
|
116
|
-
|
117
|
-
#
|
118
|
-
# Create a file from a remote file
|
119
|
-
#
|
120
|
-
class RemoteFileTask
|
121
|
-
include Wukong::Task
|
122
|
-
define_action :create, :description => "Create this file only if it does not exist. If it exists, do nothing"
|
123
|
-
define_action :update, :description => "Update this file, whether it exists or not"
|
124
|
-
define_action :delete, :description => "Delete this file, whether it exists or not"
|
125
|
-
self.default_action = :create
|
126
|
-
#
|
127
|
-
field :path, String, :description => "Path to the file; by default, same as options[:name]"
|
128
|
-
field :mode, String, :description => "(optional) The octal mode of the file - e.g. '0755' default varies"
|
129
|
-
# field :checksum, String, :description => "(optional) the SHA-256 checksum of the file--if the local file matches the checksum, Chef will not download it"
|
130
|
-
# field :backup, String, :description => "How many backups of this file to keep. Set to false if you want no backups", :default => 5
|
131
|
-
end
|
132
|
-
|
133
|
-
#
|
134
|
-
# Send an HTTP request
|
135
|
-
#
|
136
|
-
class HttpRequestTask
|
137
|
-
include Wukong::Task
|
138
|
-
define_action :request, :description => "Send request using the :method option"
|
139
|
-
define_action :get, :description => "Send a GET request"
|
140
|
-
define_action :put, :description => "Send a PUT request"
|
141
|
-
define_action :patch, :description => "Send a PATCH request"
|
142
|
-
define_action :post, :description => "Send a POST request"
|
143
|
-
define_action :delete, :description => "Send a DELETE request"
|
144
|
-
define_action :head, :description => "Send a HEAD request"
|
145
|
-
define_action :options, :description => "Send an OPTIONS request"
|
146
|
-
self.default_action = :get
|
147
|
-
#
|
148
|
-
field :url, String, :description => "The URL to send the request to"
|
149
|
-
field :message, String, :description => "The message to be sent to the URL (as the message parameter)"
|
150
|
-
field :headers, Hash, :description => "Hash of custom headers", :default => Hash.new
|
151
|
-
field :method, String, :description => ""
|
152
|
-
end
|
153
|
-
|
154
|
-
#
|
155
|
-
# run a command
|
156
|
-
#
|
157
|
-
class ExecuteTask
|
158
|
-
include Wukong::Task
|
159
|
-
define_action :run, :description => "runs the command"
|
160
|
-
define_action :revert, :description => "reverse the effects of the primary command. If the `undo_command` field is unset, throws an error."
|
161
|
-
#
|
162
|
-
field :command, String, :description => "The command to execute"
|
163
|
-
field :revert_cmd, String, :description => "Command to undo the effects of the primary command"
|
164
|
-
field :code, String, :description => "Quoted script of code to execute"
|
165
|
-
field :interpreter, String, :description => "Script interpreter to use for code execution"
|
166
|
-
field :flags, [String, Hash], :description => "command line flags to pass to the interpreter when invoking. If a Hash, will be turned into `--key 'value'` pairs; all keys must be symbols or strings and all values must be strings"
|
167
|
-
field :creates, String, :description => "A file this command creates - if the file exists, the command will not be run"
|
168
|
-
field :cwd, String, :description => "Current working directory to run the command from"
|
169
|
-
field :environment, String, :description => "A hash of environment variables to set before running this command"
|
170
|
-
field :returns, Integer, :description => "The return value of the command (may be an array of accepted values) - this resource raises an exception if the return value(s) do not match", :default => 0
|
171
|
-
field :timeout, Integer, :description => "How many seconds to let the command run before timing it out", :default => 3600
|
172
|
-
field :umask, String, :description => "Umask for files created by the command"
|
173
|
-
end
|
174
|
-
|
175
|
-
#
|
176
|
-
# schedule a (job? task?)
|
177
|
-
#
|
178
|
-
class ScheduleTask
|
179
|
-
include Wukong::Task
|
180
|
-
define_action :create, :description => "Create this scheduled task only if it does not exist. If it exists, do nothing"
|
181
|
-
define_action :update, :description => "Update this scheduled task, whether it exists or not"
|
182
|
-
define_action :delete, :description => "Delete this scheduled task, whether it exists or not"
|
183
|
-
self.default_action = :create
|
184
|
-
#
|
185
|
-
field :minute, Integer, :description => "The minute this entry should run (0 - 59)"
|
186
|
-
field :hour, Integer, :description => "The hour this entry should run (0 - 23)"
|
187
|
-
field :weekday, Integer, :description => "The weekday this entry should run (0 - 6) (Sunday=0)"
|
188
|
-
field :day, Integer, :description => "The day of month this entry should run (1 - 31)"
|
189
|
-
field :month, Integer, :description => "The month this entry should run (1 - 12)"
|
190
|
-
end
|
191
|
-
|
192
|
-
# start a longrunning service in a new process
|
193
|
-
class SpawnTask
|
194
|
-
include Wukong::Task
|
195
|
-
end
|
196
|
-
|
197
|
-
#
|
198
|
-
# The incoming_name accepts
|
199
|
-
#
|
200
|
-
# * a string
|
201
|
-
# * a regexp
|
202
|
-
#
|
203
|
-
# The target_name accepts
|
204
|
-
#
|
205
|
-
# * a string
|
206
|
-
# * a `Proc` to mangle the name
|
207
|
-
#
|
208
|
-
# @example
|
209
|
-
#
|
210
|
-
# rule (/part-[mr]-\d+/ => lambda{|name| rename_part(name) }) do |r|
|
211
|
-
# # ...
|
212
|
-
# end
|
213
|
-
class RuleTask
|
214
|
-
include Wukong::Task
|
215
|
-
end
|
216
|
-
end
|
217
|
-
|
218
|
-
|
219
|
-
end
|
data/lib/hanuman/action.rb
DELETED
@@ -1,21 +0,0 @@
|
|
1
|
-
module Hanuman
|
2
|
-
|
3
|
-
class Action < Stage
|
4
|
-
def self.register_action(meth_name=nil, &block)
|
5
|
-
meth_name ||= handle ; klass = self
|
6
|
-
Hanuman::Graph.send(:define_method, meth_name) do |*args, &block|
|
7
|
-
begin
|
8
|
-
klass.make(workflow=self, *args, &block)
|
9
|
-
rescue StandardError => err ; err.polish("adding #{meth_name} to #{self.name} on #{args}") rescue nil ; raise ; end
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
def self.make(workflow, *args, &block)
|
14
|
-
stage = receive(*args)
|
15
|
-
workflow.add_stage stage
|
16
|
-
stage.receive!(&block)
|
17
|
-
stage
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
end
|
data/lib/hanuman/chain.rb
DELETED
data/lib/hanuman/graphviz.rb
DELETED
@@ -1,74 +0,0 @@
|
|
1
|
-
module Hanuman
|
2
|
-
|
3
|
-
Stage.class_eval do
|
4
|
-
class_attribute :draw_shape
|
5
|
-
self.draw_shape = :record
|
6
|
-
|
7
|
-
def to_graphviz(gv)
|
8
|
-
gv.node(self.fullname,
|
9
|
-
:label => name,
|
10
|
-
:shape => draw_shape)
|
11
|
-
# inputs.to_a.each do |input|
|
12
|
-
# gv.edge(input.fullname, self.fullname)
|
13
|
-
# end
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
Slottable.module_eval do
|
18
|
-
def to_graphviz(gv, draw_edges=true)
|
19
|
-
gv.node(self.fullname,
|
20
|
-
:label => name,
|
21
|
-
:inslots => inslots.to_a.map{|slot| slot.name},
|
22
|
-
:outslots => outslots.to_a.map{|slot| slot.name},
|
23
|
-
:shape => draw_shape
|
24
|
-
)
|
25
|
-
# inslots.to_a.each do |inslot|
|
26
|
-
# next unless inslot.input?
|
27
|
-
# gv.edge(inslot.input.fullname, inslot.fullname)
|
28
|
-
# end
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
InputSlot.class_eval do
|
33
|
-
def fullname
|
34
|
-
%Q{"#{stage.fullname}":#{name}}
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
OutputSlot.class_eval do
|
39
|
-
def fullname
|
40
|
-
%Q{"#{stage.fullname}":out_#{name}}
|
41
|
-
end
|
42
|
-
end
|
43
|
-
|
44
|
-
Resource.class_eval do
|
45
|
-
self.draw_shape = :Mrecord
|
46
|
-
end
|
47
|
-
|
48
|
-
class Graph < Action
|
49
|
-
self.draw_shape = :record
|
50
|
-
def to_graphviz(gv)
|
51
|
-
gv.graph(fullname, :label => name) do |gv2|
|
52
|
-
stages.each_value{|stage| stage.to_graphviz(gv2) }
|
53
|
-
edges.each_pair do |from, into|
|
54
|
-
gv2.edge(from.fullname, into.fullname)
|
55
|
-
end
|
56
|
-
end
|
57
|
-
super(gv)
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
module ::Wukong::Universe
|
62
|
-
def to_graphviz
|
63
|
-
gv = Hanuman::Graphvizzer::Universe.new(:name => self.name)
|
64
|
-
@workflows.each do |_, workflow|
|
65
|
-
workflow.to_graphviz(gv)
|
66
|
-
end
|
67
|
-
@dataflows.each do |_, dataflow|
|
68
|
-
dataflow.to_graphviz(gv)
|
69
|
-
end
|
70
|
-
gv
|
71
|
-
end
|
72
|
-
end
|
73
|
-
|
74
|
-
end
|
data/lib/hanuman/resource.rb
DELETED
data/lib/hanuman/slot.rb
DELETED
@@ -1,87 +0,0 @@
|
|
1
|
-
module Hanuman
|
2
|
-
|
3
|
-
#
|
4
|
-
# Provides the methods required in order to accept inbound links.
|
5
|
-
# Including class must provide the input attribute and the owner method.
|
6
|
-
#
|
7
|
-
# @see IsOwnInputSlot
|
8
|
-
# @see Slottable
|
9
|
-
module Inlinkable
|
10
|
-
extend Gorillib::Concern
|
11
|
-
|
12
|
-
def set_input(stage)
|
13
|
-
write_attribute(:input, stage)
|
14
|
-
self
|
15
|
-
end
|
16
|
-
|
17
|
-
# wire another slot into this one
|
18
|
-
# @param other [Hanuman::Outlinkable] the other stage of slot
|
19
|
-
# @returns this object, for chaining
|
20
|
-
def <<(other)
|
21
|
-
from(other)
|
22
|
-
self
|
23
|
-
end
|
24
|
-
|
25
|
-
# wire another slot into this one
|
26
|
-
# @param other [Hanuman::Outlinkable] the other stage or slot
|
27
|
-
# @returns this object, for chaining
|
28
|
-
def from(other)
|
29
|
-
owner.connect(other, self)
|
30
|
-
self
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
#
|
35
|
-
# Provides the methods required in order to accept outbound links.
|
36
|
-
# Including class must provide the output attribute and the owner method.
|
37
|
-
#
|
38
|
-
# @see IsOwnOutputSlot
|
39
|
-
# @see Slottable
|
40
|
-
module Outlinkable
|
41
|
-
extend Gorillib::Concern
|
42
|
-
|
43
|
-
def set_output(stage)
|
44
|
-
write_attribute(:output, stage)
|
45
|
-
self
|
46
|
-
end
|
47
|
-
|
48
|
-
# wire this slot into another slot
|
49
|
-
# @param other [Hanuman::Slot] the other stage
|
50
|
-
# @returns the other slot
|
51
|
-
def >(other)
|
52
|
-
_, other = owner.connect(self, other)
|
53
|
-
other
|
54
|
-
end
|
55
|
-
|
56
|
-
# wire this stage's output into another stage's input
|
57
|
-
# @param other [Hanuman::Stage]the other stage
|
58
|
-
# @returns this stage, for chaining
|
59
|
-
def into(other)
|
60
|
-
owner.connect(self, other)
|
61
|
-
self
|
62
|
-
end
|
63
|
-
end
|
64
|
-
|
65
|
-
class Slot
|
66
|
-
include Gorillib::Builder
|
67
|
-
field :name, Symbol
|
68
|
-
field :stage, Hanuman::Stage
|
69
|
-
def owner
|
70
|
-
stage.owner
|
71
|
-
end
|
72
|
-
def to_key() name ; end
|
73
|
-
end
|
74
|
-
|
75
|
-
class InputSlot < Slot
|
76
|
-
include Hanuman::Inlinkable
|
77
|
-
magic :input, Hanuman::Stage, :writer => false, :tester => true, :doc => 'stage/slot in graph that feeds into this one'
|
78
|
-
def other() input ; end
|
79
|
-
end
|
80
|
-
|
81
|
-
class OutputSlot < Slot
|
82
|
-
include Hanuman::Outlinkable
|
83
|
-
magic :output, Hanuman::Stage, :writer => false, :tester => true, :doc => 'stage/slot in graph this one feeds into'
|
84
|
-
def other() ouput ; end
|
85
|
-
end
|
86
|
-
|
87
|
-
end
|