pushdown 0.1.0.pre.20210714190141

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: b3aa15b901bc12dcc15430512e8ec06fdaa5bbc98afd222a62892fad5b1fa689
4
+ data.tar.gz: 5b4d53652f5a1d0df9c759d6b9226d4780c87cb4258d650295748e8ecd64ab01
5
+ SHA512:
6
+ metadata.gz: 5f3143596b9615ab3a538a2b5256fc43649b11ca1cf6a90fa33a616cee74c09d6ba39e4832ad417352fd15a1162a2698daca1aedcd069af4cf2d48b551dd1245
7
+ data.tar.gz: 7f1fd1112549fd7cf19c2a472678fbd5dc58d6d07178d7ce84d0a5d7b96293a3e272b691499624fd23de961aff1df50b742bdaeab640e4d0e4c065fa6771b5d7
data/.simplecov ADDED
@@ -0,0 +1,9 @@
1
+ # Simplecov config
2
+
3
+ SimpleCov.start do
4
+ add_filter 'spec'
5
+ add_filter 'integration'
6
+ add_group "Needing tests" do |file|
7
+ file.covered_percent < 90
8
+ end
9
+ end
data/History.md ADDED
@@ -0,0 +1,4 @@
1
+ ## v0.0.1 [YYYY-MM-DD] Michael Granger <ged@FaerieMUD.org>
2
+
3
+ Initial release.
4
+
data/README.md ADDED
@@ -0,0 +1,85 @@
1
+ # Pushdown
2
+
3
+ home
4
+ : http://hg.sr.ht/~ged/Pushdown
5
+
6
+ code
7
+ : http://hg.sr.ht/~ged/Pushdown
8
+
9
+ github
10
+ : https://github.com/ged/pushdown
11
+
12
+ docs
13
+ : http://deveiate.org/code/pushdown
14
+
15
+
16
+ ## Description
17
+
18
+ A pushdown automaton toolkit for Ruby. It's based on [the State Manager from
19
+ the Amethyst project][amethyst-state-manager].
20
+
21
+ It's still mostly experimental.
22
+
23
+
24
+ ## Prerequisites
25
+
26
+ * Ruby
27
+
28
+
29
+ ## Installation
30
+
31
+ $ gem install pushdown
32
+
33
+
34
+ ## Contributing
35
+
36
+ You can check out the current development source with Mercurial via its
37
+ [project page](http://bitbucket.org/ged/pushdown). Or if you prefer
38
+ Git, via [its Github mirror](https://github.com/ged/pushdown).
39
+
40
+ After checking out the source, run:
41
+
42
+ $ rake newb
43
+
44
+ This task will install any missing dependencies, run the tests/specs,
45
+ and generate the API documentation.
46
+
47
+
48
+ ## Author(s)
49
+
50
+ * Michael Granger <ged@faeriemud.org>
51
+
52
+
53
+ ## License
54
+
55
+ Copyright (c) 2019-2021, Michael Granger
56
+ All rights reserved.
57
+
58
+ Redistribution and use in source and binary forms, with or without
59
+ modification, are permitted provided that the following conditions are met:
60
+
61
+ * Redistributions of source code must retain the above copyright notice,
62
+ this list of conditions and the following disclaimer.
63
+
64
+ * Redistributions in binary form must reproduce the above copyright notice,
65
+ this list of conditions and the following disclaimer in the documentation
66
+ and/or other materials provided with the distribution.
67
+
68
+ * Neither the name of the author/s, nor the names of the project's
69
+ contributors may be used to endorse or promote products derived from this
70
+ software without specific prior written permission.
71
+
72
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
73
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
74
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
75
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
76
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
77
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
78
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
79
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
80
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
81
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
82
+
83
+
84
+ [amethyst-state-manager]: https://book.amethyst.rs/stable/concepts/state.html#state-manager
85
+
data/Rakefile ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env ruby -S rake
2
+
3
+ require 'rake/deveiate'
4
+
5
+ Rake::DevEiate.setup( 'pushdown' ) do |project|
6
+ project.publish_to = 'deveiate:/usr/local/www/public/code'
7
+ end
8
+
data/lib/pushdown.rb ADDED
@@ -0,0 +1,31 @@
1
+ # -*- ruby -*-
2
+ # frozen_string_literal: true
3
+
4
+ require 'loggability'
5
+
6
+ # Pushdown -- a pushdown automaton implementation for Ruby.
7
+ #
8
+ # Starting points:
9
+ #
10
+ # - Pushdown::Automaton
11
+ # - Pushdown::State
12
+ # - Pushdown::Transition
13
+ #
14
+ module Pushdown
15
+ extend Loggability
16
+
17
+ # Package version
18
+ VERSION = '0.0.1'
19
+
20
+
21
+ # Loggability API -- create a logger for Pushdown classes and modules
22
+ log_as :pushdown
23
+
24
+
25
+ autoload :Automaton, 'pushdown/automaton'
26
+ autoload :State, 'pushdown/state'
27
+ autoload :Transition, 'pushdown/transition'
28
+
29
+
30
+ end # module Pushdown
31
+
@@ -0,0 +1,17 @@
1
+ # -*- ruby -*-
2
+ # frozen_string_literal: true
3
+
4
+ require_relative 'spec_helper'
5
+
6
+ require 'rspec'
7
+ require 'pushdown'
8
+
9
+
10
+ RSpec.describe( Pushdown ) do
11
+
12
+ it "has a semantic version" do
13
+ expect( described_class::VERSION ).to match( /\A\d+(\.\d+){2}/ )
14
+ end
15
+
16
+ end
17
+
@@ -0,0 +1,28 @@
1
+ # -*- ruby -*-
2
+ # frozen_string_literal: true
3
+
4
+ require 'simplecov' if ENV['COVERAGE']
5
+
6
+ require 'rspec'
7
+
8
+ require 'loggability/spechelpers'
9
+
10
+
11
+ ### Mock with RSpec
12
+ RSpec.configure do |config|
13
+ config.mock_with( :rspec ) do |mock|
14
+ mock.syntax = :expect
15
+ end
16
+
17
+ config.disable_monkey_patching!
18
+ config.example_status_persistence_file_path = "spec/.status"
19
+ config.filter_run :focus
20
+ config.filter_run_when_matching :focus
21
+ config.order = :random
22
+ config.profile_examples = 5
23
+ config.run_all_when_everything_filtered = true
24
+ config.shared_context_metadata_behavior = :apply_to_host_groups
25
+ # config.warnings = true
26
+ end
27
+
28
+
metadata ADDED
@@ -0,0 +1,70 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: pushdown
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0.pre.20210714190141
5
+ platform: ruby
6
+ authors:
7
+ - Michael Granger
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2021-07-14 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rake-deveiate
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '0.5'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '0.5'
27
+ description: A pushdown automaton toolkit for Ruby. It&#39;s based on the State Manager
28
+ from the Amethyst project.
29
+ email:
30
+ - ged@faeriemud.org
31
+ executables: []
32
+ extensions: []
33
+ extra_rdoc_files: []
34
+ files:
35
+ - ".simplecov"
36
+ - History.md
37
+ - README.md
38
+ - Rakefile
39
+ - lib/pushdown.rb
40
+ - spec/pushdown_spec.rb
41
+ - spec/spec_helper.rb
42
+ homepage: http://hg.sr.ht/~ged/Pushdown
43
+ licenses:
44
+ - BSD-3-Clause
45
+ metadata:
46
+ bug_tracker_uri: http://todo.sr.ht/~ged/Pushdown
47
+ changelog_uri: http://deveiate.org/code/pushdown/History_md.html
48
+ documentation_uri: http://deveiate.org/code/pushdown
49
+ homepage_uri: http://hg.sr.ht/~ged/Pushdown
50
+ source_uri: http://hg.sr.ht/~ged/Pushdown
51
+ post_install_message:
52
+ rdoc_options: []
53
+ require_paths:
54
+ - lib
55
+ required_ruby_version: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ version: '0'
60
+ required_rubygems_version: !ruby/object:Gem::Requirement
61
+ requirements:
62
+ - - ">"
63
+ - !ruby/object:Gem::Version
64
+ version: 1.3.1
65
+ requirements: []
66
+ rubygems_version: 3.1.6
67
+ signing_key:
68
+ specification_version: 4
69
+ summary: A pushdown automaton toolkit for Ruby.
70
+ test_files: []