dm-types 1.2.1 → 1.2.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (7) hide show
  1. data/.gitignore +36 -0
  2. data/Gemfile +9 -9
  3. data/Rakefile +1 -22
  4. data/dm-types.gemspec +22 -135
  5. data/lib/dm-types/enum.rb +4 -1
  6. metadata +86 -180
  7. data/VERSION +0 -1
@@ -0,0 +1,36 @@
1
+ ## MAC OS
2
+ .DS_Store
3
+ ._*
4
+
5
+ ## TEXTMATE
6
+ *.tmproj
7
+ tmtags
8
+
9
+ ## EMACS
10
+ *~
11
+ \#*
12
+ .\#*
13
+
14
+ ## VIM
15
+ *.swp
16
+
17
+ ## Rubinius
18
+ *.rbc
19
+
20
+ ## PROJECT::GENERAL
21
+ *.gem
22
+ coverage
23
+ rdoc
24
+ pkg
25
+ tmp
26
+ doc
27
+ log
28
+ .yardoc
29
+ measurements
30
+
31
+ ## BUNDLER
32
+ .bundle
33
+ Gemfile.*
34
+
35
+ ## PROJECT::SPECIFIC
36
+ spec/db/
data/Gemfile CHANGED
@@ -10,20 +10,20 @@ DO_VERSION = '~> 0.10.6'
10
10
  DM_DO_ADAPTERS = %w[ sqlite postgres mysql oracle sqlserver ]
11
11
  CURRENT_BRANCH = ENV.fetch('GIT_BRANCH', 'master')
12
12
 
13
- gem 'bcrypt-ruby', '~> 3.0.0'
13
+ gem 'bcrypt-ruby', '~> 3.0'
14
+ gem 'fastercsv', '~> 1.5'
15
+ gem 'multi_json', '~> 1.0'
16
+ gem 'json', '~> 1.6', :platforms => [ :ruby_18 ]
17
+ gem 'stringex', '~> 1.3'
18
+ gem 'uuidtools', '~> 2.1'
19
+
14
20
  gem 'dm-core', DM_VERSION, SOURCE => "#{DATAMAPPER}/dm-core#{REPO_POSTFIX}", :branch => CURRENT_BRANCH
15
- gem 'fastercsv', '~> 1.5.4'
16
- gem 'multi_json', '~> 1.0.3'
17
- gem 'json', '~> 1.6.1', :platforms => [ :ruby_18 ]
18
- gem 'stringex', '~> 1.3.0'
19
- gem 'uuidtools', '~> 2.1.2'
20
21
 
21
22
  group :development do
22
23
 
23
24
  gem 'dm-validations', DM_VERSION, SOURCE => "#{DATAMAPPER}/dm-validations#{REPO_POSTFIX}", :branch => CURRENT_BRANCH
24
- gem 'jeweler', '~> 1.6.4'
25
- gem 'rake', '~> 0.9.2'
26
- gem 'rspec', '~> 1.3.2'
25
+ gem 'rake', '~> 0.9'
26
+ gem 'rspec', '~> 1.3'
27
27
 
28
28
  end
29
29
 
data/Rakefile CHANGED
@@ -1,25 +1,4 @@
1
1
  require 'rubygems'
2
2
  require 'rake'
3
3
 
4
- begin
5
- gem 'jeweler', '~> 1.6.4'
6
- require 'jeweler'
7
-
8
- Jeweler::Tasks.new do |gem|
9
- gem.name = 'dm-types'
10
- gem.summary = 'DataMapper plugin providing extra data types'
11
- gem.description = gem.summary
12
- gem.email = 'dan.kubb [a] gmail [d] com'
13
- gem.homepage = 'http://github.com/datamapper/%s' % gem.name
14
- gem.authors = [ 'Dan Kubb' ]
15
- gem.has_rdoc = 'yard'
16
-
17
- gem.rubyforge_project = 'datamapper'
18
- end
19
-
20
- Jeweler::GemcutterTasks.new
21
-
22
- FileList['tasks/**/*.rake'].each { |task| import task }
23
- rescue LoadError
24
- puts 'Jeweler (or a dependency) not available. Install it with: gem install jeweler -v 1.6.4'
25
- end
4
+ FileList['tasks/**/*.rake'].each { |task| import task }
@@ -1,141 +1,28 @@
1
- # Generated by jeweler
2
- # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
1
  # -*- encoding: utf-8 -*-
