striuct 0.3.0 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (68) hide show
  1. data/.gitignore +32 -0
  2. data/.travis.yml +6 -0
  3. data/Gemfile +12 -0
  4. data/History.rdoc +5 -0
  5. data/Manifest.txt +53 -25
  6. data/README.md +97 -0
  7. data/Rakefile +7 -21
  8. data/examples/README.rb +25 -0
  9. data/{example → examples}/example1.rb +1 -1
  10. data/{example → examples}/example2.rb +1 -1
  11. data/{example → examples}/see_trace.rb +4 -0
  12. data/lib/striuct/{containable/eigen → classmethods}/basic.rb +13 -5
  13. data/lib/striuct/classmethods/constants.rb +23 -0
  14. data/lib/striuct/{containable/eigen → classmethods}/constructor.rb +20 -14
  15. data/lib/striuct/{containable/eigen → classmethods}/handy.rb +19 -20
  16. data/lib/striuct/{containable/eigen → classmethods}/inner.rb +10 -32
  17. data/lib/striuct/{containable/eigen → classmethods}/macro.rb +37 -7
  18. data/lib/striuct/classmethods/requiremnets.rb +7 -0
  19. data/lib/striuct/{containable/eigen → classmethods}/safety.rb +6 -6
  20. data/lib/striuct/classmethods.rb +1 -0
  21. data/lib/striuct/{containable → instancemethods}/basic.rb +6 -6
  22. data/lib/striuct/{containable → instancemethods}/handy.rb +3 -3
  23. data/lib/striuct/{containable → instancemethods}/hashlike.rb +12 -6
  24. data/lib/striuct/{containable → instancemethods}/inner.rb +9 -8
  25. data/lib/striuct/instancemethods/requirements.rb +6 -0
  26. data/lib/striuct/{containable → instancemethods}/safety.rb +2 -2
  27. data/lib/striuct/instancemethods/singleton_class.rb +19 -0
  28. data/lib/striuct/instancemethods.rb +1 -0
  29. data/lib/striuct/requirements.rb +6 -0
  30. data/lib/striuct/singleton_class.rb +93 -0
  31. data/lib/striuct/specificcontainer.rb +17 -0
  32. data/lib/striuct/structs.rb +7 -0
  33. data/lib/striuct/version.rb +3 -2
  34. data/lib/striuct.rb +4 -9
  35. data/striuct.gemspec +24 -0
  36. data/test/{test_helper.rb → helper.rb} +3 -0
  37. data/test/test_striuct.rb +23 -1409
  38. data/test/test_striuct_define.rb +19 -0
  39. data/test/test_striuct_subclass_adjuster.rb +95 -0
  40. data/test/test_striuct_subclass_alias_member.rb +54 -0
  41. data/test/test_striuct_subclass_assign.rb +30 -0
  42. data/test/test_striuct_subclass_classlock.rb +36 -0
  43. data/test/test_striuct_subclass_classmethods.rb +87 -0
  44. data/test/test_striuct_subclass_cloning.rb +36 -0
  45. data/test/test_striuct_subclass_default_value.rb +129 -0
  46. data/test/test_striuct_subclass_for_pairs.rb +13 -0
  47. data/test/test_striuct_subclass_freeze.rb +19 -0
  48. data/test/test_striuct_subclass_functional_condition.rb +51 -0
  49. data/test/test_striuct_subclass_getter_validation.rb +33 -0
  50. data/test/test_striuct_subclass_hashlike.rb +153 -0
  51. data/test/test_striuct_subclass_inference.rb +51 -0
  52. data/test/test_striuct_subclass_inheritable.rb +58 -0
  53. data/test/test_striuct_subclass_instance.rb +289 -0
  54. data/test/test_striuct_subclass_lock.rb +40 -0
  55. data/test/test_striuct_subclass_safetynaming.rb +72 -0
  56. data/test/test_striuct_subclass_specific_conditions.rb +247 -0
  57. data/test/test_striuct_subclass_to_struct.rb +25 -0
  58. data/test/test_striuct_version.rb +9 -0
  59. metadata +106 -68
  60. data/.gemtest +0 -0
  61. data/README.rdoc +0 -63
  62. data/example/example.rb +0 -17
  63. data/lib/striuct/abstract.rb +0 -74
  64. data/lib/striuct/containable/classutil.rb +0 -22
  65. data/lib/striuct/containable/eigen.rb +0 -29
  66. data/lib/striuct/containable.rb +0 -38
  67. /data/{example/benchmarks.rb → benchmarks/basics.rb} +0 -0
  68. /data/{example → examples}/example.old.rdoc +0 -0
