reflekt 1.0.5 → 1.0.10

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 (56) hide show
  1. checksums.yaml +4 -4
  2. data/lib/accessor.rb +45 -0
  3. data/lib/action.rb +127 -0
  4. data/lib/action_stack.rb +44 -0
  5. data/lib/{Clone.rb → clone.rb} +11 -11
  6. data/lib/config.rb +48 -0
  7. data/lib/control.rb +81 -0
  8. data/lib/experiment.rb +99 -0
  9. data/lib/meta.rb +75 -0
  10. data/lib/meta/array_meta.rb +32 -0
  11. data/lib/meta/boolean_meta.rb +26 -0
  12. data/lib/meta/float_meta.rb +26 -0
  13. data/lib/meta/integer_meta.rb +26 -0
  14. data/lib/meta/{NullMeta.rb → null_meta.rb} +21 -19
  15. data/lib/meta/object_meta.rb +35 -0
  16. data/lib/meta/string_meta.rb +26 -0
  17. data/lib/meta_builder.rb +100 -0
  18. data/lib/reflection.rb +123 -0
  19. data/lib/reflekt.rb +277 -0
  20. data/lib/renderer.rb +38 -0
  21. data/lib/rule.rb +54 -0
  22. data/lib/rule_set.rb +110 -0
  23. data/lib/rule_set_aggregator.rb +260 -0
  24. data/lib/rules/array_rule.rb +94 -0
  25. data/lib/rules/boolean_rule.rb +43 -0
  26. data/lib/rules/float_rule.rb +55 -0
  27. data/lib/rules/integer_rule.rb +55 -0
  28. data/lib/rules/null_rule.rb +35 -0
  29. data/lib/rules/object_rule.rb +42 -0
  30. data/lib/rules/string_rule.rb +75 -0
  31. data/lib/web/index.html +3 -4
  32. metadata +46 -29
  33. data/lib/Accessor.rb +0 -37
  34. data/lib/Action.rb +0 -88
  35. data/lib/ActionStack.rb +0 -44
  36. data/lib/Aggregator.rb +0 -260
  37. data/lib/Config.rb +0 -42
  38. data/lib/Control.rb +0 -83
  39. data/lib/Meta.rb +0 -71
  40. data/lib/MetaBuilder.rb +0 -84
  41. data/lib/Reflection.rb +0 -195
  42. data/lib/Reflekt.rb +0 -243
  43. data/lib/Renderer.rb +0 -39
  44. data/lib/Rule.rb +0 -52
  45. data/lib/RuleSet.rb +0 -109
  46. data/lib/meta/ArrayMeta.rb +0 -34
  47. data/lib/meta/BooleanMeta.rb +0 -26
  48. data/lib/meta/FloatMeta.rb +0 -26
  49. data/lib/meta/IntegerMeta.rb +0 -26
  50. data/lib/meta/StringMeta.rb +0 -26
  51. data/lib/rules/ArrayRule.rb +0 -88
  52. data/lib/rules/BooleanRule.rb +0 -47
  53. data/lib/rules/FloatRule.rb +0 -57
  54. data/lib/rules/IntegerRule.rb +0 -57
  55. data/lib/rules/NullRule.rb +0 -33
  56. data/lib/rules/StringRule.rb +0 -81
