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 +7 -0
- data/lib/api.rb +23 -0
- data/lib/expression.rb +17 -0
- data/lib/expressions/config_expression.rb +14 -0
- data/lib/expressions/ref_expression.rb +14 -0
- data/lib/expressions/table_expression.rb +15 -0
- data/lib/expressions.rb +22 -0
- data/lib/version.rb +5 -0
- metadata +61 -0
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,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
|
data/lib/expressions.rb
ADDED
|
@@ -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
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: []
|