hitsuji 0.0.0 → 0.0.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 +4 -4
- data/lib/hitsuji.rb +51 -3
- data/lib/subsystem.rb +44 -0
- metadata +8 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2b59ef71008c412ae5baac5f4102b703af2db8194a22e37a41d310f03168429b
|
4
|
+
data.tar.gz: 910c6bafc9d69d0a91382d5b85d7f699f14f8b9d6b76c911102cb95d35cc53f0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 01ba139869c7119f08a332b66eee162ee6b4c7dbb59eeb141c4f31b2562e32f3cce3490cedf0a005634d4209b4e34bf91c62bff475074dd1ab7ab801724324a0
|
7
|
+
data.tar.gz: bb8521f46c58ad18e0b18e31239d37c60488688e33dd0a52aca038a530324db48493da1521374f6d2fce073adba964598fc864cac237f381e860c1093deb5f08
|
data/lib/hitsuji.rb
CHANGED
@@ -1,8 +1,56 @@
|
|
1
1
|
# -- hitsuji.rb --
|
2
|
-
#
|
2
|
+
# Main interface for hitsuji module
|
3
|
+
|
4
|
+
#require_relative 'transfer.rb'
|
5
|
+
require_relative 'subsystem.rb'
|
3
6
|
|
4
7
|
class Hitsuji
|
5
|
-
|
6
|
-
|
8
|
+
|
9
|
+
# creates new system
|
10
|
+
def initialize
|
11
|
+
@struct = []
|
12
|
+
@used_names = []
|
13
|
+
end
|
14
|
+
|
15
|
+
# creates new unbinded item
|
16
|
+
def item(name, value)
|
17
|
+
if @used_names.include? name
|
18
|
+
throw 'err'
|
19
|
+
else
|
20
|
+
new_item = Item.new(name, value)
|
21
|
+
@used_names << name
|
22
|
+
end
|
23
|
+
return new_item
|
24
|
+
end
|
25
|
+
|
26
|
+
# creates new unbinded linker
|
27
|
+
def linker(name, objs)
|
28
|
+
if @used_names.include? name
|
29
|
+
throw 'err'
|
30
|
+
else
|
31
|
+
new_linker = Linker.new(name, objs)
|
32
|
+
@used_names << name
|
33
|
+
end
|
34
|
+
return new_linker
|
35
|
+
end
|
36
|
+
|
37
|
+
# creates new unbined operation
|
38
|
+
def operation(name, input)
|
39
|
+
if @used_names.include? name
|
40
|
+
throw 'err'
|
41
|
+
else
|
42
|
+
new_operation = Operation.new(name, input) do
|
43
|
+
yield
|
44
|
+
end
|
45
|
+
@used_names << name
|
46
|
+
end
|
47
|
+
return new_operation
|
48
|
+
end
|
49
|
+
|
50
|
+
# binds object
|
51
|
+
def bind(obj)
|
52
|
+
@struct << obj
|
53
|
+
#update
|
7
54
|
end
|
55
|
+
|
8
56
|
end
|
data/lib/subsystem.rb
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
# item object
|
2
|
+
class Item
|
3
|
+
|
4
|
+
def initialize(name, value)
|
5
|
+
@name = name
|
6
|
+
@value = value
|
7
|
+
end
|
8
|
+
|
9
|
+
attr_reader :name
|
10
|
+
attr_accessor :value
|
11
|
+
|
12
|
+
end
|
13
|
+
|
14
|
+
# linker object
|
15
|
+
class Linker
|
16
|
+
|
17
|
+
def initialize(name, value)
|
18
|
+
for i in value
|
19
|
+
if i.class != Linker and i.class != Item
|
20
|
+
throw 'err'
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
@name = name
|
25
|
+
@value = value
|
26
|
+
end
|
27
|
+
|
28
|
+
attr_reader :name
|
29
|
+
attr_accessor :value
|
30
|
+
|
31
|
+
end
|
32
|
+
|
33
|
+
# operation object
|
34
|
+
class Operation
|
35
|
+
|
36
|
+
def initialize(name, input, &func)
|
37
|
+
@name = name
|
38
|
+
@input = input
|
39
|
+
@block = func
|
40
|
+
end
|
41
|
+
|
42
|
+
attr_reader :name, :input
|
43
|
+
|
44
|
+
end
|
metadata
CHANGED
@@ -1,24 +1,25 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hitsuji
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Josh Quail
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-08-
|
11
|
+
date: 2018-08-13 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
|
-
description: Hitsuji is a
|
14
|
-
|
15
|
-
|
13
|
+
description: Hitsuji is a library that lets you easily create, edit, manage and apply
|
14
|
+
custom management systems. It is scalable from library card databases to performance
|
15
|
+
analysis all the way to complete content management systems (like Wordpress.com).
|
16
16
|
email: josh@madbean.com
|
17
17
|
executables: []
|
18
18
|
extensions: []
|
19
19
|
extra_rdoc_files: []
|
20
20
|
files:
|
21
21
|
- lib/hitsuji.rb
|
22
|
+
- lib/subsystem.rb
|
22
23
|
homepage: http://rubygems.org/gems/hitsuji
|
23
24
|
licenses:
|
24
25
|
- MIT
|
@@ -33,7 +34,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
33
34
|
requirements:
|
34
35
|
- - ">="
|
35
36
|
- !ruby/object:Gem::Version
|
36
|
-
version:
|
37
|
+
version: 2.0.0
|
37
38
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
38
39
|
requirements:
|
39
40
|
- - ">="
|
@@ -44,5 +45,5 @@ rubyforge_project:
|
|
44
45
|
rubygems_version: 2.7.6
|
45
46
|
signing_key:
|
46
47
|
specification_version: 4
|
47
|
-
summary:
|
48
|
+
summary: A utility for creating custom management systems.
|
48
49
|
test_files: []
|