development 1.0.5 → 1.0.6

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.
data/CHANGELOG.md CHANGED
@@ -7,4 +7,4 @@ Update for preventing multiple-load.
7
7
  Oops! Configuration-file enabling was commented out. So 1.0.3 is the first working version!
8
8
  ... And then left comments in.
9
9
  Fix for enabling by gemset.
10
-
10
+ Directories can now specify either the directory the gem directory is in or the gem directory itself.
data/lib/development.rb CHANGED
@@ -894,32 +894,45 @@ module ::Development
894
894
  # ensure we have 'gem-subname' rather than 'gem/subname'
895
895
  # we really just need one or the other consistently
896
896
  gem_directory_name = gem_name.gsub( '/', '-' )
897
-
897
+
898
898
  # look for gem name in enabled gems/gemsets
899
899
  if @enabled_gems.include?( gem_name.to_sym ) or
900
900
  @enable_for_all && ! @disabled_gems.include?( gem_name.to_sym )
901
901
 
902
- if directory_name = @gem_locations[ gem_name.to_sym ] and
903
- load_path = directory( directory_name ) and
904
- gem_name_at_load_path?( load_path, gem_directory_name, true )
902
+ if directory_name = @gem_locations[ gem_name.to_sym ]
903
+
904
+ load_path = directory( directory_name )
905
+
906
+ if gem_name_in_load_path?( load_path, gem_directory_name )
907
+
908
+ load_gem_in_path( load_path, gem_directory_name )
909
+ @loaded_gems.push( gem_name.to_sym )
910
+ did_load = true
905
911
 
906
- load_gem_from_path( load_path, gem_directory_name )
907
- @loaded_gems.push( gem_name.to_sym )
908
- did_load = true
912
+ elsif gem_name_at_load_path?( load_path, gem_directory_name )
913
+
914
+ load_gem_at_path( load_path, gem_directory_name )
915
+ @loaded_gems.push( gem_name.to_sym )
916
+ did_load = true
917
+
918
+ end
919
+
920
+ end
921
+
922
+ unless did_load
909
923
 
910
- else
911
924
  # look in each path for gem - use first to match
912
925
  @general_load_paths.each do |this_load_path|
913
926
 
914
927
  # look for gem name at load path
915
928
  if gem_name_at_load_path?( this_load_path, gem_name )
916
- load_gem_from_path( this_load_path, gem_name )
929
+ load_gem_at_path( this_load_path, gem_name )
917
930
  @loaded_gems.push( gem_name.to_sym )
918
931
  did_load = true
919
932
  end
920
933
 
921
934
  end
922
-
935
+
923
936
  end
924
937
 
925
938
  end
@@ -932,12 +945,47 @@ module ::Development
932
945
 
933
946
  end
934
947
 
948
+ #################################
949
+ # self.gem_name_in_load_path? #
950
+ #################################
951
+
952
+ ###
953
+ # Query whether gem name is present in load path, meaning load path specifies the gem directory.
954
+ #
955
+ # @param load_path
956
+ #
957
+ # Path where gem directory might be located.
958
+ #
959
+ # @param gem_directory_name
960
+ #
961
+ # Name of gem. Assumes gem-subname is used rather than gem/subname.
962
+ #
963
+ # @return [true,false] Whether gem name is present.
964
+ #
965
+ def self.gem_name_in_load_path?( gem_path, gem_directory_name, require_gem_at_path = false )
966
+
967
+ exists_at_load_path = false
968
+
969
+ gem_name = gem_directory_name.gsub( '-', '/' )
970
+
971
+ gem_require_file = ::File.join( gem_path, 'lib', gem_name ) + '.rb'
972
+
973
+ if ::File.exist?( ::File.expand_path( gem_require_file ) )
974
+
975
+ exists_at_load_path = true
976
+
977
+ end
978
+
979
+ return exists_at_load_path
980
+
981
+ end
982
+
935
983
  #################################
936
984
  # self.gem_name_at_load_path? #
