sugarcube 3.3.4 → 3.3.5
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.
- checksums.yaml +4 -4
- data/README.md +5 -3
- data/lib/cocoa/sugarcube-files/nsstring.rb +3 -3
- data/lib/cocoa/sugarcube-nsdata/nsdata.rb +2 -7
- data/lib/cocoa/sugarcube-nsdate/nsdate.rb +65 -18
- data/lib/osx/sugarcube-color/nsarray.rb +2 -2
- data/lib/version.rb +1 -1
- data/spec/ios/nsdata_spec.rb +1 -1
- data/spec/ios/nsdate_spec.rb +19 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4de89aabaaf8a83810ab069bf1a29577102fa482
|
4
|
+
data.tar.gz: 725ac56efa88b23dd73d1dd6ea3995d0f0ea6555
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 957e029dcd2bb1dcb0f95e4f7da3b23ba2c159c8b6d8c2edccd8b54511ef709f23bc5c79ca2db304b697ef8ba0236437c7c0128dac65f6e77039ea5b0208b0bc
|
7
|
+
data.tar.gz: 046cec67dfe8b834fa135332b9d12160e0fa4e105def2def608795b5a957793ffb4aa12a96d8f71536267e0118d7f46318daf69e2a78c6dd62fa0cd85eaadc86
|
data/README.md
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
SugarCube
|
2
2
|
=========
|
3
3
|
|
4
|
+
[](https://gitter.im/rubymotion/sugarcube?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
5
|
+
|
4
6
|
[](https://travis-ci.org/rubymotion/sugarcube)
|
5
7
|
[](https://rubygems.org/gems/sugarcube)
|
6
8
|
|
@@ -701,7 +703,7 @@ end
|
|
701
703
|
# a little more complex - the cancel button should be first, and the block will
|
702
704
|
# receive a string and an index
|
703
705
|
UIAlertView.alert('This is happening, OK?',
|
704
|
-
message: 'Don't worry, it'll be fine.',
|
706
|
+
message: 'Don\'t worry, it\'ll be fine.',
|
705
707
|
buttons: ['Nevermind', 'OK'],
|
706
708
|
) do |button, button_index|
|
707
709
|
if button == 'OK' # or: button_index == 1
|
@@ -772,9 +774,9 @@ UIActionSheet.alert('This is happening, OK?', buttons: ['Cancel', 'Kill it!', 'U
|
|
772
774
|
end
|
773
775
|
|
774
776
|
# skip cancel and destructive buttons:
|
775
|
-
UIActionSheet.alert('Should I?', buttons: [nil, nil, 'OK', 'Nevermind'])
|
777
|
+
UIActionSheet.alert('Should I?', buttons: [nil, nil, 'OK', 'Nevermind']) { |pressed|
|
776
778
|
self.do_it if pressed == 'OK'
|
777
|
-
|
779
|
+
}
|
778
780
|
|
779
781
|
UIActionSheet.alert 'I mean, is this cool?', buttons: ['Nah', 'With fire!', 'Sure', 'whatever'],
|
780
782
|
cancel: proc { self.cancel },
|
@@ -15,10 +15,10 @@ class NSString
|
|
15
15
|
end
|
16
16
|
|
17
17
|
def app_support_path
|
18
|
-
@@
|
19
|
-
return self if self.hasPrefix(@@
|
18
|
+
@@sugarcube_app_support ||= NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, true)[0]
|
19
|
+
return self if self.hasPrefix(@@sugarcube_app_support)
|
20
20
|
|
21
|
-
@@
|
21
|
+
@@sugarcube_app_support.stringByAppendingPathComponent(self)
|
22
22
|
end
|
23
23
|
|
24
24
|
def temporary_path
|
@@ -2,13 +2,8 @@ class NSData
|
|
2
2
|
|
3
3
|
# converts NSData into an NSString using any encoding, default is UTF8
|
4
4
|
# @return [NSString]
|
5
|
-
def nsstring(encoding=
|
6
|
-
|
7
|
-
return NSString.stringWithCString(self.bytes, encoding: encoding)
|
8
|
-
else
|
9
|
-
|
10
|
-
return NSString.stringWithUTF8String(self)
|
11
|
-
end
|
5
|
+
def nsstring(encoding=NSUTF8StringEncoding)
|
6
|
+
return NSString.alloc.initWithData(self, encoding: encoding)
|
12
7
|
end
|
13
8
|
|
14
9
|
def write_to(path_or_url, atomically=true)
|
@@ -43,40 +43,87 @@ class NSDate
|
|
43
43
|
date_formatter.stringFromDate(self)
|
44
44
|
end
|
45
45
|
|
46
|
-
# Pass in a format string or a Symbol.
|
46
|
+
# Pass in a format string or a Symbol. If you use a Symbol, it must exist in
|
47
47
|
# NSDate::SugarCubeFormats.
|
48
48
|
#
|
49
|
+
# This method accepts some options:
|
50
|
+
#
|
51
|
+
# timezone: String or NSTimeZone. Strings get converted using NSTimeZone.timeZoneWithName
|
52
|
+
# unicode: if true, this method will use Unicode date format (TR35) instead of converting to a locale specific format
|
53
|
+
# locale: Strings or NSLocale. Strings get converted using NSLocale.localeWithLocaleIdentifier
|
54
|
+
#
|
49
55
|
# See
|
50
56
|
# <https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/DataFormatting/Articles/dfDateFormatting10_4.html#//apple_ref/doc/uid/TP40002369-SW1>
|
51
57
|
# and
|
52
58
|
# <http://www.unicode.org/reports/tr35/tr35-19.html#Date_Field_Symbol_Table>
|
53
59
|
# for more information about date format strings.
|
54
60
|
def string_with_format(format, options={})
|
55
|
-
locale = options[:locale] || NSLocale.currentLocale
|
56
61
|
timezone = options[:timezone] || NSTimeZone.defaultTimeZone
|
62
|
+
if timezone.is_a?(NSString)
|
63
|
+
timezone = NSTimeZone.timeZoneWithName(timezone)
|
64
|
+
end
|
57
65
|
|
58
66
|
if format.is_a?(Symbol)
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
retval << formatter
|
67
|
+
return _string_with_sugarcube_format(format, timezone)
|
68
|
+
else
|
69
|
+
unicode = options[:unicode]
|
70
|
+
if unicode
|
71
|
+
return _string_with_unicode_format(format, timezone)
|
72
|
+
else
|
73
|
+
locale = options[:locale] || NSLocale.currentLocale
|
74
|
+
if locale.is_a?(NSString)
|
75
|
+
locale = NSLocale.localeWithLocaleIdentifier(locale)
|
69
76
|
end
|
77
|
+
|
78
|
+
return _string_with_nsdate_format(format, timezone, locale)
|
70
79
|
end
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
def _string_with_sugarcube_format(format, timezone)
|
84
|
+
formatters = SugarCubeFormats[format]
|
85
|
+
raise "No format found for #{format.inspect}" unless formatters
|
86
|
+
locale = NSLocale.localeWithLocaleIdentifier('en_US')
|
87
|
+
retval = ''
|
88
|
+
formatters.each do |formatter|
|
89
|
+
case formatter
|
90
|
+
when Symbol
|
91
|
+
retval << string_with_format(formatter.to_s, locale: locale, timezone: timezone)
|
92
|
+
when String
|
93
|
+
retval << formatter
|
94
|
+
end
|
95
|
+
end
|
96
|
+
return retval
|
97
|
+
end
|
98
|
+
|
99
|
+
def _string_with_nsdate_format(format, timezone, locale)
|
100
|
+
locale_name = locale.localeIdentifier
|
101
|
+
@@sugarcube_date_formatters ||= {}
|
102
|
+
@@sugarcube_date_formatters[locale_name] ||= {}
|
103
|
+
@@sugarcube_date_formatters[locale_name][format] ||= begin
|
104
|
+
format_template = NSDateFormatter.dateFormatFromTemplate(format, options: 0,
|
105
|
+
locale: locale)
|
75
106
|
date_formatter = NSDateFormatter.new
|
76
107
|
date_formatter.setDateFormat(format_template)
|
77
|
-
date_formatter
|
78
|
-
|
108
|
+
date_formatter
|
109
|
+
end
|
110
|
+
|
111
|
+
date_formatter = @@sugarcube_date_formatters[locale_name][format]
|
112
|
+
date_formatter.setTimeZone(timezone)
|
113
|
+
return date_formatter.stringFromDate(self)
|
114
|
+
end
|
115
|
+
|
116
|
+
def _string_with_unicode_format(format, timezone)
|
117
|
+
@@sugarcube_unicode_formatters ||= {}
|
118
|
+
@@sugarcube_unicode_formatters[format] ||= begin
|
119
|
+
date_formatter = NSDateFormatter.new
|
120
|
+
date_formatter.setDateFormat(format)
|
121
|
+
date_formatter
|
79
122
|
end
|
123
|
+
|
124
|
+
date_formatter = @@sugarcube_unicode_formatters[format]
|
125
|
+
date_formatter.setTimeZone(timezone)
|
126
|
+
return date_formatter.stringFromDate(self)
|
80
127
|
end
|
81
128
|
|
82
129
|
def upto(last_date, delta={days: 1}, &block)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
class NSArray
|
2
2
|
|
3
|
-
# [160, 210, 242].
|
3
|
+
# [160, 210, 242].nscolor => 0xA0D2F2.nscolor
|
4
4
|
def nscolor(alpha=1.0)
|
5
5
|
red = self[0] / 255.0
|
6
6
|
green = self[1] / 255.0
|
@@ -16,7 +16,7 @@ class NSArray
|
|
16
16
|
end
|
17
17
|
|
18
18
|
def skcolor(alpha=nil)
|
19
|
-
|
19
|
+
nscolor(alpha)
|
20
20
|
end
|
21
21
|
|
22
22
|
end
|
data/lib/version.rb
CHANGED
data/spec/ios/nsdata_spec.rb
CHANGED
@@ -10,7 +10,7 @@ describe "NSData" do
|
|
10
10
|
NSString.stringWithUTF8String("t\u0113st".nsdata).should == "t\u0113st"
|
11
11
|
end
|
12
12
|
|
13
|
-
it "native methods should work -
|
13
|
+
it "native methods should work - turkish letters" do
|
14
14
|
NSString.stringWithUTF8String("\u00ab\u03c4\u03b1\u0411\u042c\u2113\u03c3\u00bb".dataUsingEncoding(NSUTF8StringEncoding)).should == "\u00ab\u03c4\u03b1\u0411\u042c\u2113\u03c3\u00bb"
|
15
15
|
NSString.stringWithUTF8String("\u00ab\u03c4\u03b1\u0411\u042c\u2113\u03c3\u00bb".nsdata).should == "\u00ab\u03c4\u03b1\u0411\u042c\u2113\u03c3\u00bb"
|
16
16
|
end
|
data/spec/ios/nsdate_spec.rb
CHANGED
@@ -90,11 +90,28 @@ describe "NSDate" do
|
|
90
90
|
end
|
91
91
|
|
92
92
|
it "should have an NSDate#string_with_format method (1)" do
|
93
|
-
@date.string_with_format(
|
93
|
+
@date.string_with_format('yyyyMMdd HH:mm:ss').should == '01/02/2013, 12:15:30'
|
94
94
|
end
|
95
95
|
|
96
96
|
it "should have an NSDate#string_with_format method (2)" do
|
97
|
-
@date.string_with_format(
|
97
|
+
@date.string_with_format('yyyyMMMMd HH:mm:ss').should == 'January 2, 2013, 12:15:30'
|
98
|
+
end
|
99
|
+
|
100
|
+
it "should have an NSDate#string_with_format(unicode: true) method" do
|
101
|
+
@date.string_with_format("yyyy-MM-dd 'at' HH:mm", unicode: true).should == '2013-01-02 at 12:15'
|
102
|
+
# these formatters get cached, and it's important to test the cache:
|
103
|
+
@date.string_with_format("yyyy-MM-dd 'at' HH:mm", unicode: true).should == '2013-01-02 at 12:15'
|
104
|
+
end
|
105
|
+
|
106
|
+
it "should have an NSDate#string_with_format(locale: (France))" do
|
107
|
+
locale = NSLocale.localeWithLocaleIdentifier('fr')
|
108
|
+
@date.string_with_format('yyyyMMMMd HH:mm:ss', locale: locale).should == '2 January 2013 12:15:30'
|
109
|
+
end
|
110
|
+
|
111
|
+
it "should have an NSDate#string_with_format(locale: 'fr')" do
|
112
|
+
@date.string_with_format('yyyyMMMMd HH:mm:ss', locale: 'fr').should == '2 January 2013 12:15:30'
|
113
|
+
# these formatters get cached, and it's important to test the cache:
|
114
|
+
@date.string_with_format('yyyyMMMMd HH:mm:ss', locale: 'fr').should == '2 January 2013 12:15:30'
|
98
115
|
end
|
99
116
|
|
100
117
|
it "should have an NSDate#string_with_format method (:iso8601)" do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sugarcube
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.3.
|
4
|
+
version: 3.3.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Colin T.A. Gray
|
@@ -12,7 +12,7 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date: 2015-
|
15
|
+
date: 2015-05-01 00:00:00.000000000 Z
|
16
16
|
dependencies: []
|
17
17
|
description: |
|
18
18
|
== Description
|