@@ -1,57 +0,0 @@
1
- require 'Rule'
2
-
3
- class FloatRule < Rule
4
-
5
- def initialize()
6
-
7
- @type = :float
8
- @min = nil
9
- @max = nil
10
-
11
- end
12
-
13
- ##
14
- # @param meta [FloatMeta]
15
- ##
16
- def train(meta)
17
-
18
- value = meta[:value]
19
-
20
- if @min.nil?
21
- @min = value
22
- else
23
- @min = value if value < @min
24
- end
25
-
26
- if @max.nil?
27
- @max = value
28
- else
29
- @max = value if value > @max
30
- end
31
-
32
- end
33
-
34
- ##
35
- # @param value [Float]
36
- ##
37
- def test(value)
38
-
39
- return false if value < @min
40
- return false if value > @max
41
-
42
- true
43
- end
44
-
45
- def result()
46
- {
47
- :type => @type,
48
- :min => @min,
49
- :max => @max
50
- }
51
- end
52
-
53
- def random()
54
- rand(@min..@max)
55
- end
56
-
57
- end
@@ -1,57 +0,0 @@
1
- require 'Rule'
2
-
3
- class IntegerRule < Rule
4
-
5
- def initialize()
6
-
7
- @type = :int
8
- @min = nil
9
- @max = nil
10
-
11
- end
12
-
13
- ##
14
- # @param meta [IntegerMeta]
15
- ##
16
- def train(meta)
17
-
18
- value = meta[:value]
19
-
20
- if @min.nil?
21
- @min = value
22
- else
23
- @min = value if value < @min
24
- end
25
-
26
- if @max.nil?
27
- @max = value
28
- else
29
- @max = value if value > @max
30
- end
31
-
32
- end
33
-
34
- ##
35
- # @param value [Integer]
36
- ##
37
- def test(value)
38
-
39
- return false if value < @min
40
- return false if value > @max
41
-
42
- true
43
- end
44
-
45
- def result()
46
- {
47
- :type => @type,
48
- :min => @min,
49
- :max => @max
50
- }
51
- end
52
-
53
- def random()
54
- rand(@min..@max)
55
- end
56
-
57
- end
@@ -1,33 +0,0 @@
1
- require 'Rule'
2
-
3
- class NullRule < Rule
4
-
5
- def initialize()
6
- @type = :null
7
- end
8
-
9
- ##
10
- # @param meta [NullMeta]
11
- ##
12
- def train(meta)
13
- # No need to train as NullMeta is always nil.
14
- end
15
-
16
- ##
17
- # @param value [NilClass]
18
- ##
19
- def test(value)
20
- value.nil?
21
- end
22
-
23
- def result()
24
- {
25
- :type => @type
26
- }
27
- end
28
-
29
- def random()
30
- nil
31
- end
32
-
33
- end
@@ -1,81 +0,0 @@
1
- require 'Rule'
2
-
3
- class StringRule < Rule
4
-
5
- attr_accessor :min_length
6
- attr_accessor :max_length
7
-
8
- def initialize()
9
-
10
- @type = :string
11
- @min_length = nil
12
- @max_length = nil
13
-
14
- end
15
-
16
- ##
17
- # @param meta [StringMeta]
18
- ##
19
- def train(meta)
20
-
21
- length = meta[:length]
22
-
23
- if @min_length.nil?
24
- @min_length = length
25
- else
26
- @min_length = length if length < @min_length
27
- end
28
-
29
- if @max_length.nil?
30
- @max_length = length
31
- else
32
- @max_length = length if length > @max_length
33
- end
34
-
35
- end
36
-
37
- ##
38
- # @param value [String]
39
- ##
40
- def test(value)
41
-
42
- length = value.length
43
-
44
- return false if length < @min_length
45
- return false if length > @max_length
46
-
47
- true
48
- end
49
-
50
- def result()
51
- {
52
- :type => @type,
53
- :min_length => @min_length,
54
- :max_length => @max_length
55
- }
56
- end
57
-
58
- def random()
59
-
60
- # Build alphabet soup.
61
- alpha_numeric = Array('A'..'Z') + Array('a'..'z')
62
- 10.times do
63
- alpha_numeric << ' '
64
- end
65
-
66
- # Dip ladle into alphabet soup.
67
- last_char = nil
68
- sentence = Array.new(rand(@min_length..@max_length)) do |index|
69
- char = alpha_numeric.sample
70
- # Put no character next to the same character twice.
71
- while char == last_char
72
- char = alpha_numeric.sample
73
- end
74
- last_char = char
75
- end
76
-
77
- return sentence.join
78
-
79
- end
80
-
81
- end