5
2
 
6
- Gem::Specification.new do |s|
7
- s.name = "dm-types"
8
- s.version = "1.2.1"
3
+ Gem::Specification.new do |gem|
4
+ gem.authors = [ 'Dan Kubb' ]
5
+ gem.email = [ "dan.kubb@gmail.com" ]
6
+ gem.summary = "DataMapper plugin providing extra data types"
7
+ gem.description = gem.summary
8
+ gem.homepage = "http://datamapper.org"
9
9
 
10
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["Dan Kubb"]
12
- s.date = "2011-10-24"
13
- s.description = "DataMapper plugin providing extra data types"
14
- s.email = "dan.kubb [a] gmail [d] com"
15
- s.extra_rdoc_files = [
16
- "LICENSE",
17
- "README.rdoc"
18
- ]
19
- s.files = [
20
- "Gemfile",
21
- "LICENSE",
22
- "README.rdoc",
23
- "Rakefile",
24
- "VERSION",
25
- "dm-types.gemspec",
26
- "lib/dm-types.rb",
27
- "lib/dm-types/api_key.rb",
28
- "lib/dm-types/bcrypt_hash.rb",
29
- "lib/dm-types/comma_separated_list.rb",
30
- "lib/dm-types/csv.rb",
31
- "lib/dm-types/enum.rb",
32
- "lib/dm-types/epoch_time.rb",
33
- "lib/dm-types/file_path.rb",
34
- "lib/dm-types/flag.rb",
35
- "lib/dm-types/ip_address.rb",
36
- "lib/dm-types/json.rb",
37
- "lib/dm-types/paranoid/base.rb",
38
- "lib/dm-types/paranoid_boolean.rb",
39
- "lib/dm-types/paranoid_datetime.rb",
40
- "lib/dm-types/regexp.rb",
41
- "lib/dm-types/slug.rb",
42
- "lib/dm-types/support/dirty_minder.rb",
43
- "lib/dm-types/support/flags.rb",
44
- "lib/dm-types/uri.rb",
45
- "lib/dm-types/uuid.rb",
46
- "lib/dm-types/yaml.rb",
47
- "spec/fixtures/api_user.rb",
48
- "spec/fixtures/article.rb",
49
- "spec/fixtures/bookmark.rb",
50
- "spec/fixtures/invention.rb",
51
- "spec/fixtures/network_node.rb",
52
- "spec/fixtures/person.rb",
53
- "spec/fixtures/software_package.rb",
54
- "spec/fixtures/ticket.rb",
55
- "spec/fixtures/tshirt.rb",
56
- "spec/integration/api_key_spec.rb",
57
- "spec/integration/bcrypt_hash_spec.rb",
58
- "spec/integration/comma_separated_list_spec.rb",
59
- "spec/integration/dirty_minder_spec.rb",
60
- "spec/integration/enum_spec.rb",
61
- "spec/integration/epoch_time_spec.rb",
62
- "spec/integration/file_path_spec.rb",
63
- "spec/integration/flag_spec.rb",
64
- "spec/integration/ip_address_spec.rb",
65
- "spec/integration/json_spec.rb",
66
- "spec/integration/slug_spec.rb",
67
- "spec/integration/uri_spec.rb",
68
- "spec/integration/uuid_spec.rb",
69
- "spec/integration/yaml_spec.rb",
70
- "spec/rcov.opts",
71
- "spec/shared/flags_shared_spec.rb",
72
- "spec/shared/identity_function_group.rb",
73
- "spec/spec.opts",
74
- "spec/spec_helper.rb",
75
- "spec/unit/bcrypt_hash_spec.rb",
76
- "spec/unit/csv_spec.rb",
77
- "spec/unit/enum_spec.rb",
78
- "spec/unit/epoch_time_spec.rb",
79
- "spec/unit/file_path_spec.rb",
80
- "spec/unit/flag_spec.rb",
81
- "spec/unit/ip_address_spec.rb",
82
- "spec/unit/json_spec.rb",
83
- "spec/unit/paranoid_boolean_spec.rb",
84
- "spec/unit/paranoid_datetime_spec.rb",
85
- "spec/unit/regexp_spec.rb",
86
- "spec/unit/uri_spec.rb",
87
- "spec/unit/uuid_spec.rb",
88
- "spec/unit/yaml_spec.rb",
89
- "tasks/spec.rake",
90
- "tasks/yard.rake",
91
- "tasks/yardstick.rake"
92
- ]
93
- s.homepage = "http://github.com/datamapper/dm-types"
94
- s.require_paths = ["lib"]
95
- s.rubyforge_project = "datamapper"
96
- s.rubygems_version = "1.8.11"
97
- s.summary = "DataMapper plugin providing extra data types"
10
+ gem.files = `git ls-files`.split("\n")
11
+ gem.test_files = `git ls-files -- {spec}/*`.split("\n")
12
+ gem.extra_rdoc_files = %w[LICENSE README.rdoc]
98
13
 
