striuct 0.4.2 → 0.4.3

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 (52) hide show
  1. data/.travis.yml +8 -3
  2. data/Gemfile +1 -1
  3. data/History.old(~0.3.n).rdoc +1 -2
  4. data/README.md +7 -13
  5. data/Rakefile +1 -2
  6. data/benchmark/basics.rb +1 -1
  7. data/example/README.rb +3 -3
  8. data/example/example1.rb +4 -4
  9. data/example/example2.rb +1 -1
  10. data/example/see_trace.rb +1 -1
  11. data/lib/striuct/classmethods/adjustment.rb +1 -1
  12. data/lib/striuct/classmethods/attributes.rb +1 -1
  13. data/lib/striuct/classmethods/conflict_management.rb +1 -1
  14. data/lib/striuct/classmethods/constructor.rb +1 -1
  15. data/lib/striuct/classmethods/copy.rb +1 -1
  16. data/lib/striuct/classmethods/default.rb +1 -1
  17. data/lib/striuct/classmethods/enum.rb +1 -1
  18. data/lib/striuct/classmethods/fix.rb +1 -1
  19. data/lib/striuct/classmethods/hashdeepdupulicatable.rb +1 -1
  20. data/lib/striuct/classmethods/inner.rb +9 -1
  21. data/lib/striuct/classmethods/length.rb +1 -1
  22. data/lib/striuct/classmethods/macro.rb +9 -9
  23. data/lib/striuct/classmethods/names.rb +1 -1
  24. data/lib/striuct/classmethods/predicate.rb +1 -1
  25. data/lib/striuct/classmethods/requirements.rb +1 -1
  26. data/lib/striuct/classmethods/validation.rb +1 -1
  27. data/lib/striuct/instancemethods/README.md +1 -1
  28. data/lib/striuct/instancemethods/assign.rb +8 -10
  29. data/lib/striuct/instancemethods/cast.rb +1 -1
  30. data/lib/striuct/instancemethods/compare.rb +1 -1
  31. data/lib/striuct/instancemethods/default.rb +1 -1
  32. data/lib/striuct/instancemethods/delegate_class_methods.rb +1 -1
  33. data/lib/striuct/instancemethods/enum.rb +1 -1
  34. data/lib/striuct/instancemethods/getter.rb +1 -1
  35. data/lib/striuct/instancemethods/hashy.rb +5 -5
  36. data/lib/striuct/instancemethods/keyvalidatable.rb +1 -1
  37. data/lib/striuct/instancemethods/lock.rb +9 -13
  38. data/lib/striuct/instancemethods/object.rb +9 -1
  39. data/lib/striuct/instancemethods/requirements.rb +1 -1
  40. data/lib/striuct/instancemethods/setter.rb +3 -3
  41. data/lib/striuct/instancemethods/to_s.rb +1 -1
  42. data/lib/striuct/instancemethods/validation.rb +1 -1
  43. data/lib/striuct/instancemethods/values.rb +1 -1
  44. data/lib/striuct/requirements.rb +1 -1
  45. data/lib/striuct/singleton_class.rb +1 -1
  46. data/lib/striuct/structs.rb +1 -1
  47. data/lib/striuct.rb +1 -1
  48. data/striuct.gemspec +22 -15
  49. data/test/test_subc-f-predicate.rb +8 -8
  50. data/test/test_subc-i-assign.rb +4 -0
  51. data/test/test_subc-i-validation_inference.rb +1 -1
  52. metadata +77 -26
data/.travis.yml CHANGED
@@ -1,15 +1,20 @@
1
1
  language: ruby
2
+
2
3
  rvm:
3
4
  - ruby-head
5
+ - 2.0.0
4
6
  - 1.9.3
5
7
  - 1.9.2
6
- - rbx-19mode
8
+ - rbx-nightly-19mode
7
9
  - jruby-head
10
+ - jruby-19mode
8
11
 
9
12
  matrix:
10
13
  allow_failures:
11
- - rvm: rbx-19mode
14
+ - rvm: ruby-head
15
+ - rvm: rbx-nightly-19mode
12
16
  - rvm: jruby-head
17
+ - rvm: jruby-19mode
13
18
 
14
19
  before_install:
15
- - gem install bundler
20
+ - gem install bundler
data/Gemfile CHANGED
@@ -8,4 +8,4 @@ end
8
8
 
9
9
  group :test do
10
10
  gem 'rake'
11
- end
11
+ end
@@ -286,5 +286,4 @@
286
286
  === 0.0.1 2011-12-11
287
287
 
288
288
  * 1 major enhancement:
289
- * Initial release
290
-
289
+ * Initial release
data/README.md CHANGED
@@ -1,6 +1,9 @@
1
1
  striuct
