hitsuji 0.0.0 → 0.0.1

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