expressions 0.0.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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: d6d40e8b41013aa819f43ee49a8997ba6ab3b231aa26dc5e6de4b7be34151442
4
+ data.tar.gz: 43efc7bb460f103032c638c2913c523ecd8b33b3b532dfb96a864eaa3e7db2ea
5
+ SHA512:
6
+ metadata.gz: 97e5594dee261bec79b74fe168a9d719a27788f3e3ef63bd59da9557f9b583a00387cb1f8737f201136467c0c0a9dcd28da2e2c57a64fed239d4dfaaaa4c0e4d
7
+ data.tar.gz: 501f239468eea5f335b87bd311a94c69398cbd075acbe3eccb4bc8b8d5330e7cf9b6ee61e45b2bc38ad543b3f8a62cee4e4fc1ae3b7c1379a14b509873af60d6
data/lib/api.rb ADDED
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'expressions/config_expression'
4
+ require_relative 'expressions/table_expression'
5
+
6
+ module Expressions
7
+ module API
8
+ def config(config)
9
+ ConfigExpression.new(config:)
10
+ end
11
+ alias xconfig config
12
+
13
+ def ref(reference)
14
+ RefExpression.new(reference:)
15
+ end
16
+ alias xref ref
17
+
18
+ def table(table)
19
+ TableExpression.new(table:)
20
+ end
21
+ alias xtable table
22
+ end
23
+ end
data/lib/expression.rb ADDED
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Expressions
4
+ class Expression
5
+ def initialize
6
+ @expressions = []
7
+ end
8
+
9
+ def |(expression)
10
+ if expression.is_a?(::Expressions::Expression)
11
+ @expressions << expression
12
+ end
13
+
14
+ self
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'low_type'
4
+ require_relative 'expression'
5
+
6
+ class ValueExpression < Expression
7
+ include LowType
8
+
9
+ attr_reader :config
10
+
11
+ def initialize(config: Hash)
12
+ @config = config
13
+ end
14
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'low_type'
4
+ require_relative 'expression'
5
+
6
+ class RefExpression < Expression
7
+ include LowType
8
+
9
+ attr_reader :reference
10
+
11
+ def initialize(reference:)
12
+ @reference = reference
13
+ end
14
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'low_type'
4
+ require_relative 'expression'
5
+
6
+ # A value expression converts a type to a value in the eyes of Expressions.
7
+ class ValueExpression < Expression
8
+ include LowType
9
+
10
+ attr_reader :config
11
+
12
+ def initialize(config: Hash)
13
+ @config = config
14
+ end
15
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'low_type'
4
+ require_relative 'api'
5
+
6
+ module Expressions
7
+ def self.included(klass)
8
+ klass.include API
9
+ klass.include LowType if Expressions.config.type_expression
10
+ end
11
+
12
+ class << self
13
+ def config
14
+ config = Struct.new(:type_expression)
15
+ @config ||= config.new(true)
16
+ end
17
+
18
+ def configure
19
+ yield(config)
20
+ end
21
+ end
22
+ end
data/lib/version.rb ADDED
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Expressions
4
+ VERSION = '0.0.0'
5
+ end
metadata ADDED
@@ -0,0 +1,61 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: expressions
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.0
5
+ platform: ruby
6
+ authors:
7
+ - maedi
8
+ bindir: exe
9
+ cert_chain: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: low_type
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - "~>"
17
+ - !ruby/object:Gem::Version
18
+ version: '1.0'
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - "~>"
24
+ - !ruby/object:Gem::Version
25
+ version: '1.0'
26
+ email:
27
+ - maediprichard@gmail.com
28
+ executables: []
29
+ extensions: []
30
+ extra_rdoc_files: []
31
+ files:
32
+ - lib/api.rb
33
+ - lib/expression.rb
34
+ - lib/expressions.rb
35
+ - lib/expressions/config_expression.rb
36
+ - lib/expressions/ref_expression.rb
37
+ - lib/expressions/table_expression.rb
38
+ - lib/version.rb
39
+ homepage: https://github.com/maedi/expressions
40
+ licenses: []
41
+ metadata:
42
+ homepage_uri: https://github.com/maedi/expressions
43
+ source_code_uri: https://github.com/maedi/expressions/src/branch/main
44
+ rdoc_options: []
45
+ require_paths:
46
+ - lib
47
+ required_ruby_version: !ruby/object:Gem::Requirement
48
+ requirements:
49
+ - - ">="
50
+ - !ruby/object:Gem::Version
51
+ version: 3.3.0
52
+ required_rubygems_version: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ version: '0'
57
+ requirements: []
58
+ rubygems_version: 3.7.2
59
+ specification_version: 4
60
+ summary: Expressions evaluate into useful objects
61
+ test_files: []