937
985
  #################################
938
986
 
939
987
  ###
940
- # Query whether gem name is present at load path.
988
+ # Query whether gem name is present at load path, meaning load path specifies the directory holding gem directory.
941
989
  #
942
990
  # @param load_path
943
991
  #
@@ -968,13 +1016,39 @@ module ::Development
968
1016
  return exists_at_load_path
969
1017
 
970
1018
  end
1019
+
1020
+ ###########################
1021
+ # self.load_gem_in_path #
1022
+ ###########################
971
1023
 
972
- #############################
973
- # self.load_gem_from_path #
974
- #############################
1024
+ ###
1025
+ # Load gem from gem directory path. Assumes gem is present in path.
1026
+ #
1027
+ # @param load_path
1028
+ #
1029
+ # Path where gem directory might be located.
1030
+ #
1031
+ # @param gem_directory_name
1032
+ #
1033
+ # Name of gem. Assumes gem-subname is used rather than gem/subname.
1034
+ #
1035
+ # @return [true,false] Whether gem name is present.
1036
+ #
1037
+ def self.load_gem_in_path( gem_path, gem_directory_name )
1038
+
1039
+ gem_name = gem_directory_name.gsub( '-', '/' )
1040
+
1041
+ gem_require_file = ::File.join( gem_path, 'lib', gem_name ) + '.rb'
1042
+ require_relative( ::File.expand_path( gem_require_file ) )
1043
+
1044
+ end
1045
+
1046
+ ###########################
1047
+ # self.load_gem_at_path #
1048
+ ###########################
975
1049
 
976
1050
  ###
977
- # Load gem from gem path. Assumes gem is present at path.
1051
+ # Load gem from path to directory holding gem directory. Assumes gem is present at path.
978
1052
  #
979
1053
  # @param load_path
980
1054
  #
@@ -986,7 +1060,7 @@ module ::Development
986
1060
  #
987
1061
  # @return [true,false] Whether gem name is present.
988
1062
  #
989
- def self.load_gem_from_path( load_path, gem_directory_name )
1063
+ def self.load_gem_at_path( load_path, gem_directory_name )
990
1064
 
991
1065
  gem_name = gem_directory_name.gsub( '-', '/' )
992
1066
  gem_path = ::File.join( load_path, gem_directory_name )
@@ -23,7 +23,7 @@ module ::Development::Require
23
23
  def require( gem_name_or_path )
24
24
 
25
25
  did_load = ::Development.require( gem_name_or_path )
26
-
26
+
27
27
  if did_load.nil?
28
28
  did_load = super
29
29
  end
@@ -221,30 +221,55 @@ describe ::Development do
221
221
 
222
222
  end
223
223
 
224
+ #################################
225
+ # self.gem_name_in_load_path? #
226
+ #################################
227
+
228
+ it 'can find a gem name in a load path, meaning load path specifies the gem directory' do
229
+ ::Development.gem_name_in_load_path?( 'spec/mock_gem', 'mock_gem' ).should == true
230
+ ::Development.gem_name_in_load_path?( 'spec/mock_gem-subgem', 'mock_gem-subgem' ).should == true
231
+ end
232
+
224
233
  #################################
225
234
  # self.gem_name_at_load_path? #
226
235
  #################################
227
236
 
228
- it 'can find a gem name at a load path' do
237
+ it 'can find a gem name at a load path, meaning load path specifies the directory holding gem directory' do
229
238
  ::Development.gem_name_at_load_path?( 'spec', 'mock_gem' ).should == true
230
239
  ::Development.gem_name_at_load_path?( 'spec', 'mock_gem-subgem' ).should == true
231
240
  end
232
241
 
233
- #############################
234
- # self.load_gem_from_path #
235
- #############################
242
+ ###########################
243
+ # self.load_gem_in_path #
244
+ ###########################
236
245
 
237
246
  it 'can load a gem from a development path' do
238
247
 
239
248
  defined?( ::Development::MockGem ).should == nil
