hotcocoa 0.6.0 → 0.6.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -27,7 +27,7 @@ class TestApplicationBuilder < TestApplicationModule
27
27
  refute_includes hotconsole.send(:deploy_options), '--compile'
28
28
  end
29
29
 
30
- def test_deploy_option_embed_bs
30
+ def test_deploy_option_embed_bridgesupport
31
31
  refute_includes stopwatch.send(:deploy_options), '--bs'
32
32
  assert_includes hotconsole.send(:deploy_options), '--bs'
33
33
  end
@@ -51,8 +51,7 @@ class TestApplicationBuilder < TestApplicationModule
51
51
 
52
52
  spec = hotconsole_spec.dup
53
53
  spec.icon = '/Applications/Calculator.app/Contents/Resources/Calculator.icns'
54
- plist = load_plist(Builder.new(spec).send(:info_plist))
55
- assert_includes plist, :CFBundleIconFile
54
+ assert_includes plist_for(spec), :CFBundleIconFile
56
55
  end
57
56
 
58
57
  def test_plist_hash_from_spec_overrides_all
@@ -61,7 +60,7 @@ class TestApplicationBuilder < TestApplicationModule
61
60
  spec.plist[:NSPrincipleClass] = 'Foo'
62
61
  spec.plist[:CFBundleName] = 'Cake'
63
62
 
64
- plist = load_plist(Builder.new(spec).send(:info_plist))
63
+ plist = plist_for(spec)
65
64
  assert_equal true, plist[:MyKey ]
66
65
  assert_equal 'Foo', plist[:NSPrincipleClass ]
67
66
  assert_equal 'Cake', plist[:CFBundleName ]
@@ -78,7 +77,21 @@ class TestApplicationBuilder < TestApplicationModule
78
77
  doc_type.class = "MyDocument"
79
78
  end
80
79
  end
81
- plist = load_plist(Builder.new(spec).send(:info_plist))
82
- assert_equal 1, plist[:CFBundleDocumentTypes].size
80
+ assert_equal 1, plist_for(spec)[:CFBundleDocumentTypes].size
81
+ end
82
+
83
+ def test_plist_short_string_generated_if_present
84
+ spec = minimal_spec {|s| s.short_version = "12345"}
85
+ assert_equal "12345", plist_for(spec)[:CFBundleShortVersionString]
86
+ end
87
+
88
+ def test_plist_copyright_generated_if_present
89
+ spec = minimal_spec {|s| s.copyright = "© 2011, Your Company"}
90
+ assert_equal "© 2011, Your Company", plist_for(spec)[:NSHumanReadableCopyright]
91
+ end
92
+
93
+ protected
94
+ def plist_for(spec)
95
+ load_plist(Builder.new(spec).send(:info_plist))
83
96
  end
84
97
  end
@@ -215,14 +215,19 @@ class TestApplicationSpecification < TestApplicationModule
215
215
  Gem::Dependency.new('Salut', '>= 0', '< 2.0.0', :runtime)
216
216
  end
217
217
 
218
- def test_embed_bs_has_a_default
218
+ def test_embed_bridgesupport_has_a_default
219
219
  spec = minimal_spec
220
- assert_equal false, spec.embed_bs?
221
- assert_equal false, spec.embed_bs
220
+ assert spec.embed_bridgesupport?
221
+ assert spec.embed_bridgesupport
222
222
 
223
- spec = minimal_spec { |s| s.embed_bs = true }
224
- assert_equal true, spec.embed_bs?
225
- assert_equal true, spec.embed_bs
223
+ spec = minimal_spec { |s| s.embed_bridgesupport = false }
224
+ refute spec.embed_bridgesupport?
225
+ refute spec.embed_bridgesupport
226
+ end
227
+
228
+ def test_there_exists_an_embed_bs_alias_so_that_old_specs_continue_working
229
+ spec = minimal_spec { |s| s.embed_bs = false }
230
+ refute spec.embed_bridgesupport?
226
231
  end
227
232
 
228
233
  def test_overwrite_attribute_is_false_by_default
@@ -10,19 +10,19 @@ class TestRangeToNSRange < MiniTest::Unit::TestCase
10
10
  @@array ||= (0..10).to_a
11
11
  end
12
12
 
13
- def run_test range, *arg
13
+ def range_test range, *arg
14
14
  assert_equal array.slice(range), array.subarrayWithRange(range.to_NSRange(*arg)), range
15
15
  end
16
16
 
17
17
  def test_cases