data/.gitignore ADDED
@@ -0,0 +1,32 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ coverage
6
+ coverage.data
7
+ InstalledFiles
8
+ lib/bundler/man
9
+ pkg
10
+ rdoc
11
+ spec/reports
12
+ test/tmp
13
+ test/version_tmp
14
+ tmp
15
+
16
+ # bundler
17
+ vendor/
18
+
19
+ # YARD artifacts
20
+ .yardoc
21
+ _yardoc
22
+ doc/
23
+
24
+ # tmp-old
25
+ .old
26
+
27
+ # editor
28
+ *~
29
+ .redcar
30
+
31
+ # other
32
+ *.lock
data/.travis.yml ADDED
@@ -0,0 +1,6 @@
1
+ language: ruby
2
+ rvm:
3
+ - ruby-head
4
+ - 1.9.3
5
+ - 1.9.2
6
+ - rbx-19mode # Rubinius in 1.9 mode
data/Gemfile ADDED
@@ -0,0 +1,12 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
4
+
5
+ group :development do
6
+ gem 'rake'
7
+ gem 'yard', '>=0.8.2.1'
8
+ end
9
+
10
+ group :test do
11
+ gem 'rake'
12
+ end
data/History.rdoc CHANGED
@@ -1,3 +1,8 @@
1
+ === 0.3.1 2012-9-2
2
+
3
+ * add:
4
+ * default value via member macro
5
+
1
6
  === 0.3.0 2012-4-3
2
7
 
3
8
  * modify:
data/Manifest.txt CHANGED
@@ -1,31 +1,59 @@
1
+ README.md
2
+ README.ja.old.rdoc
3
+ LICENSE
1
4
  History.rdoc
2
5
  Manifest.txt
3
- README.rdoc
4
- README.ja.old.rdoc
5
6
  Rakefile
6
- LICENSE
7
+ Gemfile
8
+ striuct.gemspec
7
9
  lib/striuct.rb
8
10
  lib/striuct/version.rb
9
- lib/striuct/abstract.rb
10
- lib/striuct/containable.rb
11
- lib/striuct/containable/classutil.rb
12
- lib/striuct/containable/basic.rb
13
- lib/striuct/containable/safety.rb
14
- lib/striuct/containable/handy.rb
15
- lib/striuct/containable/hashlike.rb
16
- lib/striuct/containable/inner.rb
17
- lib/striuct/containable/eigen.rb
18
- lib/striuct/containable/eigen/basic.rb
19
- lib/striuct/containable/eigen/constructor.rb
20
- lib/striuct/containable/eigen/safety.rb
21
- lib/striuct/containable/eigen/handy.rb
22
- lib/striuct/containable/eigen/macro.rb
23
- lib/striuct/containable/eigen/inner.rb
24
- test/test_helper.rb
11
+ lib/striuct/specificcontainer.rb
12
+ lib/striuct/classmethods.rb
13
+ lib/striuct/classmethods/requirements.rb
14
+ lib/striuct/classmethods/constants.rb
15
+ lib/striuct/classmethods/basic.rb
16
+ lib/striuct/classmethods/constructor.rb
17
+ lib/striuct/classmethods/safety.rb
18
+ lib/striuct/classmethods/handy.rb
19
+ lib/striuct/classmethods/macro.rb
20
+ lib/striuct/classmethods/inner.rb
21
+ lib/striuct/instancemethods.rb
22
+ lib/striuct/instancemethods/requirements.rb
23
+ lib/striuct/instancemethods/singleton_class.rb
24
+ lib/striuct/instancemethods/basic.rb
25
+ lib/striuct/instancemethods/safety.rb
26
+ lib/striuct/instancemethods/handy.rb
27
+ lib/striuct/instancemethods/hashlike.rb
28
+ lib/striuct/instancemethods/inner.rb
29
+ lib/striuct/singleton_class.rb
30
+ test/helper.rb
25
31
  test/test_striuct.rb
