skeem 0.0.0

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
+ SHA1:
3
+ metadata.gz: 39b492f6106bf72c46fdcd5fd148bd91a4797835
4
+ data.tar.gz: 5b2be1ee0f1ab32df436f71dda5e6bf704420abf
5
+ SHA512:
6
+ metadata.gz: 3aa7a80bc07408bf2c659d5ef5c02669efcaa78bac354831c7d92c41a95d029f2d5ada637e7635937705d9569b684a3380db90667882b696caa5fd3659fb8cd7
7
+ data.tar.gz: 8c1a58c9d7991020d6456bdf1dc776fa19a5251e904a5006f55028179247ffe2560cda207fae8e79155daaf2ede741a78a92bd73d4b50849a63ee260c724c0f3
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --format documentation
2
+ --color
3
+ --require spec_helper
data/.rubocop.yml ADDED
@@ -0,0 +1,195 @@
1
+ AllCops:
2
+ Exclude:
3
+ - 'exp/**/*'
4
+
5
+ Layout/CaseIndentation:
6
+ Enabled: false
7
+
8
+ Layout/CommentIndentation:
9
+ Enabled: false
10
+
11
+ Layout/ElseAlignment:
12
+ Enabled: false
13
+
14
+ Layout/EmptyLines:
15
+ Enabled: false
16
+
17
+ Layout/EndAlignment:
18
+ Enabled: false
19
+
20
+ Layout/EndOfLine:
21
+ Enabled: true
22
+ EnforcedStyle: lf
23
+
24
+ Layout/IndentationWidth:
25
+ Enabled: false
26
+
27
+ Layout/IndentationConsistency:
28
+ Enabled: true
29
+
30
+ Layout/IndentHeredoc:
31
+ Enabled: false
32
+
33
+ Layout/MultilineHashBraceLayout:
34
+ Enabled: true
35
+
36
+ Layout/SpaceAroundOperators:
37
+ Enabled: true
38
+
39
+ Layout/SpaceInsideParens:
40
+ Enabled: true
41
+
42
+ Layout/Tab:
43
+ Enabled: true
44
+
45
+ Layout/TrailingBlankLines:
46
+ Enabled: true
47
+
48
+ Layout/TrailingWhitespace:
49
+ Enabled: true
50
+
51
+ Lint/Loop:
52
+ Enabled: true
53
+
54
+ Lint/RescueException:
55
+ Enabled: true
56
+
57
+ Lint/UnusedMethodArgument:
58
+ Enabled: true
59
+
60
+ Lint/UselessAccessModifier:
61
+ Enabled: true
62
+
63
+ Lint/Void:
64
+ Enabled: false
65
+
66
+ Lint/UselessAssignment:
67
+ Enabled: true
68
+
69
+ Metrics/AbcSize:
70
+ Enabled: false
71
+
72
+ Metrics/BlockLength:
73
+ Enabled: true
74
+ Max: 350
75
+
76
+ Metrics/ClassLength:
77
+ Enabled: true
78
+ Max: 350
79
+
80
+ Metrics/CyclomaticComplexity:
81
+ Enabled: false
82
+
83
+ Metrics/LineLength:
84
+ Enabled: false
85
+ Max: 90
86
+
87
+ Metrics/MethodLength:
88
+ Enabled: true
89
+ Max: 40
90
+
91
+ Metrics/ModuleLength:
92
+ Enabled: true
93
+ Max: 500
94
+
95
+ Metrics/PerceivedComplexity:
96
+ Enabled: false
97
+
98
+ Naming/ConstantName:
99
+ Enabled: false
100
+
101
+ Naming/ClassAndModuleCamelCase:
102
+ Enabled: false
103
+
104
+ Naming/UncommunicativeBlockParamName:
105
+ Enabled: true
106
+
107
+ Naming/UncommunicativeMethodParamName:
108
+ Enabled: false
109
+
110
+ Naming/VariableName:
111
+ Enabled: false
112
+
113
+ Style/Alias:
114
+ Enabled: true
115
+
116
+ Layout/AlignHash:
117
+ Enabled: false
118
+
119
+ Style/AsciiComments:
120
+ Enabled: false
121
+
122
+ Style/BarePercentLiterals:
123
+ Enabled: false
124
+
125
+ Style/BlockComments:
126
+ Enabled: false
127
+
128
+ Style/CharacterLiteral:
129
+ Enabled: false
130
+
131
+ Style/ClassCheck:
132
+ Enabled: false
133
+
134
+ Style/ClassVars:
135
+ Enabled: false
136
+
137
+ Style/ColonMethodCall:
138
+ Enabled: false
139
+
140
+ Style/CommentAnnotation:
141
+ Enabled: false
142
+
143
+ Style/CommentedKeyword:
144
+ Enabled: false
145
+
146
+ Style/ConditionalAssignment:
147
+ Enabled: false
148
+
149
+ Style/DefWithParentheses:
150
+ Enabled: true
151
+
152
+ Style/Documentation:
153
+ Enabled: false
154
+
155
+ Style/ExpandPathArguments:
156
+ Enabled: false
157
+
158
+ Style/GuardClause:
159
+ Enabled: false
160
+
161
+ Style/IfUnlessModifier:
162
+ Enabled: false
163
+
164
+ Style/InverseMethods:
165
+ Enabled: true
166
+
167
+ Style/Next:
168
+ Enabled: false
169
+
170
+ Style/RaiseArgs:
171
+ Enabled: true
172
+
173
+ Style/RedundantReturn:
174
+ Enabled: false
175
+
176
+ Style/RedundantSelf:
177
+ Enabled: true
178
+
179
+ Style/RegexpLiteral:
180
+ Enabled: false
181
+
182
+ Style/PercentLiteralDelimiters:
183
+ Enabled: false
184
+
185
+ Style/StderrPuts:
186
+ Enabled: false
187
+
188
+ Style/StringLiterals:
189
+ Enabled: true
190
+
191
+ Style/TernaryParentheses:
192
+ Enabled: false
193
+
194
+ Style/UnlessElse:
195
+ Enabled: false
data/.yardopts ADDED
@@ -0,0 +1,6 @@
1
+ --exclude examples --exclude features --exclude spec
2
+ --no-private
3
+ --markup markdown
4
+ -
5
+ Changelog.md
6
+ License.txt
data/CHANGELOG.md ADDED
@@ -0,0 +1,12 @@
1
+ ## [0.0.0] - 2018-08-24
2
+ ### Added
3
+ - Initial Github commit
4
+
5
+ ## Unreleased
6
+ ### Added
7
+ ### Changed
8
+ ### Deprecated
9
+ ### Removed
10
+ ### Fixed
11
+ ### Security
12
+
data/Gemfile ADDED
@@ -0,0 +1,6 @@
1
+ source 'https://rubygems.org'
2
+
3
+ git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
4
+
5
+ # Specify your gem's dependencies in skeem.gemspec
6
+ gemspec
data/LICENSE.txt ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2018 Dimitri Geshef
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,61 @@
1
+ # Skeem
2
+ __Skeem__ will be an interpreter of a subset of the Scheme programming language.
3
+
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ ```ruby
10
+ gem 'skeem'
11
+ ```
12
+
13
+ And then execute:
14
+
15
+ $ bundle
16
+
17
+ Or install it yourself as:
18
+
19
+ $ gem install skeem
20
+
21
+ ## Usage
22
+
23
+ The __Skeem__ project has just started.
24
+ At this stage, it is too early to use the gem.
25
+
26
+ Roadmap:
27
+ - Implement an equivalent of [lis.py](http://www.norvig.com/lispy.html)
28
+ - Implement an equivalent of [lispy](http://norvig.com/lispy2.html)
29
+ - Make it pass the test suite
30
+ - Extend the language in order to support [Minikanren](https://github.com/TheReasonedSchemer2ndEd/CodeFromTheReasonedSchemer2ndEd)
31
+ - Make it pass all examples from the [Reasoned Schemer](https://mitpress.mit.edu/books/reasoned-schemer-second-edition) book.
32
+
33
+ TODO: Write usage instructions here
34
+
35
+ ## Development
36
+
37
+ After checking out the repo, run `bin/setup` to install dependencies.
38
+ Then, run `rake spec` to run the tests. You can also run `bin/console`
39
+ for an interactive prompt that will allow you to experiment.
40
+ To install this gem onto your local machine, run `bundle exec rake install`.
41
+ To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`,
42
+ which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
43
+
44
+ ## Contributing
45
+
46
+ Bug reports and pull requests are welcome on GitHub at https://github.com/famished-tiger/Skeem.
47
+ This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the
48
+ [Contributor Covenant](http://contributor-covenant.org) code of conduct.
49
+
50
+ ## License
51
+
52
+ Copyright
53
+ ---------
54
+ Copyright (c) 2018, Dimitri Geshef.
55
+ __Skeem__ is released under the MIT License see [LICENSE.txt](https://github.com/famished-tiger/Skeem/blob/master/LICENSE.txt) for details.
56
+
57
+ ## Code of Conduct
58
+
59
+ Everyone interacting in the Skeem project’s codebases, issue trackers,
60
+ chat rooms and mailing lists is expected to follow the
61
+ [code of conduct](https://github.com/famished-tiger/Skeem/blob/master/CODE_OF_CONDUCT.md).
data/Rakefile ADDED
@@ -0,0 +1,10 @@
1
+ require 'bundler/gem_tasks'
2
+ require 'rspec/core/rake_task'
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ # Combine RSpec and Cucumber tests
7
+ desc 'Run tests, with RSpec'
8
+ task test: :spec
9
+
10
+ task default: :test
data/appveyor.yml ADDED
@@ -0,0 +1,27 @@
1
+ version: '{build}'
2
+ max_jobs: 3
3
+ environment:
4
+ matrix:
5
+ - Ruby_version: 21
6
+ - Ruby_version: 21-x64
7
+ - Ruby_version: 22
8
+ - Ruby_version: 22-x64
9
+ - Ruby_version: 23
10
+ - Ruby_version: 23-x64
11
+ - Ruby_version: 24
12
+ - Ruby_version: 24-x64
13
+ - Ruby_version: 25
14
+ - Ruby_version: 25-x64
15
+
16
+ # These are failing
17
+ # - Ruby_version: 26
18
+ # - Ruby_version: 26-x64
19
+
20
+ install:
21
+ - set PATH=C:\Ruby%Ruby_version%\bin;%PATH%
22
+ - bundle install --retry=3 --clean --force
23
+
24
+ build: off
25
+
26
+ test_script:
27
+ - bundle exec rake
@@ -0,0 +1,3 @@
1
+ module Skeem
2
+ VERSION = '0.0.0'.freeze
3
+ end
data/lib/skeem.rb ADDED
@@ -0,0 +1,5 @@
1
+ require 'skeem/version'
2
+
3
+ module Skeem
4
+ # Your code goes here...
5
+ end
data/skeem.gemspec ADDED
@@ -0,0 +1,59 @@
1
+ lib = File.expand_path('../lib', __FILE__)
2
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
+ require 'skeem/version'
4
+
5
+ # Implementation module
6
+ module PkgExtending
7
+ def self.pkg_files(aPackage)
8
+ file_list = Dir[
9
+ '.rubocop.yml',
10
+ '.rspec',
11
+ '.yardopts',
12
+ 'appveyor.yml',
13
+ 'Gemfile',
14
+ 'Rakefile',
15
+ 'CHANGELOG.md',
16
+ 'LICENSE.txt',
17
+ 'README.md',
18
+ 'skeem.gemspec',
19
+ 'bin/*.rb',
20
+ 'lib/*.*',
21
+ 'lib/**/*.rb',
22
+ 'spec/**/*.rb',
23
+ ]
24
+ aPackage.files = file_list
25
+ aPackage.test_files = Dir['spec/**/*_spec.rb']
26
+ aPackage.require_path = 'lib'
27
+ end
28
+
29
+ def self.pkg_documentation(aPackage)
30
+ aPackage.rdoc_options << '--charset=UTF-8 --exclude="examples|spec"'
31
+ aPackage.extra_rdoc_files = ['README.md']
32
+ end
33
+ end # module
34
+
35
+
36
+ Gem::Specification.new do |spec|
37
+ spec.name = 'skeem'
38
+ spec.version = Skeem::VERSION
39
+ spec.authors = ['Dimitri Geshef']
40
+ spec.email = ['famished.tiger@yahoo.com']
41
+
42
+ spec.description = <<-DESCR
43
+ Skeem is an interpreter of a subset of the Scheme programming language.
44
+ DESCR
45
+ spec.summary = <<-SUMMARY
46
+ Skeem is an interpreter of a subset of the Scheme programming language.
47
+ Scheme is a descendent of the Lisp language.
48
+ SUMMARY
49
+ spec.homepage = 'https://github.com/famished-tiger/Skeem'
50
+ spec.license = 'MIT'
51
+
52
+ spec.bindir = 'bin'
53
+ spec.require_paths = ['lib']
54
+ PkgExtending.pkg_files(spec)
55
+ PkgExtending.pkg_documentation(spec)
56
+ spec.add_development_dependency 'bundler', '~> 1.16'
57
+ spec.add_development_dependency 'rake', '~> 10.0'
58
+ spec.add_development_dependency 'rspec', '~> 3.0'
59
+ end
@@ -0,0 +1,5 @@
1
+ RSpec.describe Skeem do
2
+ it 'has a version number' do
3
+ expect(Skeem::VERSION).not_to be nil
4
+ end
5
+ end
@@ -0,0 +1,14 @@
1
+ require 'bundler/setup'
2
+ require 'skeem'
3
+
4
+ RSpec.configure do |config|
5
+ # Enable flags like --only-failures and --next-failure
6
+ config.example_status_persistence_file_path = '.rspec_status'
7
+
8
+ # Disable RSpec exposing methods globally on `Module` and `main`
9
+ config.disable_monkey_patching!
10
+
11
+ config.expect_with :rspec do |c|
12
+ c.syntax = :expect
13
+ end
14
+ end
metadata ADDED
@@ -0,0 +1,105 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: skeem
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Dimitri Geshef
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2018-08-24 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.16'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.16'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '3.0'
55
+ description: |2
56
+ Skeem is an interpreter of a subset of the Scheme programming language.
57
+ email:
58
+ - famished.tiger@yahoo.com
59
+ executables: []
60
+ extensions: []
61
+ extra_rdoc_files:
62
+ - README.md
63
+ files:
64
+ - ".rspec"
65
+ - ".rubocop.yml"
66
+ - ".yardopts"
67
+ - CHANGELOG.md
68
+ - Gemfile
69
+ - LICENSE.txt
70
+ - README.md
71
+ - Rakefile
72
+ - appveyor.yml
73
+ - lib/skeem.rb
74
+ - lib/skeem/version.rb
75
+ - skeem.gemspec
76
+ - spec/skeem_spec.rb
77
+ - spec/spec_helper.rb
78
+ homepage: https://github.com/famished-tiger/Skeem
79
+ licenses:
80
+ - MIT
81
+ metadata: {}
82
+ post_install_message:
83
+ rdoc_options:
84
+ - --charset=UTF-8 --exclude="examples|spec"
85
+ require_paths:
86
+ - lib
87
+ required_ruby_version: !ruby/object:Gem::Requirement
88
+ requirements:
89
+ - - ">="
90
+ - !ruby/object:Gem::Version
91
+ version: '0'
92
+ required_rubygems_version: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ requirements: []
98
+ rubyforge_project:
99
+ rubygems_version: 2.6.13
100
+ signing_key:
101
+ specification_version: 4
102
+ summary: Skeem is an interpreter of a subset of the Scheme programming language. Scheme
103
+ is a descendent of the Lisp language.
104
+ test_files:
105
+ - spec/skeem_spec.rb