99
- if s.respond_to? :specification_version then
100
- s.specification_version = 3
14
+ gem.name = "dm-types"
15
+ gem.require_paths = [ "lib" ]
16
+ gem.version = '1.2.2'
101
17
 
102
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
103
- s.add_runtime_dependency(%q<bcrypt-ruby>, ["~> 3.0.0"])
104
- s.add_runtime_dependency(%q<dm-core>, ["~> 1.2.0"])
105
- s.add_runtime_dependency(%q<fastercsv>, ["~> 1.5.4"])
106
- s.add_runtime_dependency(%q<multi_json>, ["~> 1.0.3"])
107
- s.add_runtime_dependency(%q<json>, ["~> 1.6.1"])
108
- s.add_runtime_dependency(%q<stringex>, ["~> 1.3.0"])
109
- s.add_runtime_dependency(%q<uuidtools>, ["~> 2.1.2"])
110
- s.add_development_dependency(%q<dm-validations>, ["~> 1.2.0"])
111
- s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
112
- s.add_development_dependency(%q<rake>, ["~> 0.9.2"])
113
- s.add_development_dependency(%q<rspec>, ["~> 1.3.2"])
114
- else
115
- s.add_dependency(%q<bcrypt-ruby>, ["~> 3.0.0"])
116
- s.add_dependency(%q<dm-core>, ["~> 1.2.0"])
117
- s.add_dependency(%q<fastercsv>, ["~> 1.5.4"])
118
- s.add_dependency(%q<multi_json>, ["~> 1.0.3"])
119
- s.add_dependency(%q<json>, ["~> 1.6.1"])
120
- s.add_dependency(%q<stringex>, ["~> 1.3.0"])
121
- s.add_dependency(%q<uuidtools>, ["~> 2.1.2"])
122
- s.add_dependency(%q<dm-validations>, ["~> 1.2.0"])
123
- s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
124
- s.add_dependency(%q<rake>, ["~> 0.9.2"])
125
- s.add_dependency(%q<rspec>, ["~> 1.3.2"])
126
- end
127
- else
128
- s.add_dependency(%q<bcrypt-ruby>, ["~> 3.0.0"])
129
- s.add_dependency(%q<dm-core>, ["~> 1.2.0"])
130
- s.add_dependency(%q<fastercsv>, ["~> 1.5.4"])
131
- s.add_dependency(%q<multi_json>, ["~> 1.0.3"])
132
- s.add_dependency(%q<json>, ["~> 1.6.1"])
133
- s.add_dependency(%q<stringex>, ["~> 1.3.0"])
134
- s.add_dependency(%q<uuidtools>, ["~> 2.1.2"])
135
- s.add_dependency(%q<dm-validations>, ["~> 1.2.0"])
136
- s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
137
- s.add_dependency(%q<rake>, ["~> 0.9.2"])
138
- s.add_dependency(%q<rspec>, ["~> 1.3.2"])
139
- end
140
- end
18
+ gem.add_runtime_dependency('bcrypt-ruby', '~> 3.0')
19
+ gem.add_runtime_dependency('fastercsv', '~> 1.5')
20
+ gem.add_runtime_dependency('multi_json', '~> 1.0')
21
+ gem.add_runtime_dependency('json', '~> 1.6')
22
+ gem.add_runtime_dependency('stringex', '~> 1.4')
23
+ gem.add_runtime_dependency('uuidtools', '~> 2.1')
24
+ gem.add_runtime_dependency('dm-core', '~> 1.2.0')
141
25
 
