halunke 0.3.0 → 0.3.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: df4242816f16240f4ecb71b5a1412b7e0e6a2345
4
- data.tar.gz: f114fb281e8beb82bc8ed50f81f6087e91a6409b
3
+ metadata.gz: 1cf23103f236d1d5c248fe1bf071db2e49873fe1
4
+ data.tar.gz: 03a326bb35a35d4a6711b5e72ab11cd6f55fec40
5
5
  SHA512:
6
- metadata.gz: 34027218c4f018c28843168c0b19d2de85922c5a420c84f712ef3f2cee061399049875dfe6bf5985bd4ee75cb2fd74e23672c90ed3c0447094e9e2c37ba4c093
7
- data.tar.gz: 49b490349bf99ef366206e495aaa494c438ef5c83e68d176f32673b67ab298716c51f0951ab4aff36bf03ace191982cb53a5880155a410b3b238c9a62841fc25
6
+ metadata.gz: dba700ccf46564d88034913a3ff10168cbb6acb0d50abbcf9d3a0f32cdcdb12ccf594b877f0e20fce4d70f1f50df69095ffedfb1ccccefcb07d811c885d66bd8
7
+ data.tar.gz: 7d641c828755558b4581fccdd536a82bf8ac4434c667c3731d74ad0404f64d31f602f9c66a00d346cc88b07c4a15719fdacd1676345c0d825c734ccf3eafbd4d
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- halunke (0.3.0)
4
+ halunke (0.3.1)
5
5
  rack (~> 2.0.4)
6
6
 
7
7
  GEM
data/README.md CHANGED
@@ -1,43 +1,28 @@
1
1
  # Halunke
2
2
 