26
- example/example.rb
27
- example/example1.rb
28
- example/example2.rb
29
- example/example.old.rdoc
30
- example/benchmarks.rb
31
- example/see_trace.rb
32
+ test/test_striuct_define.rb
33
+ test/test_striuct_subclass_adjuster
34
+ test/test_striuct_subclass_alias_member.rb
35
+ test/test_striuct_subclass_assign.rb
36
+ test/test_striuct_subclass_classlock.rb
37
+ test/test_striuct_subclass_classmethods.rb
38
+ test/test_striuct_subclass_cloning.rb
39
+ test_striuct_subclass_default_value.rb
40
+ test/test_striuct_subclass_for_pairs.rb
41
+ test/test_striuct_subclass_freeze.rb
42
+ test/test_striuct_subclass_functional_condition.rb
43
+ test/test_striuct_subclass_getter_validation.rb
44
+ test/test_striuct_subclass_hashlike.rb
45
+ test/test_striuct_subclass_inference.rb
46
+ test/test_striuct_subclass_inheritable.rb
47
+ test/test_striuct_subclass_instance.rb
48
+ test/test_striuct_subclass_lock.rb
49
+ test/test_striuct_subclass_safetynaming.rb
50
+ test/test_striuct_subclass_specific_conditions.rb
51
+ test/test_striuct_subclass_to_struct.rb
52
+ test/test_striuct_version.rb
53
+ examples/README.rb
54
+ examples/example1.rb
55
+ examples/example2.rb
56
+ examples/example.old.rdoc
57
+ examples/see_trace.rb
58
+ benchmarks/basics.rb
59
+
data/README.md ADDED
@@ -0,0 +1,97 @@
1
+ striuct
2
+ =======
3
+
4
+ [![Build Status](https://secure.travis-ci.org/kachick/striuct.png)](http://travis-ci.org/kachick/striuct)
5
+
6
+ Description
7
+ -----------
8
+
9
+ Struct++
10
+
11
+ Features
12
+ --------
13
+
14
+ ### Strict
15
+
16
+ * Base API looks like Struct
17
+ * Easy and Flexible Validations
18
+ * Prevent to conflict member names
19
+
20
+ ### Useful
21
+
22
+ * Hook just before setters
23
+ * Default value
24
+ * Member aliasing
25
+ * Inheritable
26
+
27
+ ### Onepoint
28
+
29
+ * Pure Ruby :)
30
+
31
+ Usage
32
+ -----
33
+
34
+ ### Overview
35
+
36
+ ```ruby
37
+ require 'striuct'
38
+
39
+ class Person < Striuct
40
+ member :fullname, AND(String, /\A.+\z/) # Flexible Validation
41
+ alias_member :name, :fullname # Use other name
42
+ end
43
+
44
+ class User < Person # Inheritable
45
+ member :id, Integer, # Looks typed validation
46
+ default_proc: ->{User.next_id} # With default value
47
+
48
+ def self.next_id
49
+ @id ||= 0
50
+ @id += 1
51
+ end
52
+ end
53
+
54
+ john = User.new 'john'
55
+ john[:name] #=> 'john'
56
+ john.name = '' #=> Exception # Validate with setter
57
+ john.id #=> 1
58
+ ken = User[name: 'ken'] # Construct from hash
59
+ ken.id #=> 2
60
+ ```
61
+
62
+ ### More Examples
63
+
64
+ #### Basics
65
+
66
+ examples/*
67
+
68
+ Requirements
69
+ -------------
70
+
71
+ * Ruby 1.9.2 or later [MRI/YARV, Rubinius](http://travis-ci.org/#!/kachick/striuct)
72
+ * validation - 0.0.3
73
+ * keyvalidatable - 0.0.2
74
+
75
+ Install
76
+ -------
77
+
78
+ ```shell
79
+ $ gem install striuct
80
+ ```
81
+
82
+ Link
83
+ ----
84
+
85
+ * [code](https://github.com/kachick/striuct)
86
+ * [issues](https://github.com/kachick/striuct/issues)
87
+ * [CI](http://travis-ci.org/#!/kachick/striuct)
88
+ * [gem](https://rubygems.org/gems/striuct)
89
+ * [gem+](http://metagem.info/gems/striuct)
90
+
91
+ License
92
+ --------
93
+
94
+ The MIT X License
95
+ Copyright (c) 2011 Kenichi Kamiya
96
+ See the file LICENSE for further details.
97
+
data/Rakefile CHANGED
@@ -1,25 +1,11 @@
1
- require 'rubygems'
2
- gem 'hoe', '~> 3.0.1'
3
- require 'hoe'
4
- require 'fileutils'
1
+ #!/usr/bin/env rake
2
+ require 'bundler/gem_tasks'
5
3
 
6
- Hoe.plugin :newgem
7
- # Hoe.plugin :website
8
- # Hoe.plugin :cucumberfeatures
4
+ require 'rake/testtask'
9
5
 
10
- # Generate all the Rake tasks
11
- # Run 'rake -T' to see list of generated tasks (from gem root directory)
12
- $hoe = Hoe.spec 'striuct' do
13
- developer 'Kenichi Kamiya', 'kachick1+ruby@gmail.com'
14
- self.rubyforge_name = self.name
15
- require_ruby_version '>= 1.9.2'
16
- dependency 'validation', '~> 0.0.3', :runtime
17
- dependency 'yard', '~> 0.7.5', :development
18
- end
6
+ task default: [:test]
19
7
 
20
- require 'newgem/tasks'
21
- Dir['tasks/**/*.rake'].each { |t| load t }
8
+ Rake::TestTask.new do |tt|
9
+ tt.verbose = true
10
+ end
22
11
 
23
- # TODO - want other tests/tasks run by default? Add them to the list
24
- # remove_task :default
25
- # task :default => [:spec, :features]
@@ -0,0 +1,25 @@
1
+ $VERBOSE = true
2
+
3
+ require '../lib/striuct'
4
+
5
+ class Person < Striuct
6
+ member :fullname, AND(String, /\A.+\z/) # Flexible Validation
7
+ alias_member :name, :fullname # Use other name
8
+ end
9
+
10
+ class User < Person # Inheritable
11
+ member :id, Integer, # Looks typed validation
12
+ default_proc: ->{User.next_id} # With default value
13
+
14
+ def self.next_id
15
+ @id ||= 0
16
+ @id += 1
17
+ end
18
+ end
19
+
20
+ john = User.new 'john'
21
+ p john[:name] #=> 'john'
22
+ #~ p john.name = '' #=> error
23
+ p john.id #=> 1
24
+ ken = User[name: 'ken'] # Construct from hash
25
+ p ken.id #=> 2
@@ -77,7 +77,7 @@ end
77
77
 
78
78
  # through "inference", and check under first passed object class
79
79
  class FlexibleContainer < Striuct.new
80
- member :anything, anything, inference: true
80
+ member :anything, ANYTHING?, inference: true
81
81
  member :number, Numeric, inference: true
82
82
  end
83
83
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  $VERBOSE = true
4
4
 
5
- require_relative 'lib/striuct'
5
+ require_relative '../lib/striuct'
6
6
 
7
7
  User = Striuct.define do # other way "class User < Striuct.new"
8
8
  member :firstname, /\w+/ # look like case syntax in Ruby
@@ -15,6 +15,10 @@ rescue
15
15
  puts $!.backtrace
16
16
  end
17
17
 
18
+ puts '-' * 80
19
+
20
+ $stdout.flush
21
+
18
22
  begin
19
23
  user.age = 19
20
24
  rescue
@@ -1,4 +1,4 @@
1
- class Striuct; module Containable; module Eigen
1
+ class Striuct; module ClassMethods
2
2
  # @group Basic
3
3
 
4
4
  # @return [Array<Symbol>]
@@ -6,11 +6,17 @@ class Striuct; module Containable; module Eigen
6
6
  @names.dup
7
7
  end
8
8
 
9
+ alias_method :autonyms, :names
9
10
  alias_method :members, :names
10
11
  alias_method :keys, :names
12
+
13
+ # @return [Array<Symbol>]
14
+ def all_members
15
+ @names + @aliases.keys
16
+ end
11
17
 
12
18
  def has_member?(name)
13
- originalkey_for(keyable_for name)
19
+ autonym_for name
14
20
  rescue Exception
15
21
  false
16
22
  else
@@ -36,11 +42,13 @@ class Striuct; module Containable; module Eigen
36
42
 
37
43
  def dup
38
44
  r = super
39
- @names, @flavors, @defaults, @aliases, @setter_validations, @getter_validations =
40
- *[@names, @flavors, @defaults, @aliases, @setter_validations, @getter_validations].map(&:dup)
45
+ @names, @flavors, @defaults, @aliases,
46
+ @setter_validations, @getter_validations =
47
+ *[@names, @flavors, @defaults, @aliases,
48
+ @setter_validations, @getter_validations].map(&:dup)
41
49
  @conditions, @inferences = @conditions.dup, @inferences.dup
42
50
  r
43
51
  end
44
52
 
45
53
  # @endgroup
46
- end; end; end
54
+ end; end
@@ -0,0 +1,23 @@
1
+ class Striuct
2
+
3
+ module ClassMethods
4
+
5
+ NAMING_RISKS = {
6
+ conflict: 10,
7
+ no_identifier: 9,
8
+ bad_manners: 5,
9
+ no_ascii: 3,
10
+ strict: 0
11
+ }.freeze
12
+
13
+ PROTECT_LEVELS = {
14
+ struct: {error: 99, warn: 99},
15
+ warning: {error: 99, warn: 5},
16
+ error: {error: 9, warn: 5},
17
+ prevent: {error: 5, warn: 1},
18
+ nervous: {error: 1, warn: 1}
19
+ }.each(&:freeze).freeze
20
+
21
+ end
22
+
23
+ end
@@ -1,21 +1,24 @@
1
- class Striuct; module Containable; module Eigen
1
+ require 'keyvalidatable'
2
+
3
+ class Striuct; module ClassMethods
2
4
  # @group Constructor
3
5
 
4
6
  # @return [Subclass]
5
- def load_values(*values)
7
+ def for_values(*values)
6
8
  new_instance(*values)
7
9
  end
8
10
 
9
- alias_method :new, :load_values
11
+ alias_method :load_values, :for_values
12
+ alias_method :new, :for_values
10
13
 
11
- # @param [#each_pair, #keys] pairs ex: Hash, Struct
12
- # @return [Subclass]
13
- def load_pairs(pairs)
14
+ # @param [Hash, Struct]
15
+ # @return [Striuct]
16
+ def for_pairs(pairs)
14
17
  unless pairs.respond_to?(:each_pair) and pairs.respond_to?(:keys)
15
18
  raise TypeError, 'no pairs object'
16
19
  end
17
20
 
18
- raise ArgumentError, "different members" unless (pairs.keys - keys).empty?
21
+ pairs.dup.extend(KeyValidatable).validate_keys let: all_members
19
22
 
20
23
  new.tap {|instance|
21
24
  pairs.each_pair do |name, value|
@@ -24,16 +27,19 @@ class Striuct; module Containable; module Eigen
24
27
  }
25
28
  end
26
29
 
27
- alias_method :[], :load_pairs
30
+ alias_method :load_pairs, :for_pairs
31
+ alias_method :[], :for_pairs
28
32
 
29
- # @yieldparam [Subclass] instance
30
- # @yieldreturn [Subclass] instance
31
- # @return [void]
32
33
  # for build the fixed object
34
+ # @param [Hash] options
35
+ # @option options [Boolean] :lock
36
+ # @option options [Boolean] :strict
37
+ # @yieldparam [Striuct] instance
38
+ # @yieldreturn [Striuct] instance
39
+ # @return [void]
33
40
  def define(options={lock: true, strict: true})
34
- raise TypeError, 'arguments have to be pairs object' unless options.respond_to? :keys
35
- raise ArgumentError, 'Unknown parameters' unless (options.keys - [:lock, :strict]).empty?
36
41
  raise ArgumentError, 'must with block' unless block_given?
42
+ options.extend(KeyValidatable).validate_keys let: [:lock, :strict]
37
43
 
38
44
  lock, strict = options[:lock], options[:strict]
39
45
 
@@ -55,4 +61,4 @@ class Striuct; module Containable; module Eigen
55
61
  end
56
62
 
57
63
  # @endgroup
58
- end; end; end
64
+ end; end
@@ -1,4 +1,4 @@
1
- class Striuct; module Containable; module Eigen
1
+ class Striuct; module ClassMethods
2
2
  # @group Struct+ Handy
3
3
 
4
4
  # @yield [name]
@@ -40,29 +40,23 @@ class Striuct; module Containable; module Eigen
40
40
 
41
41
  # @param [Symbol, String] name
42
42
  def original?(name)
43
- if member? name
44
- @names.include? name
45
- else
46
- raise NameError
47
- end
43
+ raise NameError unless member? name
44
+
45
+ @names.include? name
48
46
  end
49
47
 
50
48
  # @param [Symbol, String] name
51
49
  def aliased?(name)
52
- if member? name
53
- @aliases.has_key? name
54
- else
55
- raise NameError
56
- end
50
+ raise NameError unless member? name
51
+
52
+ @aliases.has_key? name
57
53
  end
58
54
 
59
55
  # @param [Symbol, String] original
60
56
  def has_aliases?(original)
61
- if original? original
62
- @aliases.has_value? original
63
- else
64
- raise NameError
65
- end
57
+ raise NameError unless original? original
58
+
59
+ @aliases.has_value? original
66
60
  end
67
61
 
68
62
  # @param [Symbol, String] original
@@ -76,24 +70,29 @@ class Striuct; module Containable; module Eigen
76
70
  raise NameError
77
71
  end
78
72
  end
73
+
74
+ # @return [Hash] alias => autonym
75
+ def aliases
76
+ @aliases.dup
77
+ end
79
78
 
80
79
  # @param [Symbol, String] name
81
80
  def has_flavor?(name)
82
- name = originalkey_for(keyable_for name)
81
+ name = autonym_for name
83
82
 
84
83
  ! flavor_for(name).nil?
85
84
  end
86
85
 
87
86
  # @param [Symbol, String] name
88
87
  def has_default?(name)
89
- name = originalkey_for(keyable_for name)
88
+ name = autonym_for name
90
89
 
91
90
  @defaults.has_key? name
92
91
  end
93
92
 
94
93
  # @param [Symbol, String] name
95
94
  def default_for(name)
96
- name = originalkey_for(keyable_for name)
95
+ name = autonym_for name
97
96
 
98
97
  if has_default? name
99
98
  _default_for name
@@ -122,4 +121,4 @@ class Striuct; module Containable; module Eigen
122
121
  end
123
122
 
124
123
  # @endgroup
125
- end; end; end
124
+ end; end
@@ -1,4 +1,4 @@
1
- class Striuct; module Containable; module Eigen
1
+ class Striuct; module ClassMethods
2
2
  # @group Use Only Inner
3
3
 
4
4
  private
@@ -48,7 +48,7 @@ class Striuct; module Containable; module Eigen
48
48
  end
49
49
 
50
50
  # @param [Symbol, String, #to_sym, #to_str] name
51
- def originalkey_for(name)
51
+ def autonym_for(name)
52
52
  name = keyable_for name
53
53
 
54
54
  if _names.include? name
@@ -62,32 +62,10 @@ class Striuct; module Containable; module Eigen
62
62
  end
63
63
  end
64
64
 
65
- # @param [Symbol, String, #to_sym, #to_str] name
66
- # @return [Symbol] name(keyable)
65
+ # @param [Symbol, String, #to_sym] name
66
+ # @return [Symbol]
67
67
  def keyable_for(name)
68
- return name if name.instance_of? Symbol
69
-
70
- r = (
71
- case name
72
- when Symbol, String
73
- name.to_sym
74
- else
75
- case
76
- when name.respond_to?(:to_sym)
77
- name.to_sym
78
- when name.respond_to?(:to_str)
79
- name.to_str.to_sym
80
- else
81
- raise TypeError
82
- end
83
- end
84
- )
85
-
86
- if r.instance_of? Symbol
87
- r
88
- else
89
- raise 'must not happen'
90
- end
68
+ name.to_sym
91
69
  end
92
70
 
93
71
  # @param [Symbol] name
@@ -148,8 +126,8 @@ class Striuct; module Containable; module Eigen
148
126
  __set_condition__! name, condition unless Validation::Condition::ANYTHING.equal? condition
149
127
  __set_flavor__! name, &flavor if block_given?
150
128
 
151
- define_method "#{name}=" do |value|
152
- __set__ name, value
129
+ define_method :"#{name}=" do |value|
130
+ __set__ name, value
153
131
  end
154
132
 
155
133
  nil
@@ -198,7 +176,7 @@ class Striuct; module Containable; module Eigen
198
176
 
199
177
  # @param [Symbol, String] name
200
178
  def condition_for(name)
201
- _condition_for originalkey_for(keyable_for name)
179
+ _condition_for autonym_for(name)
202
180
  end
203
181
 
204
182
  def _flavor_for(name)
@@ -207,7 +185,7 @@ class Striuct; module Containable; module Eigen
207
185
 
208
186
  # @param [Symbol, String] name
209
187
  def flavor_for(name)
210
- _flavor_for originalkey_for(keyable_for name)
188
+ _flavor_for autonym_for(name)
211
189
  end
212
190
 
213
191
  def _default_for(name)
@@ -215,4 +193,4 @@ class Striuct; module Containable; module Eigen
215
193
  end
216
194
 
217
195
  # @endgroup
218
- end; end; end
196
+ end; end