26
+ gem.add_development_dependency('rake', '~> 0.9')
27
+ gem.add_development_dependency('rspec', '~> 1.3')
28
+ end
@@ -4,6 +4,7 @@ require 'dm-types/support/flags'
4
4
  module DataMapper
5
5
  class Property
6
6
  class Enum < Integer
7
+ min 1
7
8
 
8
9
  include Flags
9
10
 
@@ -12,13 +13,15 @@ module DataMapper
12
13
 
13
14
  flags = options.fetch(:flags, self.class.flags)
14
15
  flags.each_with_index do |flag, i|
15
- @flag_map[i + 1] = flag
16
+ @flag_map[i.succ] = flag
16
17
  end
17
18
 
18
19
  if self.class.accepted_options.include?(:set) && !options.include?(:set)
19
20
  options[:set] = @flag_map.values_at(*@flag_map.keys.sort)
20
21
  end
21
22
 
23
+ options[:max] = @flag_map.size
24
+
22
25
  super
23
26
  end
24
27
 
metadata CHANGED
@@ -1,213 +1,129 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: dm-types
3
- version: !ruby/object:Gem::Version
4
- hash: 29
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.2.2
5
5
  prerelease:
6
- segments:
7
- - 1
8
- - 2
9
- - 1
10
- version: 1.2.1
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Dan Kubb
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2011-10-24 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
12
+ date: 2012-08-02 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
21
15
  name: bcrypt-ruby
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: &70240922907680 !ruby/object:Gem::Requirement
24
17
  none: false
25
- requirements:
18
+ requirements:
26
19
  - - ~>
27
- - !ruby/object:Gem::Version
28
- hash: 7
29
- segments:
30
- - 3
31
- - 0
32
- - 0
33
- version: 3.0.0
20
+ - !ruby/object:Gem::Version
21
+ version: '3.0'
34
22
  type: :runtime
35
- version_requirements: *id001
36
- - !ruby/object:Gem::Dependency
37
- name: dm-core
38
23
  prerelease: false
39
- requirement: &id002 !ruby/object:Gem::Requirement
40
- none: false
41
- requirements:
42
- - - ~>
43
- - !ruby/object:Gem::Version
44
- hash: 31
45
- segments:
46
- - 1
47
- - 2
48
- - 0
49
- version: 1.2.0
50
- type: :runtime
51
- version_requirements: *id002
52
- - !ruby/object:Gem::Dependency
24
+ version_requirements: *70240922907680
25
+ - !ruby/object:Gem::Dependency
53
26
  name: fastercsv
54
- prerelease: false
55
- requirement: &id003 !ruby/object:Gem::Requirement
27
+ requirement: &70240922904360 !ruby/object:Gem::Requirement
56
28
  none: false
57
- requirements:
29
+ requirements:
58
30
  - - ~>
59
- - !ruby/object:Gem::Version
60
- hash: 11
61
- segments:
62
- - 1
63
- - 5
64
- - 4
65
- version: 1.5.4
31
+ - !ruby/object:Gem::Version
32
+ version: '1.5'
66
33
  type: :runtime
67
- version_requirements: *id003
68
- - !ruby/object:Gem::Dependency
69
- name: multi_json
70
34
  prerelease: false
71
- requirement: &id004 !ruby/object:Gem::Requirement
35
+ version_requirements: *70240922904360
36
+ - !ruby/object:Gem::Dependency
37
+ name: multi_json
38
+ requirement: &70240922899540 !ruby/object:Gem::Requirement
72
39
  none: false
