halunke 0.3.0 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
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: {}