2
2
  =======
3
3
 
4
+ [![Build Status](https://secure.travis-ci.org/kachick/striuct.png)](http://travis-ci.org/kachick/striuct)
5
+ [![Gem Version](https://badge.fury.io/rb/striuct.png)](http://badge.fury.io/rb/striuct)
6
+
4
7
  Description
5
8
  -----------
6
9
 
@@ -74,9 +77,9 @@ foo = Foo.new
74
77
 
75
78
  # nil <-> unaasigned
76
79
  foo.foo #=> nil
77
- foo.assign?(:foo) #=> false
80
+ foo.assigned?(:foo) #=> false
78
81
  foo.foo = nil
79
- foo.assign?(:foo) #=> true
82
+ foo.assigned?(:foo) #=> true
80
83
 
81
84
  # Lock to a member
82
85
  foo.lock(:foo)
@@ -100,22 +103,14 @@ Requirements
100
103
  -------------
101
104
 
102
105
  * Ruby - [1.9.2 or later](http://travis-ci.org/#!/kachick/striuct)
103
- * [validation](https://github.com/kachick/validation) - 0.0.3
104
- * [optionalargument](https://github.com/kachick/optionalargument) - 0.0.3
105
- * [keyvalidatable](https://github.com/kachick/keyvalidatable) - 0.0.5
106
106
 
107
107
  Install
108
108
  -------
109
109
 
110
110
  ```bash
111
- $ gem install striuct
111
+ gem install striuct
112
112
  ```
113
113
 
114
- Build Status
115
- -------------
116
-
117
- [![Build Status](https://secure.travis-ci.org/kachick/striuct.png)](http://travis-ci.org/kachick/striuct)
118
-
119
114
  Link
120
115
  ----
121
116
 
@@ -131,5 +126,4 @@ License
131
126
 
132
127
  The MIT X11 License
133
128
  Copyright (c) 2011 Kenichi Kamiya
134
- See MIT-LICENSE for further details.
135
-
129
+ See MIT-LICENSE for further details.
data/Rakefile CHANGED
@@ -7,5 +7,4 @@ task default: [:test]
7
7
 
8
8
  Rake::TestTask.new do |tt|
9
9
  tt.verbose = true
10
- end
11
-
10
+ end
data/benchmark/basics.rb CHANGED
@@ -53,4 +53,4 @@ Benchmark.bm do |bm|
53
53
  xstriuct.any
54
54
  end
55
55
  end
56
- end
56
+ end
data/example/README.rb CHANGED
@@ -34,13 +34,13 @@ end
34
34
 
35
35
  foo = Foo.new
36
36
  p foo.foo #=> nil
37
- p foo.assign?(:foo) #=> false
37
+ p foo.assigned?(:foo) #=> false
38
38
  foo.foo = nil
39
- p foo.assign?(:foo) #=> true
39
+ p foo.assigned?(:foo) #=> true
40
40
  foo.lock(:foo)
41
41
  #~ foo.foo = nil #=> error
42
42
  foo.bar = 1.2
43
43
  #~ foo.bar = 1 #=> error
44
44
 
45
45
  foo.with_adjuster = '5'
46
- p foo.with_adjuster
46
+ p foo.with_adjuster
data/example/example1.rb CHANGED
@@ -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, BasicObject, inference: true
81
81
  member :number, Numeric, inference: true
82
82
  end
83
83
 
@@ -184,9 +184,9 @@ user3
184
184
  debug user3
185
185
 
186
186
  # Standard Struct always define "nil is default". ...realy?
187
- debug user3.assign?(:name)
187
+ debug user3.assigned?(:name)
188
188
  user3.name = nil
189
- debug user3.assign?(:name)
189
+ debug user3.assigned?(:name)
190
190
 
191
191
  # Alias
192
192
 
@@ -232,4 +232,4 @@ p a
232
232
 
233
233
  p MyC.new.to_struct
234
234
  myc = Striuct.new :a, :b
235
- p myc.new.to_struct
235
+ p myc.new.to_struct
data/example/example2.rb CHANGED
@@ -19,4 +19,4 @@ class MyUser < User
19
19
  p members #=> [firstname, lank, registered, :foo]
20
20
  end
21
21
 
22
- user = MyUser.new
22
+ user = MyUser.new
data/example/see_trace.rb CHANGED
@@ -29,4 +29,4 @@ puts '-' * 80
29
29
 
30
30
  $stdout.flush
31
31
 
32
- user.age = 19
32
+ user.age = 19
@@ -12,4 +12,4 @@ class Striuct; module ClassMethods
12
12
 
13
13
  # @endgroup
14
14
 
15
- end; end
15
+ end; end
@@ -109,4 +109,4 @@ class Striuct; module ClassMethods
109
109
  private_constant :Attributes
110
110
  end
111
111
 
112
- end; end
112
+ end; end
@@ -109,4 +109,4 @@ class Striuct; module ClassMethods
109
109
 
110
110
  # @endgroup
111
111
 
112
- end; end
112
+ end; end
@@ -48,7 +48,7 @@ class Striuct; module ClassMethods
48
48
  new.tap {|instance|
49
49
  yield instance
50
50
 
51
- yets = autonyms.select{|autonym|! instance.assign?(autonym)}
51
+ yets = autonyms.select{|autonym|! instance.assigned?(autonym)}
52
52
  unless yets.empty?
53
53
  raise "not assigned members are, yet '#{yets.inspect} in #{self}'"
54
54
  end
@@ -49,4 +49,4 @@ class Striuct; module ClassMethods
49
49
 
50
50
  # @endgroup
51
51
 
52
- end; end
52
+ end; end
@@ -21,4 +21,4 @@ class Striuct; module ClassMethods
21
21
 
22
22
  # @endgroup
23
23
 
24
- end; end
24
+ end; end
@@ -42,4 +42,4 @@ class Striuct; module ClassMethods
42
42
 
43
43
  # @endgroup
44
44
 
45
- end; end
45
+ end; end
@@ -25,4 +25,4 @@ class Striuct; module ClassMethods
25
25
 
26
26
  # @endgroup
27
27
 
28
- end; end
28
+ end; end
@@ -18,4 +18,4 @@ class Striuct; module ClassMethods
18
18
  private_constant :HashDeepDupulicatable
19
19
  end
20
20
 
21
- end; end
21
+ end; end
@@ -23,6 +23,14 @@ class Striuct; module ClassMethods
23
23
  @attributes.fetch autonym
24
24
  end
25
25
 
26
+ def _check_frozen
27
+ raise "can't modify frozen Class" if frozen?
28
+ end
29
+
30
+ def _check_closed
31
+ raise "can't modify closed member attributes in #{self}" if closed?
32
+ end
33
+
26
34
  def _def_getter(autonym)
27
35
  define_method autonym do
28
36
  _get autonym
@@ -58,4 +66,4 @@ class Striuct; module ClassMethods
58
66
 
59
67
  # @endgroup
60
68
 
61
- end; end
69
+ end; end
@@ -11,4 +11,4 @@ class Striuct; module ClassMethods
11
11
 
12
12
  # @endgroup
13
13
 
14
- end; end
14
+ end; end
@@ -28,8 +28,8 @@ class Striuct; module ClassMethods
28
28
  # @option options [Boolean] :setter_validation
29
29
  # @return [nil]
30
30
  def add_member(autonym, condition=ANYTHING, options={}, &adjuster)
31
- raise "can't modify frozen Class" if frozen?
32
- raise "already closed to add member in #{self}" if closed?
31
+ _check_frozen
32
+ _check_closed
33
33
 
34
34
  options = ADD_MEMBER_OptArg.parse options
35
35
  autonym = autonym.to_sym # First difinition for an autonym
@@ -64,8 +64,8 @@ class Striuct; module ClassMethods
64
64
  # @param [Symbol, String, #to_sym] autonyms
65
65
  # @return [nil]
66
66
  def add_members(autonym, *autonyms)
67
- raise "can't modify frozen Class" if frozen?
68
- raise "already closed to add members in #{self}" if closed?
67
+ _check_frozen
68
+ _check_closed
69
69
 
70
70
  [autonym, *autonyms].each {|_autonym|add_member _autonym}
71
71
  nil
@@ -75,8 +75,8 @@ class Striuct; module ClassMethods
75
75
  # @param [Symbol, String, #to_sym] autonym
76
76
  # @return [nil]
77
77
  def alias_member(aliased, autonym)
78
- raise "can't modify frozen Class" if frozen?
79
- raise "already closed to add members in #{self}" if closed?
78
+ _check_frozen
79
+ _check_closed
80
80
  autonym = autonym_for_member autonym
81
81
  aliased = aliased.to_sym
82
82
  raise ArgumentError, %Q!already exist name "#{aliased}"! if member? aliased
@@ -91,8 +91,8 @@ class Striuct; module ClassMethods
91
91
  # @param [Symbol, String, #to_sym] name
92
92
  # @return [nil]
93
93
  def set_default_value(name, value=nil, &block)
94
- raise "can't modify frozen Class" if frozen?
95
- raise "already closed to modify member attributes in #{self}" if closed?
94
+ _check_frozen
95
+ _check_closed
96
96
  autonym = autonym_for_member name
97
97
  raise "already settled default value for #{name}" if with_default? autonym
98
98
 
@@ -113,4 +113,4 @@ class Striuct; module ClassMethods
113
113
 
114
114
  # @endgroup
115
115
 
116
- end; end
116
+ end; end
@@ -72,4 +72,4 @@ class Striuct; module ClassMethods
72
72
 
73
73
  # @endgroup
74
74
 
75
- end; end
75
+ end; end
@@ -125,4 +125,4 @@ class Striuct; module ClassMethods
125
125
 
126
126
  # @endgroup
127
127
 
128
- end; end
128
+ end; end
@@ -15,4 +15,4 @@ require_relative 'default'
15
15
  require_relative 'adjustment'
16
16
  require_relative 'macro'
17
17
  require_relative 'conflict_management'
18
- require_relative 'validation'
18
+ require_relative 'validation'
@@ -12,4 +12,4 @@ class Striuct; module ClassMethods
12
12
 
13
13
  # @endgroup
14
14
 
15
- end; end
15
+ end; end
@@ -2,4 +2,4 @@ Note
2
2
  =====
3
3
 
4
4
  This dir's tree is diveded under roles/features.
5
- Not under CONSTANT names.
5
+ Not under CONSTANT names.
@@ -3,21 +3,19 @@ class Striuct; module InstanceMethods
3
3
  # @group Assign / Unassign
4
4
 
5
5
  # @param [Symbol, String, #to_sym, Integer, #to_int] key - name / index
6
- def assign?(key)
7
- autonym = autonym_for_key key
8
-
9
- @db.has_key? autonym
6
+ def assigned?(key)
7
+ @db.has_key? autonym_for_key(key)
10
8
  end
9
+
10
+ alias_method :assign?, :assigned?
11
11
 
12
12
  # @param [Symbol, String, #to_sym, Integer, #to_int] key - name / index
13
13
  # @return value / nil - value assigned under the key
14
14
  def unassign(key)
15
- raise "can't modify frozen #{self.class}" if frozen?
15
+ _check_frozen
16
+ _check_locked key
16
17
 
17
- autonym = autonym_for_key key
18
- raise "can't modify locked member #{autonym}" if locked? autonym
19
-
20
- @db.delete autonym
18
+ @db.delete autonym_for_key(key)
21
19
  end
22
20
 
23
21
  alias_method :delete_at, :unassign
@@ -29,4 +27,4 @@ class Striuct; module InstanceMethods
29
27
 
30
28
  # @endgroup
31
29
 
32
- end; end
30
+ end; end
@@ -29,4 +29,4 @@ class Striuct; module InstanceMethods
29
29
 
30
30
  # @endgroup
31
31
 
32
- end; end
32
+ end; end
@@ -27,4 +27,4 @@ class Striuct; module InstanceMethods
27
27
 
28
28
  # @endgroup
29
29
 
30
- end; end
30
+ end; end
@@ -33,4 +33,4 @@ class Striuct; module InstanceMethods
33
33
 
34
34
  # @endgroup
35
35
 
36
- end; end
36
+ end; end
@@ -31,4 +31,4 @@ class Striuct; module InstanceMethods
31
31
 
32
32
  # @endgroup
33
33
 
34
- end; end
34
+ end; end
@@ -95,4 +95,4 @@ class Striuct; module InstanceMethods
95
95
 
96
96
  # @endgroup
97
97
 
98
- end; end
98
+ end; end
@@ -44,4 +44,4 @@ class Striuct; module InstanceMethods
44
44
 
45
45
  # @endgroup
46
46
 
47
- end; end
47
+ end; end
@@ -16,7 +16,7 @@ class Striuct; module InstanceMethods
16
16
  # @yieldreturn [self]
17
17
  # @yieldreturn [nil]
18
18
  def select!
19
- raise "can't modify frozen #{self.class}" if frozen?
19
+ _check_frozen
20
20
  return to_enum(__callee__) unless block_given?
21
21
 
22
22
  modified = false
@@ -35,7 +35,7 @@ class Striuct; module InstanceMethods
35
35
  # @yieldparam [Symbol] autonym
36
36
  # @return [Enumerator]
37
37
  def keep_if(&block)
38
- raise "can't modify frozen #{self.class}" if frozen?
38
+ _check_frozen
39
39
  return to_enum(__callee__) unless block_given?
40
40
 
41
41
  select!(&block)
@@ -48,7 +48,7 @@ class Striuct; module InstanceMethods
48
48
  # @yieldparam [Symbol] autonym
49
49
  # @return [Enumerator]
50
50
  def reject!
51
- raise "can't modify frozen #{self.class}" if frozen?
51
+ _check_frozen
52
52
  return to_enum(__callee__) unless block_given?
53
53
 
54
54
  modified = false
@@ -67,7 +67,7 @@ class Striuct; module InstanceMethods
67
67
  # @yieldparam [Symbol] autonym
68
68
  # @return [Enumerator]
69
69
  def delete_if(&block)
70
- raise "can't modify frozen #{self.class}" if frozen?
70
+ _check_frozen
71
71
  return to_enum(__callee__) unless block_given?
72
72
 
73
73
  reject!(&block)
@@ -115,4 +115,4 @@ class Striuct; module InstanceMethods
115
115
 
116
116
  # @endgroup
117
117
 
118
- end; end
118
+ end; end
@@ -6,4 +6,4 @@ class Striuct; module InstanceMethods
6
6
  end
7
7
  end
8
8
 
9
- end; end
9
+ end; end
@@ -5,16 +5,15 @@ class Striuct; module InstanceMethods
5
5
  # @param [Symbol, String, #to_sym, Integer, #to_int] key - name / index
6
6
  # @return [self]
7
7
  def lock(key)
8
- raise "can't modify frozen #{self.class}" if frozen?
9
- autonym = autonym_for_key key
8
+ _check_frozen
10
9
 
11
- @locks[autonym] = true
10
+ @locks[autonym_for_key(key)] = true
12
11
  self
13
12
  end
14
13
 
15
14
  # @return [self]
16
15
  def lock_all
17
- raise "can't modify frozen #{self.class}" if frozen?
16
+ _check_frozen
18
17
 
19
18
  each_autonym do |autonym|
20
19
  @locks[autonym] = true
@@ -23,9 +22,7 @@ class Striuct; module InstanceMethods
23
22
 
24
23
  # @param [Symbol, String, #to_sym, Integer, #to_int] key - name / index
25
24
  def locked?(key)
26
- autonym = autonym_for_key key
27
-
28
- @locks.has_key? autonym
25
+ @locks.has_key? autonym_for_key(key)
29
26
  end
30
27
 
31
28
  def all_locked?
@@ -37,16 +34,15 @@ class Striuct; module InstanceMethods
37
34
  # @param [Symbol, String, #to_sym, Integer, #to_int] key - name / index
38
35
  # @return [self]
39
36
  def unlock(key)
40
- raise "can't modify frozen #{self.class}" if frozen?
41
- autonym = autonym_for_key key
42
-
43
- @locks.delete autonym
37
+ _check_frozen
38
+
39
+ @locks.delete autonym_for_key(key)
44
40
  self
45
41
  end
46
42
 
47
43
  # @return [self]
48
44
  def unlock_all
49
- raise "can't modify frozen #{self.class}" if frozen?
45
+ _check_frozen
50
46
 
51
47
  @locks.clear
52
48
  self
@@ -54,4 +50,4 @@ class Striuct; module InstanceMethods
54
50
 
55
51
  # @endgroup
56
52
 
57
- end; end
53
+ end; end
@@ -21,6 +21,14 @@ class Striuct; module InstanceMethods
21
21
  @db, @locks = @db.dup, {}
22
22
  end
23
23
 
24
+ def _check_frozen
25
+ raise "can't modify frozen #{self.class}" if frozen?
26
+ end
27
+
28
+ def _check_locked(key)
29
+ raise "can't modify locked member `#{key}`" if locked? key
30
+ end
31
+
24
32
  # @endgroup
25
33
 
26
- end; end
34
+ end; end
@@ -27,4 +27,4 @@ require_relative 'setter'
27
27
  require_relative 'assign'
28
28
  require_relative 'lock'
29
29
  require_relative 'validation'
30
- require_relative 'safety'
30
+ require_relative 'safety'
@@ -23,8 +23,8 @@ class Striuct; module InstanceMethods
23
23
  # @param [Symbol] autonym - MUST already converted to native autonym
24
24
  # @return value
25
25
  def _set(autonym, value)
26
- raise "can't modify frozen #{self.class}" if frozen?
27
- raise "can't modify locked member #{autonym}" if locked? autonym
26
+ _check_frozen
27
+ _check_locked autonym
28
28
 
29
29
  if with_adjuster? autonym
30
30
  begin
@@ -55,4 +55,4 @@ class Striuct; module InstanceMethods
55
55
 
56
56
  # @endgroup
57
57
 
58
- end; end
58
+ end; end
@@ -32,4 +32,4 @@ class Striuct; module InstanceMethods
32
32
 
33
33
  # @endgroup
34
34
 
35
- end; end
35
+ end; end
@@ -32,4 +32,4 @@ class Striuct; module InstanceMethods
32
32
 
33
33
  # @endgroup
34
34
 
35
- end; end
35
+ end; end
@@ -38,4 +38,4 @@ class Striuct; module InstanceMethods
38
38
 
39
39
  # @endgroup
40
40
 
41
- end; end
41
+ end; end
@@ -2,4 +2,4 @@ require 'validation'
2
2
  require_relative 'structs'
3
3
  require_relative 'classmethods/requirements'
4
4
  require_relative 'instancemethods/requirements'
5
- require_relative 'singleton_class'
5
+ require_relative 'singleton_class'
@@ -62,4 +62,4 @@ class Striuct
62
62
 
63
63
  end
64
64
 
65
- end
65
+ end
@@ -4,4 +4,4 @@ class Striuct
4
4
  module Structs
5
5
  end
6
6
 
7
- end
7
+ end
data/lib/striuct.rb CHANGED
@@ -5,4 +5,4 @@
5
5
  class Striuct
6
6
  end
7
7
 
8
- require_relative 'striuct/requirements'
8
+ require_relative 'striuct/requirements'
data/striuct.gemspec CHANGED
@@ -1,27 +1,34 @@
1
1
  Gem::Specification.new do |gem|
2
- gem.authors = ['Kenichi Kamiya']
3
- gem.email = ['kachick1+ruby@gmail.com']
4
- gem.summary = %q{Struct++}
5
- gem.description = %q{Validatable, Inheritable, Member Aliasing,
2
+ # specific
3
+
4
+ gem.description = %q{Struct++ library
5
+
6
+ Validatable, Inheritable, Member Aliasing,
6
7
  Conflict Management, Default Value, Divide nil with unassign,
7
8
  Lock setter of each member, Hash flendly API, ... And more Struct++ features :)}
8
- gem.homepage = 'https://github.com/kachick/striuct'
9
9
 
10
- gem.files = `git ls-files`.split($\)
11
- gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
12
- gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
10
+ gem.summary = gem.description.dup
11
+ gem.homepage = 'http://kachick.github.com/striuct/'
12
+ gem.license = 'MIT'
13
13
  gem.name = 'striuct'
14
- gem.require_paths = ['lib']
15
- gem.version = '0.4.2'
14
+ gem.version = '0.4.3'
16
15
 
17
16
  gem.required_ruby_version = '>= 1.9.2'
18
17
 
19
- gem.add_runtime_dependency 'validation', '~> 0.0.3'
18
+ gem.add_runtime_dependency 'validation', '~> 0.0.5'
20
19
  gem.add_runtime_dependency 'optionalargument', '~> 0.0.3'
21
20
  gem.add_runtime_dependency 'keyvalidatable', '~> 0.0.5'
22
21
 
23
- gem.add_development_dependency 'yard', '~> 0.8'
24
- gem.add_development_dependency 'rake'
25
- gem.add_development_dependency 'bundler'
26
- end
22
+ gem.add_development_dependency 'yard', '>= 0.8.6.1', '< 2'
23
+ gem.add_development_dependency 'rake', '>= 10', '< 20'
24
+ gem.add_development_dependency 'bundler', '>= 1.3.5', '< 2'
27
25
 
26
+ # common
27
+
28
+ gem.authors = ['Kenichi Kamiya']
29
+ gem.email = ['kachick1+ruby@gmail.com']
30
+ gem.files = `git ls-files`.split($\)
31
+ gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
32
+ gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
33
+ gem.require_paths = ['lib']
34
+ end
@@ -145,10 +145,10 @@ class Test_Striuct_Subclass_Predicate_Default < Test::Unit::TestCase
145
145
 
146
146
  class Subclass < Striuct
147
147
  member :foo
148
- member :val, ANYTHING?, default: 'DEFAULT'
148
+ member :val, BasicObject, default: 'DEFAULT'
149
149
 
150
150
  conflict_management :struct do
151
- member :lazy, ANYTHING?, default_proc: ->{}
151
+ member :lazy, BasicObject, default_proc: ->{}
152
152
  end
153
153
 
154
154
  alias_member :als_foo, :foo
@@ -261,7 +261,7 @@ class Test_Striuct_Subclass_Predicate_Condition < Test::Unit::TestCase
261
261
  alias_member :als_no_with, :no_with
262
262
  member :with, nil
263
263
  alias_member :als_with, :with
264
- member :with_any, ANYTHING?
264
+ member :with_any, BasicObject
265
265
  alias_member :als_with_any, :with_any
266
266
  member :adj_with, nil do |_|; end
267
267
  alias_member :als_adj_with, :adj_with
@@ -325,7 +325,7 @@ class Test_Striuct_Subclass_Predicate_InferenceValidation < Test::Unit::TestCase
325
325
  alias_member :als_no_with, :no_with
326
326
  member :with, nil, inference: true
327
327
  alias_member :als_with, :with
328
- member :with_any, ANYTHING?, inference: true
328
+ member :with_any, BasicObject, inference: true
329
329
  alias_member :als_with_any, :with_any
330
330
  member :adj_with, nil, inference: true do |_|; end
331
331
  alias_member :als_adj_with, :adj_with
@@ -390,7 +390,7 @@ class Test_Striuct_Subclass_Predicate_HookTiming_Setter_Enable < Test::Unit::Tes
390
390
  alias_member :als_no_with, :no_with
391
391
  member :with, nil, setter_validation: true
392
392
  alias_member :als_with, :with
393
- member :with_any, ANYTHING?, writer_validation: true
393
+ member :with_any, BasicObject, writer_validation: true
394
394
  alias_member :als_with_any, :with_any
395
395
  member :adj_with, nil, writer_validation: true do |_|; end
396
396
  alias_member :als_adj_with, :adj_with
@@ -456,7 +456,7 @@ class Test_Striuct_Subclass_Predicate_HookTiming_Setter_Disable < Test::Unit::Te
456
456
  member :with, nil, setter_validation: false
457
457
  alias_member :als_with, :with
458
458
 
459
- member :with_any, ANYTHING?, writer_validation: false
459
+ member :with_any, BasicObject, writer_validation: false
460
460
  alias_member :als_with_any, :with_any
461
461
 
462
462
  member :adj_with, nil, writer_validation: false do |_|; end
@@ -522,7 +522,7 @@ class Test_Striuct_Subclass_Predicate_HookTiming_Getter_Enable < Test::Unit::Tes
522
522
  alias_member :als_no_with, :no_with
523
523
  member :with, nil, getter_validation: true
524
524
  alias_member :als_with, :with
525
- member :with_any, ANYTHING?, reader_validation: true
525
+ member :with_any, BasicObject, reader_validation: true
526
526
  alias_member :als_with_any, :with_any
527
527
  member :adj_with, nil, reader_validation: true do |_|; end
528
528
  alias_member :als_adj_with, :adj_with
@@ -588,7 +588,7 @@ class Test_Striuct_Subclass_Predicate_HookTiming_Getter_Disable < Test::Unit::Te
588
588
  member :with, nil, getter_validation: false
589
589
  alias_member :als_with, :with
590
590
 
591
- member :with_any, ANYTHING?, reader_validation: false
591
+ member :with_any, BasicObject, reader_validation: false
592
592
  alias_member :als_with_any, :with_any
593
593
 
594
594
  member :adj_with, nil, reader_validation: false do |_|; end
@@ -10,12 +10,16 @@ class Test_Striuct_Subclass_Instance_Assign < Test::Unit::TestCase
10
10
  define_method :"test_#{callee}" do
11
11
  sth = Sth.new
12
12
  assert_equal false, sth.assign?(:foo)
13
+ assert_equal false, sth.assigned?(:foo)
13
14
  sth.foo = nil
14
15
  assert_equal true, sth.assign?(:foo)
16
+ assert_equal true, sth.assigned?(:foo)
15
17
  sth.public_send callee, :foo
16
18
  assert_equal false, sth.assign?(:foo)
19
+ assert_equal false, sth.assigned?(:foo)
17
20
  sth.foo = nil
18
21
  assert_equal true, sth.assign?(:foo)
22
+ assert_equal true, sth.assigned?(:foo)
19
23
  sth.public_send callee, 0
20
24
  assert_equal false, sth.assign?(:foo)
21
25
 
@@ -5,7 +5,7 @@ class Test_Striuct_Subclass_Instance_Inference < Test::Unit::TestCase
5
5
  def test_inference
6
6
  klass = Striuct.define do
7
7
  member :n, Numeric, inference: true
8
- member :m, ANYTHING?, inference: true
8
+ member :m, BasicObject, inference: true
9
9
  end
10
10
 
11
11
  sth, sth2 = klass.new, klass.new
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: striuct
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.2
4
+ version: 0.4.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,22 +9,27 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-10-22 00:00:00.000000000 Z
12
+ date: 2013-05-31 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: validation
16
- requirement: &11390460 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
20
20
  - !ruby/object:Gem::Version
21
- version: 0.0.3
21
+ version: 0.0.5
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *11390460
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: 0.0.5
25
30
  - !ruby/object:Gem::Dependency
26
31
  name: optionalargument
27
- requirement: &11389980 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
28
33
  none: false
29
34
  requirements:
30
35
  - - ~>
@@ -32,10 +37,15 @@ dependencies:
32
37
  version: 0.0.3
33
38
  type: :runtime
34
39
  prerelease: false
35
- version_requirements: *11389980
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: 0.0.3
36
46
  - !ruby/object:Gem::Dependency
37
47
  name: keyvalidatable
38
- requirement: &11389500 !ruby/object:Gem::Requirement
48
+ requirement: !ruby/object:Gem::Requirement
39
49
  none: false
40
50
  requirements:
41
51
  - - ~>
@@ -43,43 +53,81 @@ dependencies:
43
53
  version: 0.0.5
44
54
  type: :runtime
45
55
  prerelease: false
46
- version_requirements: *11389500
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: 0.0.5
47
62
  - !ruby/object:Gem::Dependency
48
63
  name: yard
49
- requirement: &11389040 !ruby/object:Gem::Requirement
64
+ requirement: !ruby/object:Gem::Requirement
50
65
  none: false
51
66
  requirements:
52
- - - ~>
67
+ - - ! '>='
53
68
  - !ruby/object:Gem::Version
54
- version: '0.8'
69
+ version: 0.8.6.1
70
+ - - <
71
+ - !ruby/object:Gem::Version
72
+ version: '2'
55
73
  type: :development
56
74
  prerelease: false
57
- version_requirements: *11389040
75
+ version_requirements: !ruby/object:Gem::Requirement
76
+ none: false
77
+ requirements:
78
+ - - ! '>='
79
+ - !ruby/object:Gem::Version
80
+ version: 0.8.6.1
81
+ - - <
82
+ - !ruby/object:Gem::Version
83
+ version: '2'
58
84
  - !ruby/object:Gem::Dependency
59
85
  name: rake
60
- requirement: &11388640 !ruby/object:Gem::Requirement
86
+ requirement: !ruby/object:Gem::Requirement
61
87
  none: false
62
88
  requirements:
63
89
  - - ! '>='
64
90
  - !ruby/object:Gem::Version
65
- version: '0'
91
+ version: '10'
92
+ - - <
93
+ - !ruby/object:Gem::Version
94
+ version: '20'
66
95
  type: :development
67
96
  prerelease: false
68
- version_requirements: *11388640
97
+ version_requirements: !ruby/object:Gem::Requirement
98
+ none: false
99
+ requirements:
100
+ - - ! '>='
101
+ - !ruby/object:Gem::Version
102
+ version: '10'
103
+ - - <
104
+ - !ruby/object:Gem::Version
105
+ version: '20'
69
106
  - !ruby/object:Gem::Dependency
70
107
  name: bundler
71
- requirement: &11388180 !ruby/object:Gem::Requirement
108
+ requirement: !ruby/object:Gem::Requirement
72
109
  none: false
73
110
  requirements:
74
111
  - - ! '>='
75
112
  - !ruby/object:Gem::Version
76
- version: '0'
113
+ version: 1.3.5
114
+ - - <
115
+ - !ruby/object:Gem::Version
116
+ version: '2'
77
117
  type: :development
78
118
  prerelease: false
79
- version_requirements: *11388180
80
- description: ! "Validatable, Inheritable, Member Aliasing,\n Conflict Management,
81
- Default Value, Divide nil with unassign,\n Lock setter of each member, Hash flendly
82
- API, ... And more Struct++ features :)"
119
+ version_requirements: !ruby/object:Gem::Requirement
120
+ none: false
121
+ requirements:
122
+ - - ! '>='
123
+ - !ruby/object:Gem::Version
124
+ version: 1.3.5
125
+ - - <
126
+ - !ruby/object:Gem::Version
127
+ version: '2'
128
+ description: ! "Struct++ library\n\n Validatable, Inheritable, Member Aliasing,\n
129
+ \ Conflict Management, Default Value, Divide nil with unassign,\n Lock setter of
130
+ each member, Hash flendly API, ... And more Struct++ features :)"
83
131
  email:
84
132
  - kachick1+ruby@gmail.com
85
133
  executables: []
@@ -172,8 +220,9 @@ files:
172
220
  - test/test_subc-i-validation_specific_conditions.rb
173
221
  - test/test_subc-i-validation_with_getter.rb
174
222
  - test/test_version.rb
175
- homepage: https://github.com/kachick/striuct
176
- licenses: []
223
+ homepage: http://kachick.github.com/striuct/
224
+ licenses:
225
+ - MIT
177
226
  post_install_message:
178
227
  rdoc_options: []
179
228
  require_paths:
@@ -192,10 +241,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
192
241
  version: '0'
193
242
  requirements: []
194
243
  rubyforge_project:
195
- rubygems_version: 1.8.11
244
+ rubygems_version: 1.8.23
196
245
  signing_key:
197
246
  specification_version: 3
198
- summary: Struct++
247
+ summary: Struct++ library Validatable, Inheritable, Member Aliasing, Conflict Management,
248
+ Default Value, Divide nil with unassign, Lock setter of each member, Hash flendly
249
+ API, ... And more Struct++ features :)
199
250
  test_files:
200
251
  - test/helper.rb
201
252
  - test/test_sglc-constructor.rb