73
- requirements:
40
+ requirements:
74
41
  - - ~>
75
- - !ruby/object:Gem::Version
76
- hash: 17
77
- segments:
78
- - 1
79
- - 0
80
- - 3
81
- version: 1.0.3
42
+ - !ruby/object:Gem::Version
43
+ version: '1.0'
82
44
  type: :runtime
83
- version_requirements: *id004
84
- - !ruby/object:Gem::Dependency
85
- name: json
86
45
  prerelease: false
87
- requirement: &id005 !ruby/object:Gem::Requirement
46
+ version_requirements: *70240922899540
47
+ - !ruby/object:Gem::Dependency
48
+ name: json
49
+ requirement: &70240922895560 !ruby/object:Gem::Requirement
88
50
  none: false
89
- requirements:
51
+ requirements:
90
52
  - - ~>
91
- - !ruby/object:Gem::Version
92
- hash: 13
93
- segments:
94
- - 1
95
- - 6
96
- - 1
97
- version: 1.6.1
53
+ - !ruby/object:Gem::Version
54
+ version: '1.6'
98
55
  type: :runtime
99
- version_requirements: *id005
100
- - !ruby/object:Gem::Dependency
101
- name: stringex
102
56
  prerelease: false
103
- requirement: &id006 !ruby/object:Gem::Requirement
57
+ version_requirements: *70240922895560
58
+ - !ruby/object:Gem::Dependency
59
+ name: stringex
60
+ requirement: &70240922893660 !ruby/object:Gem::Requirement
104
61
  none: false
105
- requirements:
62
+ requirements:
106
63
  - - ~>
107
- - !ruby/object:Gem::Version
108
- hash: 27
109
- segments:
110
- - 1
111
- - 3
112
- - 0
113
- version: 1.3.0
64
+ - !ruby/object:Gem::Version
65
+ version: '1.4'
114
66
  type: :runtime
115
- version_requirements: *id006
116
- - !ruby/object:Gem::Dependency
117
- name: uuidtools
118
67
  prerelease: false
119
- requirement: &id007 !ruby/object:Gem::Requirement
68
+ version_requirements: *70240922893660
69
+ - !ruby/object:Gem::Dependency
70
+ name: uuidtools
71
+ requirement: &70240922890680 !ruby/object:Gem::Requirement
120
72
  none: false
121
- requirements:
73
+ requirements:
122
74
  - - ~>
123
- - !ruby/object:Gem::Version
124
- hash: 15
125
- segments:
126
- - 2
127
- - 1
128
- - 2
129
- version: 2.1.2
75
+ - !ruby/object:Gem::Version
76
+ version: '2.1'
130
77
  type: :runtime
131
- version_requirements: *id007
132
- - !ruby/object:Gem::Dependency
133
- name: dm-validations
134
78
  prerelease: false
135
- requirement: &id008 !ruby/object:Gem::Requirement
79
+ version_requirements: *70240922890680
80
+ - !ruby/object:Gem::Dependency
81
+ name: dm-core
82
+ requirement: &70240922889520 !ruby/object:Gem::Requirement
136
83
  none: false
137
- requirements:
84
+ requirements:
138
85
  - - ~>
139
- - !ruby/object:Gem::Version
140
- hash: 31
141
- segments:
142
- - 1
143
- - 2
144
- - 0
86
+ - !ruby/object:Gem::Version
145
87
  version: 1.2.0
146
- type: :development
147
- version_requirements: *id008
148
- - !ruby/object:Gem::Dependency
149
- name: jeweler
88
+ type: :runtime
150
89
  prerelease: false
151
- requirement: &id009 !ruby/object:Gem::Requirement
152
- none: false
153
- requirements:
154
- - - ~>
155
- - !ruby/object:Gem::Version
156
- hash: 7
157
- segments:
158
- - 1
159
- - 6
160
- - 4
161
- version: 1.6.4
162
- type: :development
163
- version_requirements: *id009
164
- - !ruby/object:Gem::Dependency
90
+ version_requirements: *70240922889520
91
+ - !ruby/object:Gem::Dependency
165
92
  name: rake