240
- ::Development.load_gem_from_path( 'spec', 'mock_gem' )
249
+ ::Development.load_gem_in_path( 'spec/mock_gem', 'mock_gem' )
241
250
  defined?( ::Development::MockGem ).should == 'constant'
242
251
 
243
252
  defined?( ::Development::MockGem::Subgem ).should == nil
244
- ::Development.load_gem_from_path( 'spec', 'mock_gem-subgem' )
253
+ ::Development.load_gem_in_path( 'spec/mock_gem-subgem', 'mock_gem-subgem' )
245
254
  defined?( ::Development::MockGem::Subgem ).should == 'constant'
246
255
 
247
256
  end
257
+
258
+ ###########################
259
+ # self.load_gem_at_path #
260
+ ###########################
261
+
262
+ it 'can load a gem from a development path' do
263
+
264
+ defined?( ::Development::MockGem2 ).should == nil
265
+ ::Development.load_gem_at_path( 'spec', 'mock_gem2' )
266
+ defined?( ::Development::MockGem2 ).should == 'constant'
267
+
268
+ defined?( ::Development::MockGem2::Subgem2 ).should == nil
269
+ ::Development.load_gem_at_path( 'spec', 'mock_gem-subgem2' )
270
+ defined?( ::Development::MockGem2::Subgem2 ).should == 'constant'
271
+
272
+ end
248
273
 
249
274
  ##################################
250
275
  # self.load_configuration_file #
@@ -277,7 +302,7 @@ describe ::Development do
277
302
  ####################
278
303
  # Object.require #
279
304
  ####################
280
-
305
+
281
306
  it 'hooks require for registered gems' do
282
307
 
283
308
  ::Development.parse_configuration_expression( '+directory_name ./spec' )
@@ -289,6 +314,18 @@ describe ::Development do
289
314
  defined?( ::Development::RequireMock ).should == 'constant'
290
315
 
291
316
  end
317
+
318
+ it 'hooks require for registered gems' do
319
+
320
+ ::Development.parse_configuration_expression( '+directory_name ./spec/require_mock2' )
321
+ ::Development.parse_configuration_expression( '@directory_name require_mock2' )
322
+ ::Development.parse_configuration_expression( '!enable require_mock2' )
323
+
324
+ defined?( ::Development::RequireMock2 ).should == nil
325
+ require 'require_mock2'
326
+ defined?( ::Development::RequireMock2 ).should == 'constant'
327
+
328
+ end
292
329
 
293
330
  it 'hooks require for enable-all' do
294
331
 
@@ -0,0 +1,4 @@
1
+
2
+ class ::Development::MockGem2::Subgem2
3
+
4
+ end
@@ -0,0 +1,4 @@
1
+
2
+ class ::Development::MockGem2
3
+
4
+ end
@@ -0,0 +1,4 @@
1
+
2
+ class ::Development::RequireMock2
3
+
4
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: development
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.5
4
+ version: 1.0.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -57,8 +57,11 @@ files:
57
57
  - spec/development_spec.rb
58
58
  - spec/mock_gem/lib/mock_gem.rb
59
59
  - spec/mock_gem-subgem/lib/mock_gem/subgem.rb
60
+ - spec/mock_gem-subgem2/lib/mock_gem/subgem2.rb
61
+ - spec/mock_gem2/lib/mock_gem2.rb
60
62
  - spec/other_require_mock/lib/other_require_mock.rb
61
63
  - spec/require_mock/lib/require_mock.rb
64
+ - spec/require_mock2/lib/require_mock2.rb
62
65
  - README.md
63
66
  - CHANGELOG.md
64
67
  homepage: http://rubygems.org/gems/development
@@ -72,7 +75,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
72
75
  requirements:
73
76
  - - ! '>='
74
77
  - !ruby/object:Gem::Version
75
- version: '0'
78
+ version: 1.9.1
76
79
  required_rubygems_version: !ruby/object:Gem::Requirement
77
80
  none: false
78
81
  requirements: