braingasm 0.4.0 → 0.5.0

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: 41e3533b688fd89095305a59c011c395b74fd8df
4
- data.tar.gz: 17354beb196e6fb94998c021f9f52532c53723ec
3
+ metadata.gz: 53f83690c93e39766ab1939a71644e23544b62d6
4
+ data.tar.gz: 0ae7d1646f09bd57e2b8092c33138d2318ef6ac7
5
5
  SHA512:
6
- metadata.gz: 6cea12d603342077e4d1290602fc808845b03f073109e26189c18e62a309629f63876e4215220acaf9c689dd335ceb804f21f1b71c3e5deb0db29013edaf52c6
7
- data.tar.gz: f77a348b9d2c49349053aff9fa1e22092b95cc02f0b8b9532e5eb92f65dcfd20749f49a0451e44ba0d4ac1d7dd5f62e836d92fd7042d4b797b54d6fb4123723e
6
+ metadata.gz: 054c897c6fff61927d545dc1a2913b003b7e0d0e0c0dbf4ae15888bb20aaea0e2be0a4e25331e537d91e0c507e3ebfda1ea04df153b820e3265c09d67bbc0642
7
+ data.tar.gz: c265b73457680dc200bf70b33625229140922fd9712e8b0cd302b2d2b4fee9a3c90a2b992fb740d8f883c8f7c24de7c2e1a6860127aa86babb768f30b777b687
@@ -36,19 +36,31 @@ module Braingasm
36
36
  end
37
37
 
38
38
  def signed
39
- push_prefix ->(m) { m.last_write >= 0 ? 0 : 1 }
39
+ read_cell if @prefixes.empty?
40
+
41
+ push_prefix @prefixes.fix_params(->(n, m) { n < 0 ? 1 : 0 })
40
42
  end
41
43
 
42
44
  def parity
43
- read_cell if @prefixes.empty?
44
-
45
- push_prefix @prefixes.fix_params(->(n, m) { (n % 2) ^ 1 })
45
+ if @prefixes.last.is_a?(Integer)
46
+ x = @prefixes.pop
47
+ read_cell if @prefixes.empty?
48
+ push_prefix @prefixes.fix_params(->(n, m) { n % x == 0 ? 1 : 0 })
49
+ else
50
+ read_cell if @prefixes.empty?
51
+ push_prefix @prefixes.fix_params(->(n, m) { (n % 2) ^ 1 })
52
+ end
46
53
  end
47
54
 
48
55
  def oddity
49
- read_cell if @prefixes.empty?
50
-
51
- push_prefix @prefixes.fix_params(->(n, m) { n % 2 })
56
+ if @prefixes.last.is_a?(Integer)
57
+ x = @prefixes.pop
58
+ read_cell if @prefixes.empty?
59
+ push_prefix @prefixes.fix_params(->(n, m) { n % x == 0 ? 0 : 1 })
60
+ else
61
+ read_cell if @prefixes.empty?
62
+ push_prefix @prefixes.fix_params(->(n, m) { n % 2 })
63
+ end
52
64
  end
53
65
 
54
66
  def right
@@ -5,7 +5,7 @@ module Braingasm
5
5
  class PrefixStack
6
6
  extend Forwardable
7
7
  attr_accessor :stack
8
- def_delegators :@stack, :empty?, :<<, :pop, :==, :first
8
+ def_delegators :@stack, :empty?, :<<, :pop, :==, :first, :last
9
9
 
10
10
  def initialize
11
11
  @stack = []
@@ -1,3 +1,3 @@
1
1
  module Braingasm
2
- VERSION = "0.4.0"
2
+ VERSION = "0.5.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: braingasm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Rødskog
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-05-26 00:00:00.000000000 Z
11
+ date: 2017-05-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: trollop