166
- prerelease: false
167
- requirement: &id010 !ruby/object:Gem::Requirement
93
+ requirement: &70240922888240 !ruby/object:Gem::Requirement
168
94
  none: false
169
- requirements:
95
+ requirements:
170
96
  - - ~>
171
- - !ruby/object:Gem::Version
172
- hash: 63
173
- segments:
174
- - 0
175
- - 9
176
- - 2
177
- version: 0.9.2
97
+ - !ruby/object:Gem::Version
98
+ version: '0.9'
178
99
  type: :development
179
- version_requirements: *id010
180
- - !ruby/object:Gem::Dependency
181
- name: rspec
182
100
  prerelease: false
183
- requirement: &id011 !ruby/object:Gem::Requirement
101
+ version_requirements: *70240922888240
102
+ - !ruby/object:Gem::Dependency
103
+ name: rspec
104
+ requirement: &70240922886840 !ruby/object:Gem::Requirement
184
105
  none: false
185
- requirements:
106
+ requirements:
186
107
  - - ~>
187
- - !ruby/object:Gem::Version
188
- hash: 31
189
- segments:
190
- - 1
191
- - 3
192
- - 2
193
- version: 1.3.2
108
+ - !ruby/object:Gem::Version
109
+ version: '1.3'
194
110
  type: :development
195
- version_requirements: *id011
111
+ prerelease: false
112
+ version_requirements: *70240922886840
196
113
  description: DataMapper plugin providing extra data types
197
- email: dan.kubb [a] gmail [d] com
114
+ email:
115
+ - dan.kubb@gmail.com
198
116
  executables: []
199
-
200
117
  extensions: []
201
-
202
- extra_rdoc_files:
118
+ extra_rdoc_files:
203
119
  - LICENSE
204
120
  - README.rdoc
205
- files:
121
+ files:
122
+ - .gitignore
206
123
  - Gemfile
207
124
  - LICENSE
208
125
  - README.rdoc
209
126
  - Rakefile
210
- - VERSION
211
127
  - dm-types.gemspec
212
128
  - lib/dm-types.rb
213
129
  - lib/dm-types/api_key.rb
@@ -275,38 +191,28 @@ files:
275
191
  - tasks/spec.rake
276
192
  - tasks/yard.rake
277
193
  - tasks/yardstick.rake
278
- homepage: http://github.com/datamapper/dm-types
194
+ homepage: http://datamapper.org
279
195
  licenses: []
280
-
281
196
  post_install_message:
282
197
  rdoc_options: []
283
-
284
- require_paths:
198
+ require_paths:
285
199
  - lib
286
- required_ruby_version: !ruby/object:Gem::Requirement
200
+ required_ruby_version: !ruby/object:Gem::Requirement
287
201
  none: false
288
- requirements:
289
- - - ">="
290
- - !ruby/object:Gem::Version
291
- hash: 3
292
- segments:
293
- - 0
294
- version: "0"
295
- required_rubygems_version: !ruby/object:Gem::Requirement
202
+ requirements:
203
+ - - ! '>='
204
+ - !ruby/object:Gem::Version
205
+ version: '0'
206
+ required_rubygems_version: !ruby/object:Gem::Requirement
296
207
  none: false
297
- requirements:
298
- - - ">="
299
- - !ruby/object:Gem::Version
300
- hash: 3
301
- segments:
302
- - 0
303
- version: "0"
208
+ requirements:
209
+ - - ! '>='
210
+ - !ruby/object:Gem::Version
211
+ version: '0'
304
212
  requirements: []
305
-
306
- rubyforge_project: datamapper
307
- rubygems_version: 1.8.11
213
+ rubyforge_project:
214
+ rubygems_version: 1.8.15
308
215
  signing_key:
309
216
  specification_version: 3
310
217
  summary: DataMapper plugin providing extra data types
311
218
  test_files: []
312
-
data/VERSION DELETED
@@ -1 +0,0 @@
1
- 1.2.1