sugarcube 0.15.5 → 0.16

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/README.md CHANGED
@@ -1376,3 +1376,33 @@ view.on_press # use system defaults
1376
1376
  view.on_press(1.5) # duration
1377
1377
  view.on_press(duration: 1.5, taps: 1, fingers: 1)
1378
1378
  ```
1379
+
1380
+ Unholy
1381
+ --------
1382
+
1383
+ These methods are just about as opinionated as they get - even more than the RoR
1384
+ additions. They are not included by default, so please don't freak out about
1385
+ them. I add them here because I don't think anyone will notice if I do, and I
1386
+ use these everywhere. :poop:
1387
+
1388
+ ### `ivar`
1389
+
1390
+ ###### Rackfile
1391
+
1392
+ ```ruby
1393
+ require 'sugarcube-unholy'
1394
+ ```
1395
+
1396
+ ###### Elsewhere
1397
+
1398
+ ```ruby
1399
+ class Baz ; end
1400
+ foo = Baz.new
1401
+
1402
+ # (:symbol || 'string').ivar
1403
+ foo.instance_variable_set(:bar.ivar, value) # => foo.instance_variable_set(:@bar, value)
1404
+ foo.instance_variable_set(var_name.ivar, value) # => foo.instance_variable_set("@#{var_name}", value)
1405
+
1406
+ # (:symbol || 'string').cvar
1407
+ Baz.class_variable_set(var_name.cvar, value) # => Baz.class_variable_set("@@#{var_name}", value)
1408
+ ```
data/Rakefile CHANGED
@@ -3,6 +3,7 @@ require 'motion/project'
3
3
  require './lib/sugarcube'
4
4
  require './lib/sugarcube-gestures'
5
5
  require './lib/sugarcube-568'
6
+ require './lib/sugarcube-unholy'
6
7
 
7
8
 
8
9
  Motion::Project::App.setup do |app|
@@ -0,0 +1,23 @@
1
+ unless defined?(Motion::Project::Config)
2
+ raise "The sugarcube gem must be required within a RubyMotion project Rakefile."
3
+ end
4
+
5
+
6
+ Motion::Project::App.setup do |app|
7
+ # scans app.files until it finds app/ (the default)
8
+ # if found, it inserts just before those files, otherwise it will insert to
9
+ # the end of the list
10
+ insert_point = 0
11
+ app.files.each_index do |index|
12
+ file = app.files[index]
13
+ if file =~ /^(?:\.\/)?app\//
14
+ # found app/, so stop looking
15
+ break
16
+ end
17
+ insert_point = index + 1
18
+ end
19
+
20
+ Dir.glob(File.join(File.dirname(__FILE__), 'sugarcube-unholy/**/*.rb')).reverse.each do |file|
21
+ app.files.insert(insert_point, file)
22
+ end
23
+ end
@@ -0,0 +1,25 @@
1
+ # Some Symbol additions to make my life easier
2
+ class Symbol
3
+
4
+ def ivar
5
+ self.to_s.ivar
6
+ end
7
+
8
+ def cvar
9
+ self.to_s.cvar
10
+ end
11
+
12
+ end
13
+
14
+
15
+ class NSString
16
+
17
+ def ivar
18
+ "@#{self}"
19
+ end
20
+
21
+ def cvar
22
+ "@@#{self}"
23
+ end
24
+
25
+ end
@@ -131,6 +131,22 @@ class NSDate
131
131
  return self + time_interval
132
132
  end
133
133
 
134
+ # (main)> t = Time.new
135
+ # => 2012-09-27 11:29:12 +0900
136
+ # (main)> t.start_of_month
137
+ # => 2012-09-01 00:00:00 +0900
138
+ def start_of_month
139
+ return self.start_of_day.delta(days:1 - day)
140
+ end
141
+
142
+ # (main)> t = Time.new
143
+ # => 2012-09-27 11:29:12 +0900
144
+ # (main)> t.end_of_month
145
+ # => 2012-10-01 00:00:00 +0900
146
+ def end_of_month
147
+ return self.end_of_day.delta(days:days_in_month - day)
148
+ end
149
+
134
150
  def days_in_month
135
151
  NSCalendar.currentCalendar.rangeOfUnit(NSDayCalendarUnit, inUnit:NSMonthCalendarUnit, forDate:self).length
136
152
  end
@@ -1,3 +1,3 @@
1
1
  module SugarCube
2
- Version = '0.15.5'
2
+ Version = '0.16'
3
3
  end
@@ -0,0 +1,11 @@
1
+ describe "NSData" do
2
+
3
+ it "should be able to create a string from data" do
4
+ "test".nsdata.nsstring.should == "test"
5
+ end
6
+
7
+ it "should be able to create a unicode string from data" do
8
+ "t\u0113st".nsdata.nsstring.should == "t\u0113st"
9
+ end
10
+
11
+ end
@@ -73,6 +73,14 @@ describe "NSDate" do
73
73
  @date.end_of_day.datetime_array.should == [2013, 1, 3, 0, 0, 0]
74
74
  end
75
75
 
76
+ it "should have an NSDate#start_of_month method" do
77
+ @date.start_of_month.datetime_array.should == [2013, 1, 1, 0, 0, 0]
78
+ end
79
+
80
+ it "should have an NSDate#end_of_month method" do
81
+ @date.end_of_month.datetime_array.should == [2013, 2, 1, 0, 0, 0]
82
+ end
83
+
76
84
  it "should have an NSDate#days_in_month method" do
77
85
  @date.days_in_month.should == 31
78
86
  NSDate.from_components(year:2013, month:2, day:1).days_in_month.should == 28
@@ -0,0 +1,19 @@
1
+ describe "Sanity" do
2
+
3
+ it "should have Symbol#ivar" do
4
+ :name.ivar.should == '@name'
5
+ end
6
+
7
+ it "should have String#ivar" do
8
+ 'another'.ivar.should == '@another'
9
+ end
10
+
11
+ it "should have Symbol#cvar" do
12
+ :name.cvar.should == '@@name'
13
+ end
14
+
15
+ it "should have String#cvar" do
16
+ 'another'.cvar.should == '@@another'
17
+ end
18
+
19
+ end
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: 0.15.5
4
+ version: '0.16'
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ authors:
13
13
  autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
- date: 2013-02-04 00:00:00.000000000 Z
16
+ date: 2013-02-06 00:00:00.000000000 Z
17
17
  dependencies: []
18
18
  description: ! '== Description
19
19
 
@@ -52,6 +52,8 @@ files:
52
52
  - lib/sugarcube-568/uiimage.rb
53
53
  - lib/sugarcube-gestures.rb
54
54
  - lib/sugarcube-gestures/gestures.rb
55
+ - lib/sugarcube-unholy.rb
56
+ - lib/sugarcube-unholy/ivar.rb
55
57
  - lib/sugarcube.rb
56
58
  - lib/sugarcube/adjust.rb
57
59
  - lib/sugarcube/calayer.rb
@@ -122,6 +124,7 @@ files:
122
124
  - spec/notification_spec.rb
123
125
  - spec/nsarray_spec.rb
124
126
  - spec/nscoder_spec.rb
127
+ - spec/nsdata_spec.rb
125
128
  - spec/nsdate_spec.rb
126
129
  - spec/nsdate_upto_spec.rb
127
130
  - spec/nsstring_files_spec.rb
@@ -132,6 +135,7 @@ files:
132
135
  - spec/uiimage_scale_spec.rb
133
136
  - spec/uiview_animation_spec.rb
134
137
  - spec/uiview_spec.rb
138
+ - spec/unholy_spec.rb
135
139
  - sugarcube.gemspec
136
140
  homepage: https://github.com/rubymotion/sugarcube
137
141
  licenses: []
@@ -168,6 +172,7 @@ test_files:
168
172
  - spec/notification_spec.rb
169
173
  - spec/nsarray_spec.rb
170
174
  - spec/nscoder_spec.rb
175
+ - spec/nsdata_spec.rb
171
176
  - spec/nsdate_spec.rb
172
177
  - spec/nsdate_upto_spec.rb
173
178
  - spec/nsstring_files_spec.rb
@@ -178,4 +183,5 @@ test_files:
178
183
  - spec/uiimage_scale_spec.rb
179
184
  - spec/uiview_animation_spec.rb
180
185
  - spec/uiview_spec.rb
186
+ - spec/unholy_spec.rb
181
187
  has_rdoc: