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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/lib/hitsuji.rb +51 -3
  3. data/lib/subsystem.rb +44 -0
  4. metadata +8 -7
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 86823faad9658bb04da762b954e26904ceae26508267f1d809dfbc72b4ec8b23
4
- data.tar.gz: 9651c5aa17927c9f55baa0bd6d0dc52873811d2a014e8de632464ef8facc0070
3
+ metadata.gz: 2b59ef71008c412ae5baac5f4102b703af2db8194a22e37a41d310f03168429b
4
+ data.tar.gz: 910c6bafc9d69d0a91382d5b85d7f699f14f8b9d6b76c911102cb95d35cc53f0
5
5
  SHA512:
6
- metadata.gz: 9bba05159a58619448d1fb07368609bd0836acbf2fdd07a90cc60c898eb530d54077390c545c8610d5326bc98c53172ebc37348e4fc085f57b7bea5c58d113f2
7
- data.tar.gz: cdca9a0b8ae20c8c89f30a57be741e827cbf3b3a38161dc1d6b6ed33d96f5cc9f7ade263ebc1d976ad69e5340644e60c892fce3967dbd16a8b327a6ad4e3c6e3
6
+ metadata.gz: 01ba139869c7119f08a332b66eee162ee6b4c7dbb59eeb141c4f31b2562e32f3cce3490cedf0a005634d4209b4e34bf91c62bff475074dd1ab7ab801724324a0
7
+ data.tar.gz: bb8521f46c58ad18e0b18e31239d37c60488688e33dd0a52aca038a530324db48493da1521374f6d2fce073adba964598fc864cac237f381e860c1093deb5f08
data/lib/hitsuji.rb CHANGED
@@ -1,8 +1,56 @@
1
1
  # -- hitsuji.rb --
2
- # Placeholder file for first publish
2
+ # Main interface for hitsuji module
3
+
4
+ #require_relative 'transfer.rb'
5
+ require_relative 'subsystem.rb'
3
6
 
4
7
  class Hitsuji
5
- def initialise
6
- @x = :y
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.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-12 00:00:00.000000000 Z
11
+ date: 2018-08-13 00:00:00.000000000 Z
12
12
  dependencies: []
13
- description: Hitsuji is a command line utility that lets you easily create, edit,
14
- manage and apply custom management systems. It is scalable from library card databases
15
- to performance analysis to complete content management systems (like Wordpress.com).
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: '0'
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: a command line utility for creating custom management systems
48
+ summary: A utility for creating custom management systems.
48
49
  test_files: []