3
- Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/halunke`. To experiment with that code, run `bin/console` for an interactive prompt.
3
+ Halunke is a dynamic, object-oriented language that has a simple grammar
4
+ inspired by Smalltalk and Lisp. It is created to show that interesting
5
+ characteristics traditionally described as "functional" make sense in an
6
+ object-oriented language:
4
7
 
5
- TODO: Delete this and the text above, and describe your gem
8
+ * Separation of identity and data (but not data and behavior)
9
+ * Immutability and persistent data structures
10
+ * Isolation of Side-Effects
11
+ * Pattern matching
6
12
 
7
- ## Installation
13
+ It also has the following characteristics:
8
14
 
9
- Add this line to your application's Gemfile:
15
+ * There is no null/nil value in the language
10
16
 
11
- ```ruby
12
- gem 'halunke'
13
- ```
14
-
15
- And then execute:
16
-
17
- $ bundle
18
-
19
- Or install it yourself as:
20
-
21
- $ gem install halunke
22
-
23
- ## Usage
24
-
25
- TODO: Write usage instructions here
26
-
27
- ## Development
28
-
29
- After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
30
-
31
- To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, 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).
32
-
33
- ## Contributing
34
-
35
- Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/halunke. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
17
+ Find out more on the [documentation page](https://moonglum.github.io/halunke).
36
18
 
37
19
  ## License
38
20
 
39
- The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
21
+ The project is available as open source under the terms of the [MIT
22
+ License](https://opensource.org/licenses/MIT).
40
23
 
41
24
  ## Code of Conduct
42
25
 
43
- Everyone interacting in the Halunke project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/[USERNAME]/halunke/blob/master/CODE_OF_CONDUCT.md).
26
+ Everyone interacting in the Halunke project’s codebases, issue trackers, chat
27
+ rooms and mailing lists is expected to follow the [code of
28
+ conduct](https://github.com/moonglum/halunke/blob/master/CODE_OF_CONDUCT.md).
@@ -0,0 +1 @@
1
+ /_site
@@ -0,0 +1,3 @@
1
+ source "https://rubygems.org"
2
+
3
+ gem "github-pages", group: :jekyll_plugins
@@ -0,0 +1,239 @@
1
+ GEM
2
+ remote: https://rubygems.org/
3
+ specs:
4
+ activesupport (4.2.9)
5
+ i18n (~> 0.7)
6
+ minitest (~> 5.1)
7
+ thread_safe (~> 0.3, >= 0.3.4)
8
+ tzinfo (~> 1.1)
9
+ addressable (2.5.2)
10
+ public_suffix (>= 2.0.2, < 4.0)
11
+ coffee-script (2.4.1)
12
+ coffee-script-source
13
+ execjs
14
+ coffee-script-source (1.11.1)
15
+ colorator (1.1.0)
16
+ commonmarker (0.17.7.1)
17
+ ruby-enum (~> 0.5)
18
+ concurrent-ruby (1.0.5)
19
+ ethon (0.11.0)
20
+ ffi (>= 1.3.0)
21
+ execjs (2.7.0)
22
+ faraday (0.14.0)
23
+ multipart-post (>= 1.2, < 3)
24
+ ffi (1.9.21)
25
+ forwardable-extended (2.6.0)
26
+ gemoji (3.0.0)
27
+ github-pages (176)
28
+ activesupport (= 4.2.9)
29
+ github-pages-health-check (= 1.3.5)
30
+ jekyll (= 3.6.2)
31
+ jekyll-avatar (= 0.5.0)
32
+ jekyll-coffeescript (= 1.0.2)
33
+ jekyll-commonmark-ghpages (= 0.1.4)
34
+ jekyll-default-layout (= 0.1.4)
35
+ jekyll-feed (= 0.9.2)
36
+ jekyll-gist (= 1.4.1)
37
+ jekyll-github-metadata (= 2.9.3)
38
+ jekyll-mentions (= 1.2.0)
39
+ jekyll-optional-front-matter (= 0.3.0)
40
+ jekyll-paginate (= 1.1.0)
41
+ jekyll-readme-index (= 0.2.0)
42
+ jekyll-redirect-from (= 0.12.1)
43
+ jekyll-relative-links (= 0.5.2)
44
+ jekyll-remote-theme (= 0.2.3)
45
+ jekyll-sass-converter (= 1.5.0)
46
+ jekyll-seo-tag (= 2.3.0)
47
+ jekyll-sitemap (= 1.1.1)
48
+ jekyll-swiss (= 0.4.0)
49
+ jekyll-theme-architect (= 0.1.0)
50
+ jekyll-theme-cayman (= 0.1.0)
51
+ jekyll-theme-dinky (= 0.1.0)
52
+ jekyll-theme-hacker (= 0.1.0)
53
+ jekyll-theme-leap-day (= 0.1.0)
54
+ jekyll-theme-merlot (= 0.1.0)
55
+ jekyll-theme-midnight (= 0.1.0)
56
+ jekyll-theme-minimal (= 0.1.0)
57
+ jekyll-theme-modernist (= 0.1.0)
58
+ jekyll-theme-primer (= 0.5.2)
59
+ jekyll-theme-slate (= 0.1.0)
60
+ jekyll-theme-tactile (= 0.1.0)
61
+ jekyll-theme-time-machine (= 0.1.0)
62
+ jekyll-titles-from-headings (= 0.5.0)
63
+ jemoji (= 0.8.1)
64
+ kramdown (= 1.16.2)
65
+ liquid (= 4.0.0)
66
+ listen (= 3.0.6)
67
+ mercenary (~> 0.3)
68
+ minima (= 2.1.1)
69
+ nokogiri (>= 1.8.1, < 2.0)
70
+ rouge (= 2.2.1)
71
+ terminal-table (~> 1.4)
72
+ github-pages-health-check (1.3.5)
73
+ addressable (~> 2.3)
74
+ net-dns (~> 0.8)
75
+ octokit (~> 4.0)
76
+ public_suffix (~> 2.0)
77
+ typhoeus (~> 0.7)
78
+ html-pipeline (2.7.1)
79
+ activesupport (>= 2)
80
+ nokogiri (>= 1.4)
81
+ i18n (0.9.4)
82
+ concurrent-ruby (~> 1.0)
83
+ jekyll (3.6.2)
84
+ addressable (~> 2.4)
85
+ colorator (~> 1.0)
86
+ jekyll-sass-converter (~> 1.0)
87
+ jekyll-watch (~> 1.1)
88
+ kramdown (~> 1.14)
89
+ liquid (~> 4.0)
90
+ mercenary (~> 0.3.3)
91
+ pathutil (~> 0.9)
92
+ rouge (>= 1.7, < 3)
93
+ safe_yaml (~> 1.0)
94
+ jekyll-avatar (0.5.0)
95
+ jekyll (~> 3.0)
96
+ jekyll-coffeescript (1.0.2)
97
+ coffee-script (~> 2.2)
98
+ coffee-script-source (~> 1.11.1)
99
+ jekyll-commonmark (1.1.0)
100
+ commonmarker (~> 0.14)
101
+ jekyll (>= 3.0, < 4.0)
102
+ jekyll-commonmark-ghpages (0.1.4)
103
+ commonmarker (~> 0.17.6)
104
+ jekyll-commonmark (~> 1)
105
+ rouge (~> 2)
106
+ jekyll-default-layout (0.1.4)
107
+ jekyll (~> 3.0)
108
+ jekyll-feed (0.9.2)
109
+ jekyll (~> 3.3)
110
+ jekyll-gist (1.4.1)
111
+ octokit (~> 4.2)
112
+ jekyll-github-metadata (2.9.3)
113
+ jekyll (~> 3.1)
114
+ octokit (~> 4.0, != 4.4.0)
115
+ jekyll-mentions (1.2.0)
116
+ activesupport (~> 4.0)
117
+ html-pipeline (~> 2.3)
118
+ jekyll (~> 3.0)
119
+ jekyll-optional-front-matter (0.3.0)
120
+ jekyll (~> 3.0)
121
+ jekyll-paginate (1.1.0)
122
+ jekyll-readme-index (0.2.0)
123
+ jekyll (~> 3.0)
124
+ jekyll-redirect-from (0.12.1)
125
+ jekyll (~> 3.3)
126
+ jekyll-relative-links (0.5.2)
127
+ jekyll (~> 3.3)
128
+ jekyll-remote-theme (0.2.3)
129
+ jekyll (~> 3.5)
130
+ rubyzip (>= 1.2.1, < 3.0)
131
+ typhoeus (>= 0.7, < 2.0)
132
+ jekyll-sass-converter (1.5.0)
133
+ sass (~> 3.4)
134
+ jekyll-seo-tag (2.3.0)
135
+ jekyll (~> 3.3)
136
+ jekyll-sitemap (1.1.1)
137
+ jekyll (~> 3.3)
138
+ jekyll-swiss (0.4.0)
139
+ jekyll-theme-architect (0.1.0)
140
+ jekyll (~> 3.5)
141
+ jekyll-seo-tag (~> 2.0)
142
+ jekyll-theme-cayman (0.1.0)
143
+ jekyll (~> 3.5)
144
+ jekyll-seo-tag (~> 2.0)
145
+ jekyll-theme-dinky (0.1.0)
146
+ jekyll (~> 3.5)
147
+ jekyll-seo-tag (~> 2.0)
148
+ jekyll-theme-hacker (0.1.0)
149
+ jekyll (~> 3.5)
150
+ jekyll-seo-tag (~> 2.0)
151
+ jekyll-theme-leap-day (0.1.0)
152
+ jekyll (~> 3.5)
153
+ jekyll-seo-tag (~> 2.0)
154
+ jekyll-theme-merlot (0.1.0)
155
+ jekyll (~> 3.5)
156
+ jekyll-seo-tag (~> 2.0)
157
+ jekyll-theme-midnight (0.1.0)
158
+ jekyll (~> 3.5)
159
+ jekyll-seo-tag (~> 2.0)
160
+ jekyll-theme-minimal (0.1.0)
161
+ jekyll (~> 3.5)
162
+ jekyll-seo-tag (~> 2.0)
163
+ jekyll-theme-modernist (0.1.0)
164
+ jekyll (~> 3.5)
165
+ jekyll-seo-tag (~> 2.0)
166
+ jekyll-theme-primer (0.5.2)
167
+ jekyll (~> 3.5)
168
+ jekyll-github-metadata (~> 2.9)
169
+ jekyll-seo-tag (~> 2.2)
170
+ jekyll-theme-slate (0.1.0)
171
+ jekyll (~> 3.5)
172
+ jekyll-seo-tag (~> 2.0)
173
+ jekyll-theme-tactile (0.1.0)
174
+ jekyll (~> 3.5)
175
+ jekyll-seo-tag (~> 2.0)
176
+ jekyll-theme-time-machine (0.1.0)
177
+ jekyll (~> 3.5)
178
+ jekyll-seo-tag (~> 2.0)
179
+ jekyll-titles-from-headings (0.5.0)
180
+ jekyll (~> 3.3)
181
+ jekyll-watch (1.5.1)
182
+ listen (~> 3.0)
183
+ jemoji (0.8.1)
184
+ activesupport (~> 4.0, >= 4.2.9)
185
+ gemoji (~> 3.0)
186
+ html-pipeline (~> 2.2)
187
+ jekyll (>= 3.0)
188
+ kramdown (1.16.2)
189
+ liquid (4.0.0)
190
+ listen (3.0.6)
191
+ rb-fsevent (>= 0.9.3)
192
+ rb-inotify (>= 0.9.7)
193
+ mercenary (0.3.6)
194
+ mini_portile2 (2.3.0)
195
+ minima (2.1.1)
196
+ jekyll (~> 3.3)
197
+ minitest (5.11.3)
198
+ multipart-post (2.0.0)
199
+ net-dns (0.8.0)
200
+ nokogiri (1.8.2)
201
+ mini_portile2 (~> 2.3.0)
202
+ octokit (4.8.0)
203
+ sawyer (~> 0.8.0, >= 0.5.3)
204
+ pathutil (0.16.1)
205
+ forwardable-extended (~> 2.6)
206
+ public_suffix (2.0.5)
207
+ rb-fsevent (0.10.2)
208
+ rb-inotify (0.9.10)
209
+ ffi (>= 0.5.0, < 2)
210
+ rouge (2.2.1)
211
+ ruby-enum (0.7.1)
212
+ i18n
213
+ rubyzip (1.2.1)
214
+ safe_yaml (1.0.4)
215
+ sass (3.5.5)
216
+ sass-listen (~> 4.0.0)
217
+ sass-listen (4.0.0)
218
+ rb-fsevent (~> 0.9, >= 0.9.4)
219
+ rb-inotify (~> 0.9, >= 0.9.7)
220
+ sawyer (0.8.1)
221
+ addressable (>= 2.3.5, < 2.6)
222
+ faraday (~> 0.8, < 1.0)
223
+ terminal-table (1.8.0)
224
+ unicode-display_width (~> 1.1, >= 1.1.1)
225
+ thread_safe (0.3.6)
226
+ typhoeus (0.8.0)
227
+ ethon (>= 0.8.0)
228
+ tzinfo (1.2.5)
229
+ thread_safe (~> 0.1)
230
+ unicode-display_width (1.3.0)
231
+
232
+ PLATFORMS
233
+ ruby
234
+
235
+ DEPENDENCIES
236
+ github-pages
237
+
238
+ BUNDLED WITH
239
+ 1.16.1
@@ -0,0 +1,11 @@
1
+ # Site settings
2
+ # These are used to personalize your new site. If you look in the HTML files,
3
+ # you will see them accessed via {{ site.title }}, {{ site.email }}, and so on.
4
+ # You can create any custom variable you would like, and they will be accessible
5
+ # in the templates via {{ site.myvariable }}.
6
+ title: Halunke!
7
+ description: >-
8
+ Halunke is a dynamic, object-oriented language that has a simple grammar inspired by Smalltalk and Lisp
9
+
10
+ # Build settings
11
+ markdown: kramdown
@@ -0,0 +1,61 @@
1
+ <!DOCTYPE html>
2
+ <html lang="{{ page.lang | default: site.lang | default: "en" }}">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1">
7
+ {% seo %}
8
+ <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
9
+ </head>
10
+ <body>
11
+ <div class="container">
12
+ <nav class="navbar navbar-expand-lg navbar-dark bg-dark">
13
+ <a class="navbar-brand" href="#">Halunke!</a>
14
+ <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
15
+ <span class="navbar-toggler-icon"></span>
16
+ </button>
17
+ <div class="collapse navbar-collapse">
18
+ <ul class="navbar-nav">
19
+ <li class="nav-item">
20
+ <a class="nav-link" href="/">Intro</a>
21
+ </li>
22
+ <li class="nav-item">
23
+ <a class="nav-link" href="/number">Number</a>
24
+ </li>
25
+ <li class="nav-item">
26
+ <a class="nav-link" href="/string">String</a>
27
+ </li>
28
+ <li class="nav-item">
29
+ <a class="nav-link" href="/array">Array</a>
30
+ </li>
31
+ <li class="nav-item">
32
+ <a class="nav-link" href="/dictionary">Dictionary</a>
33
+ </li>
34
+ <li class="nav-item">
35
+ <a class="nav-link" href="/true-false">True & False</a>
36
+ </li>
37
+ <li class="nav-item">
38
+ <a class="nav-link" href="/function">Function</a>
39
+ </li>
40
+ <li class="nav-item">
41
+ <a class="nav-link" href="/class">Class</a>
42
+ </li>
43
+ <li class="nav-item">
44
+ <a class="nav-link" href="/true-false">Stdio</a>
45
+ </li>
46
+ <li class="nav-item">
47
+ <a class="nav-link" href="/true-false">Web</a>
48
+ </li>
49
+ </ul>
50
+ </div>
51
+ </nav>
52
+
53
+ <header>
54
+ <h1>{{ page.title }}</h1>
55
+ </header>
56
+ <main>
57
+ {{ content }}
58
+ </main>
59
+ </div>
60
+ </body>
61
+ </html>
@@ -0,0 +1,77 @@
1
+ ---
2
+ layout: default
3
+ title: Welcome to Halunke!
4
+ ---
5
+
6
+ Halunke is a dynamic, object-oriented language that has a simple grammar
7
+ inspired by Smalltalk and Lisp. It is created to show that interesting
8
+ characteristics traditionally described as "functional" make sense in an
9
+ object-oriented language:
10
+
11
+ * Separation of identity and data (but not data and behavior)
12
+ * Immutability and persistent data structures
13
+ * Isolation of Side-Effects
14
+ * Pattern matching
15
+
16
+ It also has the following characteristics:
17
+
18
+ * There is no null/nil value in the language
19
+
20
+ ## Install & Usage
21
+
22
+ Halunke is written in Ruby, and can be installed with:
23
+
24
+ ```
25
+ gem install halunke
26
+ ```
27
+
28
+ You can start a REPL with `halunke` or run a file with `halunke file.hal`.
29
+
30
+ ## How it works
31
+
32
+ In Halunke, everything is an object. And you can send messages to Objects.
33
+
34
+ ```
35
+ (1 + 2)
36
+ ```
37
+
38
+ `1` and `2` are both objects. You can send a message to an object by using
39
+ parentheses: You first provide the name of the receiver followed by a message.
40
+ In this case you send the message `+` to `1` with the value [`2`]. It will
41
+ return the object `3`.
42
+
43
+ You can also send a message without any value. An example for that would be to
44
+ reverse a string:
45
+
46
+ ```
47
+ ("Halunke!" reverse)
48
+ ```
49
+
50
+ This will return `"!eknulaH"`. If you want to provide more than one value, it
51
+ works like this:
52
+
53
+ ```
54
+ ("Halunke!" replace "Ha" with "Spe")
55
+ ```
56
+
57
+ This will return `"Spelunke!"`. The message we send here is `replace with` and
58
+ the value is `["Ha" "Spe"]`.
59
+
60
+ If you want to find out more about the types of objects in Halunke and the
61
+ messages you can send to them, explore the navigation bar at the top. If you
62
+ want to learn more about conditionals, check out the section about [True &
63
+ False](/true-false). If you want to write your own functions, check out
64
+ [Function](/function) and if you want to define your own classes, check out
65
+ [Class](/class).
66
+
67
+ If you want to store an object in a variable, you can do it like this:
68
+
69
+ ```
70
+ ('a = 12)
71
+ ```
72
+
73
+ Now you can send messages to `a` like `(a + 2)`. Why is there a `'` though? The
74
+ `'` signals an unassigned bareword. That means you can send it a `=` message
75
+ with a value, and it will assign it. Be aware that you can't reassign. So if
76
+ you assign something to a once, it will stay like this forever (within that
77
+ scope). Reassigning will result in an error.
@@ -10,8 +10,8 @@ Gem::Specification.new do |spec|
10
10
  spec.email = ["lucas@dohmen.io"]
11
11
 
12
12
  spec.summary = %q{The Halunke programming language}
13
- spec.description = %q{A prototype for an OO language that embraces ideas like immutability and Lispyness}
14
- spec.homepage = "https://github.com/moonglum/halunke"
13
+ spec.description = %q{A dynamic OO language with ideas traditionally described as "functional"}
14
+ spec.homepage = "https://moonglum.github.io/halunke"
15
15
  spec.license = "MIT"
16
16
 
17
17
  spec.files = `git ls-files -z`.split("\x0").reject do |f|
@@ -1,3 +1,3 @@
1
1
  module Halunke
2
- VERSION = "0.3.0"
2
+ VERSION = "0.3.1"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: halunke
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lucas Dohmen
@@ -80,8 +80,7 @@ dependencies:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
82
  version: 1.4.14
83
- description: A prototype for an OO language that embraces ideas like immutability
84
- and Lispyness
83
+ description: A dynamic OO language with ideas traditionally described as "functional"
85
84
  email:
86
85
  - lucas@dohmen.io
87
86
  executables:
@@ -100,6 +99,12 @@ files:
100
99
  - Rakefile
101
100
  - bin/console
102
101
  - bin/setup
102
+ - docs/.gitignore
103
+ - docs/Gemfile
104
+ - docs/Gemfile.lock
105
+ - docs/_config.yml
106
+ - docs/_layouts/default.html
107
+ - docs/index.md
103
108
  - examples/hello.hal
104
109
  - examples/web.hal
105
110
  - exe/halunke
@@ -126,7 +131,7 @@ files:
126
131
  - lib/halunke/runtime/hweb.rb
127
132
  - lib/halunke/runtime/true.hal
128
133
  - lib/halunke/version.rb
129
- homepage: https://github.com/moonglum/halunke
134
+ homepage: https://moonglum.github.io/halunke
130
135
  licenses:
131
136
  - MIT
132
137
  metadata: {}