18
- run_test 0..10
19
- run_test 1..10
20
- run_test 2..-1, array.size
21
- run_test 3..-2, array.size
22
- run_test 4...-1, array.size
23
- run_test -3...-1, array.size
24
- run_test -5..-1, array.size
25
- # run_test -1..-2, array.size # returns an empty array, is a fucked up case to begin with
18
+ range_test 0..10
19
+ range_test 1..10
20
+ range_test 2..-1, array.size
21
+ range_test 3..-2, array.size
22
+ range_test 4...-1, array.size
23
+ range_test -3...-1, array.size
24
+ range_test -5..-1, array.size
25
+ # range_test -1..-2, array.size # returns an empty array, is a fucked up case to begin with
26
26
  end
27
27
 
28
28
  end
@@ -0,0 +1,64 @@
1
+ require 'hotcocoa/delegate_builder'
2
+
3
+ class TestControl
4
+ attr_accessor :delegate
5
+ end
6
+
7
+ class TestDelegateBuilder < MiniTest::Unit::TestCase
8
+ def test_that_delegate_is_set_on_control
9
+ control = TestControl.new
10
+ proc = Proc.new { true }
11
+ delegate_builder = HotCocoa::DelegateBuilder.new(control, [])
12
+ delegate_builder.add_delegated_method(proc, "abc")
13
+
14
+ assert_equal delegate_builder.delegate, control.delegate
15
+ assert control.delegate.respond_to?(:abc)
16
+ end
17
+ end
18
+
19
+ class TestDelegateMethodBuilder < MiniTest::Unit::TestCase
20
+ def setup
21
+ @target = Object.new
22
+ end
23
+
24
+ def test_that_delegate_implements_delegate_method_with_string_parameters
25
+ proc = Proc.new {|param1, param2| param1.even? ? param1 : param2 }
26
+ delegate_builder = HotCocoa::DelegateMethodBuilder.new(@target)
27
+ delegate_builder.add_delegated_method(proc, "abc:param1:param2:", "param1", "param2")
28
+
29
+ assert_equal 2, @target.abc(nil, param1: 2, param2: 0)
30
+ assert_equal 0, @target.abc(nil, param1: 1, param2: 0)
31
+ end
32
+
33
+ def test_that_delegate_implements_delegate_method_with_symbol_parameters
34
+ proc = Proc.new {|param1, param2| param1.even? ? param1 : param2 }
35
+ delegate_builder = HotCocoa::DelegateMethodBuilder.new(@target)
36
+ delegate_builder.add_delegated_method(proc, "abc:param1:param2:", :param1, :param2)
37
+
38
+ assert_equal 2, @target.abc(nil, param1: 2, param2: 0)
39
+ assert_equal 0, @target.abc(nil, param1: 1, param2: 0)
40
+ end
41
+
42
+ def test_that_trying_to_define_delegate_method_with_invalid_parameters_yields_a_sensible_error
43
+ begin
44
+ HotCocoa::DelegateMethodBuilder.new(@target).add_delegated_method(nil, "abc:param1:param2:", :another_param)
45
+ rescue RuntimeError => e
46
+ assert_match /'another_param' is not a valid parameter of method 'abc:param1:param2:'/, e.message
47
+ return
48
+ end
49
+ flunk "no error thrown!"
50
+ end
51
+
52
+ def test_parameterize_selector_name
53
+ delegate_builder = HotCocoa::DelegateMethodBuilder.new(nil)
54
+ assert_equal "myDelegateMethod", delegate_builder.parameterize_selector_name("myDelegateMethod")
55
+ assert_equal "myDelegateMethod p1,withArgument:p2", delegate_builder.parameterize_selector_name("myDelegateMethod:withArgument:")
56
+ end
57
+
58
+ def test_parameter_values_for_mapping
59
+ delegate_builder = HotCocoa::DelegateMethodBuilder.new(nil)
60
+ assert delegate_builder.parameter_values_for_mapping("myDelegateMethod", []).nil?
61
+ assert_equal "p2, p3", delegate_builder.parameter_values_for_mapping("myDelegateMethod:p1:p2:", ["p1", "p2"])
62
+ assert_equal "p1.userInfo['NSExposedRect']", delegate_builder.parameter_values_for_mapping("windowDidExpose:", ["windowDidExpose.userInfo['NSExposedRect']"])
63
+ end
64
+ end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: hotcocoa
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.6.0
5
+ version: 0.6.1
6
6
  platform: ruby
7
7
  authors:
8
8
  - Richard Kilmer
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2011-10-14 00:00:00 -04:00
13
+ date: 2011-12-04 00:00:00 -05:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -21,14 +21,14 @@ dependencies:
21
21
  requirements:
22
22
  - - ~>
23
23
  - !ruby/object:Gem::Version
24
- version: "2.5"
24
+ version: "2.8"
25
25
  type: :development
26
26
  version_requirements: !ruby/object:Gem::Requirement
27
27
  none: false
28
28
  requirements:
29
29
  - - ~>
30
30
  - !ruby/object:Gem::Version
31
- version: "2.5"
31
+ version: "2.8"
32
32
  - !ruby/object:Gem::Dependency
33
33
  name: yard
34
34
  prerelease: false
@@ -37,14 +37,14 @@ dependencies:
37
37
  requirements:
38
38
  - - ~>
39
39
  - !ruby/object:Gem::Version
40
- version: 0.7.2
40
+ version: 0.7.4
41
41
  type: :development
42
42
  version_requirements: !ruby/object:Gem::Requirement
43
43
  none: false
44
44
  requirements:
45
45
  - - ~>
46
46
  - !ruby/object:Gem::Version
47
- version: 0.7.2
47
+ version: 0.7.4
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: redcarpet
50
50
  prerelease: false
@@ -71,12 +71,14 @@ executables:
71
71
  extensions: []
72
72
  extra_rdoc_files:
73
73
  - README.markdown
74
- - History.txt
74
+ - History.markdown
75
75
  - docs/Contributors.markdown
76
+ - docs/HeatingUpWithHotCocoa-part1.markdown
76
77
  - docs/Mappings.markdown
77
78
  - docs/MappingsExplained.markdown
78
79
  - docs/Overview.markdown
79
80
  - docs/Resources.markdown
81
+ - docs/Troubleshooting.markdown
80
82
  - docs/Tutorial.markdown
81
83
  files:
82
84
  - Rakefile
@@ -201,18 +203,21 @@ files:
201
203
  - test/test_attributed_string_helpers.rb
202
204
  - test/test_behaviours.rb
203
205
  - test/test_bin.rb
206
+ - test/test_delegate_builder.rb
204
207
  - test/test_mapper.rb
205
208
  - test/test_mapping_methods.rb
206
209
  - test/test_mappings.rb
207
210
  - test/test_notification_listener.rb
208
211
  - test/test_template.rb
209
212
  - README.markdown
210
- - History.txt
213
+ - History.markdown
211
214
  - docs/Contributors.markdown
215
+ - docs/HeatingUpWithHotCocoa-part1.markdown
212
216
  - docs/Mappings.markdown
213
217
  - docs/MappingsExplained.markdown
214
218
  - docs/Overview.markdown
215
219
  - docs/Resources.markdown
220
+ - docs/Troubleshooting.markdown
216
221
  - docs/Tutorial.markdown
217
222
  has_rdoc: true
218
223
  homepage: http://github.com/ferrous26/hotcocoa
@@ -262,6 +267,7 @@ test_files:
262
267
  - test/test_attributed_string_helpers.rb
263
268
  - test/test_behaviours.rb
264
269
  - test/test_bin.rb
270
+ - test/test_delegate_builder.rb
265
271
  - test/test_mapper.rb
266
272
  - test/test_mapping_methods.rb
267
273
  - test/test_mappings.rb
data/History.txt DELETED
@@ -1,29 +0,0 @@
1
- === 0.6.0 2011-10-14
2
-
3
- * 10 enhancements:
4
- * New application builder to work with MacRuby 0.11
5
- * Old application builder is deprecated
6
- * New application templates now use an appspec, similar to a gemspec
7
- * config.yml is now deprecated
8
- * Lazier loading for mappings (may break custom mappings!)
9
- * API documention (~67% coverage so far)
10
- * Regression tests (< 67% coverage so far)
11
- * Updating and porting of the tutorial documentation (~40% complete)
12
- * HotCocoa now works when compiled (HotCocoa will boot ~2.5 faster)
13
- * HotCocoa is now leaner
14
- * Various bug fixes
15
-
16
- * 4 new mappings:
17
- * bonjour_service => NSNetService
18
- * bonjour_browser => NSNetServiceBrowser
19
- * line => NSBezierPath
20
- * tracking_area => NSTrackingArea
21
-
22
- * 2 graphics improvements:
23
- * Image class works with more image types
24
- * Image class can save images
25
-
26
- === 0.0.1 2009-11-07
27
-
28
- * 1 major enhancement:
29
- * Initial release