fattr 2.3.0 → 2.4.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 57f2c500d8d74df7c52da2ccaafc869e1d45117f
4
+ data.tar.gz: cbdef0846e66ae8024f51be65a8d7eea06a02eab
5
+ SHA512:
6
+ metadata.gz: 3378a0d8d5d8219dae4f6943d69cfcf00d14fc5039b42d1236f0178ef79bf9a9c0afb084e02ca57212c43bfbee146663a95d90a11ab0e85e0dc2872c997db021
7
+ data.tar.gz: a0e6fbc36f5339bb2c2b3cd8c33e70a333f25ad36766fe18bdaece9abe2898ffee26fbd18a062804ddb97c3f6267da0b48416523cfa87166f774e06854b67e49
data/Rakefile CHANGED
@@ -4,7 +4,7 @@ This.email = "ara.t.howard@gmail.com"
4
4
  This.homepage = "https://github.com/ahoward/#{ This.lib }"
5
5
 
6
6
  task :license do
7
- open('LICENSE', 'w'){|fd| fd.puts "same as ruby's"}
7
+ open('LICENSE', 'w'){|fd| fd.puts "Ruby"}
8
8
  end
9
9
 
10
10
  task :default do
@@ -93,7 +93,7 @@ task :gemspec do
93
93
  test_files = "test/#{ lib }.rb" if File.file?("test/#{ lib }.rb")
94
94
  summary = object.respond_to?(:summary) ? object.summary : "summary: #{ lib } kicks the ass"
95
95
  description = object.respond_to?(:description) ? object.description : "description: #{ lib } kicks the ass"
96
- license = object.respond_to?(:license) ? object.license : "same as ruby's"
96
+ license = object.respond_to?(:license) ? object.license : "Ruby"
97
97
 
98
98
  if This.extensions.nil?
99
99
  This.extensions = []
@@ -104,39 +104,51 @@ task :gemspec do
104
104
  end
105
105
  extensions = [extensions].flatten.compact
106
106
 
107
+ if This.dependencies.nil?
108
+ dependencies = []
109
+ else
110
+ case This.dependencies
111
+ when Hash
112
+ dependencies = This.dependencies.values
113
+ when Array
114
+ dependencies = This.dependencies
115
+ end
116
+ end
117
+
107
118
  template =
108
119
  if test(?e, 'gemspec.erb')
109
120
  Template{ IO.read('gemspec.erb') }
110
121
  else
111
122
  Template {
112
123
  <<-__
113
- ## #{ lib }.gemspec
124
+ ## <%= lib %>.gemspec
114
125
  #
115
126
 
116
127
  Gem::Specification::new do |spec|
117
- spec.name = #{ lib.inspect }
118
- spec.version = #{ version.inspect }
128
+ spec.name = <%= lib.inspect %>
129
+ spec.version = <%= version.inspect %>
119
130
  spec.platform = Gem::Platform::RUBY
120
- spec.summary = #{ lib.inspect }
121
- spec.description = #{ description.inspect }
122
- spec.license = #{ license.inspect }
131
+ spec.summary = <%= lib.inspect %>
132
+ spec.description = <%= description.inspect %>
133
+ spec.license = <%= license.inspect %>
123
134
 
124
- spec.files =\n#{ files.sort.pretty_inspect }
125
- spec.executables = #{ executables.inspect }
135
+ spec.files =\n<%= files.sort.pretty_inspect %>
136
+ spec.executables = <%= executables.inspect %>
126
137
 
127
138
  spec.require_path = "lib"
128
139
 
129
- spec.test_files = #{ test_files.inspect }
140
+ spec.test_files = <%= test_files.inspect %>
130
141
 
131
- ### spec.add_dependency 'lib', '>= version'
132
- #### spec.add_dependency 'map'
142
+ <% dependencies.each do |lib_version| %>
143
+ spec.add_dependency(*<%= Array(lib_version).flatten.inspect %>)
144
+ <% end %>
133
145
 
134
- spec.extensions.push(*#{ extensions.inspect })
146
+ spec.extensions.push(*<%= extensions.inspect %>)
135
147
 
136
- spec.rubyforge_project = #{ This.rubyforge_project.inspect }
137
- spec.author = #{ This.author.inspect }
138
- spec.email = #{ This.email.inspect }
139
- spec.homepage = #{ This.homepage.inspect }
148
+ spec.rubyforge_project = <%= This.rubyforge_project.inspect %>
149
+ spec.author = <%= This.author.inspect %>
150
+ spec.email = <%= This.email.inspect %>
151
+ spec.homepage = <%= This.homepage.inspect %>
140
152
  end
141
153
  __
142
154
  }
@@ -249,28 +261,35 @@ BEGIN {
249
261
  #
250
262
  This = OpenStruct.new
251
263
 
252
- This.file = File.expand_path(__FILE__)
253
- This.dir = File.dirname(This.file)
264
+ This.file = File.expand_path(__FILE__)
265
+ This.dir = File.dirname(This.file)
254
266
  This.pkgdir = File.join(This.dir, 'pkg')
255
267
 
256
- # grok lib
268
+ This.lib = File.basename(Dir.pwd)
269
+ This._lib = "#{ This.dir }/lib/#{ This.lib }/_lib.rb"
270
+
271
+ # load meta lib info
257
272
  #
258
- lib = ENV['LIB']
259
- unless lib
260
- lib = File.basename(Dir.pwd).sub(/[-].*$/, '')
273
+ a = Object.constants.dup
274
+ require This._lib
275
+ b = Object.constants.dup
276
+ added = b - a
277
+ const = added.first
278
+
279
+ if added.size > 1
280
+ STDERR.puts "WARNING: defined multiple constants #{ added.inspect } in #{ _lib }, using #{ const } !!!"
261
281
  end
262
- This.lib = lib
263
282
 
264
- # grok version
283
+ This.const = const
284
+ This.object = Object.const_get(This.const)
285
+ This.name = This.object.name
286
+ This.version = This.object.send(:version)
287
+
288
+ # see if dependencies are export by the module
265
289
  #
266
- version = ENV['VERSION']
267
- unless version
268
- require "./lib/#{ This.lib }"
269
- This.name = lib.capitalize
270
- This.object = eval(This.name)
271
- version = This.object.send(:version)
290
+ if This.object.respond_to?(:dependencies)
291
+ This.dependencies = This.object.dependencies
272
292
  end
273
- This.version = version
274
293
 
275
294
  # we need to know the name of the lib an it's version
276
295
  #
@@ -279,12 +298,12 @@ BEGIN {
279
298
 
280
299
  # discover full path to this ruby executable
281
300
  #
282
- c = Config::CONFIG
283
- bindir = c["bindir"] || c['BINDIR']
301
+ c = RbConfig::CONFIG
302
+ bindir = c["bindir"] || c['BINDIR']
284
303
  ruby_install_name = c['ruby_install_name'] || c['RUBY_INSTALL_NAME'] || 'ruby'
285
- ruby_ext = c['EXEEXT'] || ''
286
- ruby = File.join(bindir, (ruby_install_name + ruby_ext))
287
- This.ruby = ruby
304
+ ruby_ext = c['EXEEXT'] || ''
305
+ ruby = File.join(bindir, (ruby_install_name + ruby_ext))
306
+ This.ruby = ruby
288
307
 
289
308
  # some utils
290
309
  #
@@ -3,11 +3,11 @@
3
3
 
4
4
  Gem::Specification::new do |spec|
5
5
  spec.name = "fattr"
6
- spec.version = "2.3.0"
6
+ spec.version = "2.4.0"
7
7
  spec.platform = Gem::Platform::RUBY
8
8
  spec.summary = "fattr"
9
9
  spec.description = "a \"fatter attr\" for ruby"
10
- spec.license = "same as ruby's"
10
+ spec.license = "Ruby"
11
11
 
12
12
  spec.files =
13
13
  ["LICENSE",
@@ -16,7 +16,10 @@ Gem::Specification::new do |spec|
16
16
  "Rakefile",
17
17
  "fattr.gemspec",
18
18
  "lib",
19
+ "lib/fattr",
19
20
  "lib/fattr.rb",
21
+ "lib/fattr/_lib.rb",
22
+ "lib/fattr/version.rb",
20
23
  "samples",
21
24
  "samples/a.rb",
22
25
  "samples/b.rb",
@@ -36,8 +39,7 @@ Gem::Specification::new do |spec|
36
39
 
37
40
  spec.test_files = nil
38
41
 
39
- ### spec.add_dependency 'lib', '>= version'
40
- #### spec.add_dependency 'map'
42
+
41
43
 
42
44
  spec.extensions.push(*[])
43
45
 
@@ -1,10 +1,7 @@
1
1
  module Fattr
2
- Fattr::Version = '2.3.0' unless Fattr.const_defined?(:Version)
3
- def Fattr.version() Fattr::Version end
2
+ require_relative 'fattr/_lib.rb'
4
3
 
5
- def Fattr.description
6
- 'a "fatter attr" for ruby'
7
- end
4
+ SEMAPHORE = Mutex.new
8
5
 
9
6
  class List < ::Array
10
7
  attr_accessor :object
@@ -88,21 +85,21 @@ module Fattr
88
85
  end
89
86
  end
90
87
 
91
- initializers = __fattrs__.initializers
88
+ #initializers = __fattrs__.initializers
92
89
 
93
- names_and_configs.each do |name, config|
90
+ names_and_configs.each do |name, _config|
94
91
  raise(NameError, "bad instance variable name '@#{ name }'") if("@#{ name }" =~ %r/[!?=]$/o)
95
92
 
96
93
  name = name.to_s
97
94
 
98
95
  default = nil
99
- default = config[:default] if config.has_key?(:default)
100
- default = config['default'] if config.has_key?('default')
96
+ default = _config[:default] if _config.has_key?(:default)
97
+ default = _config['default'] if _config.has_key?('default')
101
98
 
102
99
  inheritable = false
103
100
  if Module===self
104
- inheritable = config[:inheritable] if config.has_key?(:inheritable)
105
- inheritable = config['inheritable'] if config.has_key?('inheritable')
101
+ inheritable = _config[:inheritable] if _config.has_key?(:inheritable)
102
+ inheritable = _config['inheritable'] if _config.has_key?('inheritable')
106
103
  end
107
104
 
108
105
  initialize = (
@@ -125,7 +122,7 @@ module Fattr
125
122
  Object.instance_method('instance_eval').bind(this).call(&initialize)
126
123
  end
127
124
 
128
- initializer_id = initializer.object_id
125
+ #initializer_id = initializer.object_id
129
126
 
130
127
  __fattrs__.initializers[name] = initializer
131
128
 
@@ -151,6 +148,7 @@ module Fattr
151
148
  def #{ name }(*value, &block)
152
149
  value.unshift block if block
153
150
  return self.send('#{ name }=', value.first) unless value.empty?
151
+ #SEMAPHORE.synchronize{ #{ name }! unless defined? @#{ name } }
154
152
  #{ name }! unless defined? @#{ name }
155
153
  @#{ name }
156
154
  end
@@ -0,0 +1,9 @@
1
+ module Fattr
2
+ Fattr::Version = '2.4.0' unless Fattr.const_defined?(:Version)
3
+
4
+ def Fattr.version() Fattr::Version end
5
+
6
+ def Fattr.description
7
+ 'a "fatter attr" for ruby'
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ module Fattr
2
+ Fattr::Version = '2.3.0' unless Fattr.const_defined?(:Version)
3
+
4
+ def Fattr.version() Fattr::Version end
5
+
6
+ def Fattr.description
7
+ 'a "fatter attr" for ruby'
8
+ end
9
+ end
@@ -157,7 +157,7 @@ BEGIN {
157
157
 
158
158
  def self.testing(*args, &block)
159
159
  method = ["test", testno, slug_for(*args)].delete_if{|part| part.empty?}.join('_')
160
- define_method("test_#{ testno }_#{ slug_for(*args) }", &block)
160
+ define_method(method, &block)
161
161
  end
162
162
 
163
163
  alias_method '__assert__', 'assert'
@@ -177,7 +177,7 @@ BEGIN {
177
177
  end
178
178
  end
179
179
 
180
- module_eval &block
180
+ module_eval(&block)
181
181
  self
182
182
  end
183
183
  end
metadata CHANGED
@@ -1,15 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fattr
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.0
5
- prerelease:
4
+ version: 2.4.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Ara T. Howard
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2016-03-29 00:00:00.000000000 Z
11
+ date: 2018-03-02 00:00:00.000000000 Z
13
12
  dependencies: []
14
13
  description: a "fatter attr" for ruby
15
14
  email: ara.t.howard@gmail.com
@@ -23,6 +22,8 @@ files:
23
22
  - Rakefile
24
23
  - fattr.gemspec
25
24
  - lib/fattr.rb
25
+ - lib/fattr/_lib.rb
26
+ - lib/fattr/version.rb
26
27
  - samples/a.rb
27
28
  - samples/b.rb
28
29
  - samples/c.rb
@@ -35,28 +36,27 @@ files:
35
36
  - test/fattr_test.rb
36
37
  homepage: https://github.com/ahoward/fattr
37
38
  licenses:
38
- - same as ruby's
39
+ - Ruby
40
+ metadata: {}
39
41
  post_install_message:
40
42
  rdoc_options: []
41
43
  require_paths:
42
44
  - lib
43
45
  required_ruby_version: !ruby/object:Gem::Requirement
44
- none: false
45
46
  requirements:
46
- - - ! '>='
47
+ - - ">="
47
48
  - !ruby/object:Gem::Version
48
49
  version: '0'
49
50
  required_rubygems_version: !ruby/object:Gem::Requirement
50
- none: false
51
51
  requirements:
52
- - - ! '>='
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  requirements: []
56
56
  rubyforge_project: codeforpeople
57
- rubygems_version: 1.8.23.2
57
+ rubygems_version: 2.6.8
58
58
  signing_key:
59
- specification_version: 3
59
+ specification_version: 4
60
60
  summary: fattr
61
61
  test_files: []
62
62
  has_rdoc: