sproutcore 1.9.1 → 1.9.2
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION.yml +1 -1
- data/lib/frameworks/sproutcore/CHANGELOG.md +212 -11
- data/lib/frameworks/sproutcore/frameworks/ajax/system/response.js +17 -17
- data/lib/frameworks/sproutcore/frameworks/ajax/tests/system/request.js +103 -86
- data/lib/frameworks/sproutcore/frameworks/bootstrap/system/browser.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/bootstrap/tests/system/browser.js +33 -21
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/platform.js +3 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/root_responder.js +7 -2
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view.js +5 -2
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/animation.js +7 -0
- data/lib/frameworks/sproutcore/frameworks/datastore/data_sources/data_source.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/system/many_array.js +36 -30
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/many_array/core_methods.js +84 -42
- data/lib/frameworks/sproutcore/frameworks/desktop/{resources/debug → debug/resources}/a_sample_image.jpg +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/{resources/debug → debug/resources}/iframe.html +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/protocols/responder.js +68 -68
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/list_item.css +1 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/menu_item_view.css +1 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/slider.css +6 -5
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/segmented/methods.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/segmented/ui.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/web/ui.js +2 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/views/segmented.js +45 -36
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/{gestureable.js → gesturable.js} +0 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/label.js +2 -4
- data/lib/frameworks/sproutcore/frameworks/foundation/resources/benchmark.css +1 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/label/ui.js +13 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/views/inline_text_field.js +4 -33
- data/lib/frameworks/sproutcore/frameworks/foundation/views/label.js +31 -17
- data/lib/frameworks/sproutcore/frameworks/foundation/views/text_field.js +59 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/core.js +2 -2
- data/lib/frameworks/sproutcore/themes/ace/resources/master-detail/master-detail.css +4 -0
- data/lib/gen/app/templates/apps/@target_name@/Buildfile +3 -1
- data/lib/gen/app/templates/apps/@target_name@/core.js +3 -3
- data/lib/gen/app/templates/apps/@target_name@/main.js +7 -5
- data/lib/gen/app/templates/apps/@target_name@/resources/main_page.css +20 -0
- data/lib/gen/app/templates/apps/@target_name@/resources/main_page.js +7 -7
- data/lib/gen/controller/templates/controllers/@filename@_controller.js +2 -2
- data/lib/gen/data-source/templates/data_sources/@filename@_data_source.js +21 -21
- data/lib/gen/design/templates/resources/@filename@.css +12 -0
- data/lib/gen/framework/templates/frameworks/@target_name@/core.js +3 -3
- data/lib/gen/framework/templates/frameworks/@target_name@/english.lproj/strings.js +1 -1
- data/lib/gen/language/templates/@filename@/strings.js +1 -1
- data/lib/gen/model/templates/models/@filename@_model.js +1 -1
- data/lib/gen/page/templates/pages/@target_name@/core.js +3 -3
- data/lib/gen/project/templates/@filename@/Buildfile +29 -5
- data/lib/gen/{responder → state}/Buildfile +3 -2
- data/lib/gen/state/README +1 -0
- data/lib/gen/state/USAGE +15 -0
- data/lib/gen/state/templates/states/@filename@_state.js +24 -0
- data/lib/gen/state/templates/tests/states/@filename@_test.js +12 -0
- data/lib/gen/statechart_app/templates/apps/@target_name@/Buildfile +3 -1
- data/lib/gen/statechart_app/templates/apps/@target_name@/core.js +3 -3
- data/lib/gen/statechart_app/templates/apps/@target_name@/main.js +3 -10
- data/lib/gen/statechart_app/templates/apps/@target_name@/resources/main_page.css +20 -0
- data/lib/gen/statechart_app/templates/apps/@target_name@/resources/main_page.js +7 -7
- data/lib/gen/statechart_app/templates/apps/@target_name@/statechart.js +3 -3
- data/lib/sproutcore/models/generator.rb +1 -1
- data/spec/lib/models/generator/snake_case_spec.rb +26 -0
- data/sproutcore.gemspec +16 -16
- data/vendor/chance/lib/chance/instance/spriting.rb +32 -30
- metadata +30 -26
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/debug/apple-logo1.jpeg +0 -0
- data/lib/gen/responder/README +0 -1
- data/lib/gen/responder/USAGE +0 -15
- data/lib/gen/responder/templates/states/@filename@_state.js +0 -36
@@ -0,0 +1,24 @@
|
|
1
|
+
<%= copyright_block(namespace) %>
|
2
|
+
/*globals <%= namespace %> */
|
3
|
+
|
4
|
+
/** @class
|
5
|
+
|
6
|
+
(Document Your State Here)
|
7
|
+
|
8
|
+
@extends <%= base_class_name || 'SC.State' %>
|
9
|
+
@version 0.1
|
10
|
+
*/
|
11
|
+
<%= namespace_class_name %> = <%= base_class_name || 'SC.State' %>.extend(
|
12
|
+
/** @scope <%= namespace_class_name %>.prototype */ {
|
13
|
+
|
14
|
+
// TODO: Add your own code here.
|
15
|
+
|
16
|
+
enterState: function() {
|
17
|
+
<%= namespace %>.mainPage.get('mainPane').append();
|
18
|
+
},
|
19
|
+
|
20
|
+
exitState: function() {
|
21
|
+
<%= namespace %>.mainPage.get('mainPane').remove();
|
22
|
+
}
|
23
|
+
|
24
|
+
});
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<%= copyright_block("#{namespace_class_name} Unit Test") %>
|
2
|
+
/*globals <%= namespace %> module test ok equals same stop start */
|
3
|
+
|
4
|
+
module("<%= namespace_class_name %>");
|
5
|
+
|
6
|
+
// TODO: Replace with real unit test for <%= class_name %>
|
7
|
+
test("test description", function() {
|
8
|
+
var expected = "test";
|
9
|
+
var result = "test";
|
10
|
+
equals(result, expected, "test should equal test");
|
11
|
+
});
|
12
|
+
|
@@ -3,7 +3,9 @@
|
|
3
3
|
# This is your Buildfile for your app, <%= namespace %>. This tells SproutCore
|
4
4
|
# how to build your app. These settings override those in your project
|
5
5
|
# Buildfile, which contains default settings for all apps in your project.
|
6
|
+
#
|
7
|
+
# To learn more about configuring the Buildfile, please visit
|
8
|
+
# http://guides.sproutcore.com/build_tools.html.
|
6
9
|
|
7
10
|
# It is better to add :required targets here than in the global Buildfile.
|
8
11
|
config :<%= target_name %>, :required => :sproutcore
|
9
|
-
|
@@ -4,7 +4,7 @@
|
|
4
4
|
/** @namespace
|
5
5
|
|
6
6
|
My cool new app. Describe your application.
|
7
|
-
|
7
|
+
|
8
8
|
@extends SC.Object
|
9
9
|
*/
|
10
10
|
<%= namespace %> = SC.Application.create(
|
@@ -18,7 +18,7 @@
|
|
18
18
|
// connect to a backend server. The default setup below connects the store
|
19
19
|
// to any fixtures you define.
|
20
20
|
store: SC.Store.create().from(SC.Record.fixtures)
|
21
|
-
|
21
|
+
|
22
22
|
// TODO: Add global constants or singleton objects needed by your app here.
|
23
23
|
|
24
|
-
})
|
24
|
+
});
|
@@ -9,18 +9,11 @@
|
|
9
9
|
// See comments for some pointers on what to do next.
|
10
10
|
//
|
11
11
|
<%= namespace %>.main = function main() {
|
12
|
-
|
13
|
-
// Step 1: Tell your app it will load via states
|
14
12
|
var statechart = <%= namespace %>.statechart;
|
15
|
-
SC.RootResponder.responder.set('defaultResponder', statechart);
|
16
|
-
statechart.initStatechart();
|
17
13
|
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
// TODO: Set the content property on your primary controller
|
22
|
-
// ex: MyApp.contactsController.set('content', MyApp.contacts);
|
14
|
+
SC.RootResponder.responder.set('defaultResponder', statechart);
|
15
|
+
statechart.initStatechart();
|
16
|
+
};
|
23
17
|
|
24
|
-
} ;
|
25
18
|
|
26
19
|
function main() { <%= namespace %>.main(); }
|
@@ -0,0 +1,20 @@
|
|
1
|
+
// Add your custom CSS styles here.
|
2
|
+
//
|
3
|
+
// You may want to create additional stylesheet files for every page or pane
|
4
|
+
// within your application rather than placing all your CSS in here. In any
|
5
|
+
// case, all stylesheet files will be combined into a single stylesheet on
|
6
|
+
// build to let it load super fast.
|
7
|
+
//
|
8
|
+
// Remember, Compass (http://compass-style.org) is built in and you can use
|
9
|
+
// SCSS syntax (http://sass-lang.com/) even though stylesheet files should end
|
10
|
+
// with the .css extension.
|
11
|
+
//
|
12
|
+
// Learn more on styling your app here: http://sproutcore.com/guides/chance.html
|
13
|
+
|
14
|
+
// Example. This style is applied to the labelView child view.
|
15
|
+
$theme.sc-label-view.welcome-label {
|
16
|
+
font-size: 16px;
|
17
|
+
line-height: 24px;
|
18
|
+
text-align: center;
|
19
|
+
text-shadow: rgba(255, 255, 255, 0.5) 0 1px 1px;
|
20
|
+
}
|
@@ -1,19 +1,19 @@
|
|
1
1
|
<%= copyright_block("#{namespace} - mainPage") %>
|
2
2
|
/*globals <%= namespace %> */
|
3
3
|
|
4
|
-
// This page describes the main user interface for your application.
|
4
|
+
// This page describes the main user interface for your application.
|
5
5
|
<%= namespace %>.mainPage = SC.Page.design({
|
6
6
|
|
7
7
|
// The main pane is made visible on screen as soon as your app is loaded.
|
8
|
-
// Add childViews to this pane for views to display immediately on page
|
8
|
+
// Add childViews to this pane for views to display immediately on page
|
9
9
|
// load.
|
10
10
|
mainPane: SC.MainPane.design({
|
11
|
-
childViews: 'labelView'
|
12
|
-
|
11
|
+
childViews: ['labelView'],
|
12
|
+
|
13
13
|
labelView: SC.LabelView.design({
|
14
|
-
|
15
|
-
|
16
|
-
tagName: "h1",
|
14
|
+
classNames: ['welcome-label'],
|
15
|
+
layout: { centerX: 0, centerY: 0, width: 300, height: 24 },
|
16
|
+
tagName: "h1",
|
17
17
|
value: "Welcome to SproutCore!"
|
18
18
|
})
|
19
19
|
})
|
@@ -1,8 +1,8 @@
|
|
1
1
|
<%= namespace %>.statechart = SC.Statechart.create({
|
2
2
|
|
3
3
|
initialState: 'readyState',
|
4
|
-
|
5
|
-
readyState: SC.State.plugin('<%= namespace %>.ReadyState')
|
4
|
+
|
5
|
+
readyState: SC.State.plugin('<%= namespace %>.ReadyState')
|
6
6
|
// someOtherState: SC.State.plugin('<%= namespace %>.SomeOtherState')
|
7
7
|
|
8
|
-
});
|
8
|
+
});
|
@@ -439,7 +439,7 @@ module SC
|
|
439
439
|
def snake_case(str='')
|
440
440
|
str = str.gsub(/-/, '_')
|
441
441
|
str = str.gsub(/([^A-Z_])([A-Z][^A-Z]?)/,'\1_\2') # most cases
|
442
|
-
str = str.gsub(/([^_])([A-Z][^A-
|
442
|
+
str = str.gsub(/([^_])([A-Z][^A-Z_])/,'\1_\2') # HeadlineCNNNews
|
443
443
|
str.downcase
|
444
444
|
end
|
445
445
|
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe SC::Generator, 'snake_case' do
|
4
|
+
|
5
|
+
test_hashes = [
|
6
|
+
{ :input => "FooBar", :output => "foo_bar" },
|
7
|
+
{ :input => "HeadlineCNNNews", :output => "headline_cnn_news" },
|
8
|
+
{ :input => "CNN", :output => "cnn" },
|
9
|
+
{ :input => "innerHTML", :output => "inner_html" },
|
10
|
+
{ :input => "Foo_Bar", :output => "foo_bar" },
|
11
|
+
{ :input => "Foo-Bar", :output => "foo_bar" },
|
12
|
+
{ :input => "LOGGED_IN", :output => "logged_in" },
|
13
|
+
]
|
14
|
+
|
15
|
+
test_hashes.each do |test_hash|
|
16
|
+
input = test_hash[:input]
|
17
|
+
output = test_hash[:output]
|
18
|
+
|
19
|
+
it "should snake_case #{input} to #{output}" do
|
20
|
+
a = SC::Generator.new("test")
|
21
|
+
|
22
|
+
a.snake_case(input).should eql(output)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
data/sproutcore.gemspec
CHANGED
@@ -15,36 +15,36 @@ Gem::Specification.new do |s|
|
|
15
15
|
s.platform = 'java' if is_jruby
|
16
16
|
|
17
17
|
s.add_dependency 'rack', '~> 1.2'
|
18
|
-
s.add_dependency 'json_pure', "~> 1.4
|
19
|
-
s.add_dependency 'extlib', "~> 0.9
|
18
|
+
s.add_dependency 'json_pure', "~> 1.4"
|
19
|
+
s.add_dependency 'extlib', "~> 0.9"
|
20
20
|
s.add_dependency 'erubis', "~> 2.6"
|
21
|
-
s.add_dependency 'thor', '~> 0.14
|
22
|
-
s.add_dependency 'sass', '~> 3.1
|
23
|
-
s.add_dependency 'haml', '~> 3.1
|
21
|
+
s.add_dependency 'thor', '~> 0.14'
|
22
|
+
s.add_dependency 'sass', '~> 3.1'
|
23
|
+
s.add_dependency 'haml', '~> 3.1'
|
24
24
|
|
25
|
-
s.add_dependency 'compass', '~> 0.11
|
26
|
-
s.add_dependency 'chunky_png', '~> 1.2
|
25
|
+
s.add_dependency 'compass', '~> 0.11'
|
26
|
+
s.add_dependency 'chunky_png', '~> 1.2'
|
27
27
|
|
28
|
-
# We need to add two eventmachine dependencies so that thin (
|
28
|
+
# We need to add two eventmachine dependencies so that `thin` (eventmachine >= 0.12.6) and `em-http-request` (eventmachine ~> 1.0.0.beta.4) don't cause bundler to throw a dependency exception.
|
29
29
|
s.add_dependency 'eventmachine', '>= 0.12.6'
|
30
|
-
s.add_dependency 'eventmachine', '
|
30
|
+
s.add_dependency 'eventmachine', '~> 1.0'
|
31
31
|
|
32
32
|
s.add_dependency 'em-http-request', '~> 1.0'
|
33
33
|
|
34
34
|
if is_jruby
|
35
|
-
s.add_dependency 'mongrel', '~> 1.1
|
35
|
+
s.add_dependency 'mongrel', '~> 1.1'
|
36
36
|
else
|
37
|
-
s.add_dependency 'thin', '~> 1.2
|
37
|
+
s.add_dependency 'thin', '~> 1.2'
|
38
38
|
end
|
39
39
|
|
40
|
-
s.add_development_dependency 'gemcutter', "~> 0.6
|
41
|
-
s.add_development_dependency 'rspec', "~> 2.5
|
40
|
+
s.add_development_dependency 'gemcutter', "~> 0.6"
|
41
|
+
s.add_development_dependency 'rspec', "~> 2.5"
|
42
42
|
s.add_development_dependency 'rake'
|
43
43
|
|
44
44
|
# Optional features, used in tests
|
45
|
-
s.add_development_dependency 'less', "~> 1.2
|
46
|
-
s.add_development_dependency 'RedCloth', "~> 4.2
|
47
|
-
s.add_development_dependency 'BlueCloth', "~> 1.0
|
45
|
+
s.add_development_dependency 'less', "~> 1.2"
|
46
|
+
s.add_development_dependency 'RedCloth', "~> 4.2"
|
47
|
+
s.add_development_dependency 'BlueCloth', "~> 1.0"
|
48
48
|
|
49
49
|
s.require_paths << 'lib'
|
50
50
|
s.require_paths << 'vendor/chance/lib'
|
@@ -15,10 +15,10 @@ module Chance
|
|
15
15
|
# out within the sprites, and generating the final sprite images.
|
16
16
|
module Spriting
|
17
17
|
# Performs the spriting process on all of the @slices, creating sprite
|
18
|
-
# images in the class's @sprites property and updating the individual slices
|
18
|
+
# images in the class's @sprites property and updating the individual slices
|
19
19
|
# with a :sprite property containing the identifier of the sprite, and offset
|
20
20
|
# properties for the offsets within the image.
|
21
|
-
def generate_sprite_definitions(opts)
|
21
|
+
def generate_sprite_definitions(opts)
|
22
22
|
@sprites = {}
|
23
23
|
|
24
24
|
group_slices_into_sprites(opts)
|
@@ -71,7 +71,7 @@ module Chance
|
|
71
71
|
# by this name may not exist yet.
|
72
72
|
def sprite_name_for_slice(slice, opts)
|
73
73
|
if slice[:repeat] == "repeat"
|
74
|
-
return slice[:path] + (opts[:x2] ? "@2x" : "")
|
74
|
+
return slice[:path][0..(-1 - File.extname(slice[:path]).length)] + (opts[:x2] ? "@2x" : "") + File.extname(slice[:path])
|
75
75
|
end
|
76
76
|
|
77
77
|
return slice[:repeat] + (opts[:x2] ? "@2x" : "") + File.extname(slice[:path])
|
@@ -83,17 +83,17 @@ module Chance
|
|
83
83
|
# The position is the position in the layout direction. In vertical mode
|
84
84
|
# (the usual) it is the Y position.
|
85
85
|
pos = 0
|
86
|
-
|
86
|
+
|
87
87
|
# Adds some padding that will be painted with a pattern so that it is apparent that
|
88
88
|
# CSS is wrong.
|
89
89
|
# NOTE: though this is only in debug mode, we DO need to make sure it is on a 2px boundary.
|
90
90
|
# This makes sure 2x works properly.
|
91
91
|
padding = @options[:pad_sprites_for_debugging] ? 2 : 0
|
92
|
-
|
92
|
+
|
93
93
|
# The position within a row. It starts at 0 even if we have padding,
|
94
94
|
# because we always just add padding when we set the individual x/y pos.
|
95
95
|
inset = 0
|
96
|
-
|
96
|
+
|
97
97
|
# The length of the row. Length, when layout out vertically (the usual), is the height
|
98
98
|
row_length = 0
|
99
99
|
|
@@ -107,19 +107,19 @@ module Chance
|
|
107
107
|
smallest_size = nil
|
108
108
|
|
109
109
|
is_horizontal = sprite[:use_horizontal_layout]
|
110
|
-
|
110
|
+
|
111
111
|
# Figure out slice width/heights. We cannot rely on slicing to do this for us
|
112
112
|
# because some images may be being passed through as-is.
|
113
113
|
sprite[:slices].each {|slice|
|
114
114
|
# We must find a canvas either on the slice (if it was actually sliced),
|
115
115
|
# or on the slice's file. Otherwise, we're in big shit.
|
116
116
|
canvas = slice[:canvas] || slice[:file][:canvas]
|
117
|
-
|
117
|
+
|
118
118
|
# TODO: MAKE A BETTER ERROR.
|
119
119
|
unless canvas
|
120
120
|
throw "Could not sprite image " + slice[:path] + "; if it is not a PNG, make sure you have rmagick installed"
|
121
121
|
end
|
122
|
-
|
122
|
+
|
123
123
|
# RMagick has a different API than ChunkyPNG; we have to detect
|
124
124
|
# which one we are using, and use the correct API accordingly.
|
125
125
|
if canvas.respond_to?('columns')
|
@@ -129,10 +129,10 @@ module Chance
|
|
129
129
|
slice_width = canvas.width
|
130
130
|
slice_height = canvas.height
|
131
131
|
end
|
132
|
-
|
132
|
+
|
133
133
|
slice_length = is_horizontal ? slice_width : slice_height
|
134
134
|
slice_size = is_horizontal ? slice_height : slice_width
|
135
|
-
|
135
|
+
|
136
136
|
# When repeating, we must use the least common multiple so that
|
137
137
|
# we can ensure the repeat pattern works even with multiple repeat
|
138
138
|
# sizes. However, we should take into account how much extra we are
|
@@ -145,11 +145,11 @@ module Chance
|
|
145
145
|
else
|
146
146
|
size = [size, slice_size + padding * 2].max
|
147
147
|
end
|
148
|
-
|
148
|
+
|
149
149
|
slice[:slice_width] = slice_width.to_i
|
150
150
|
slice[:slice_height] = slice_height.to_i
|
151
151
|
}
|
152
|
-
|
152
|
+
|
153
153
|
# Sort slices from widest/tallest (dependent on is_horizontal) or is_vertical
|
154
154
|
# NOTE: This means we are technically sorting reversed
|
155
155
|
sprite[:slices].sort! {|a, b|
|
@@ -165,19 +165,19 @@ module Chance
|
|
165
165
|
# We must find a canvas either on the slice (if it was actually sliced),
|
166
166
|
# or on the slice's file. Otherwise, we're in big shit.
|
167
167
|
canvas = slice[:canvas] || slice[:file][:canvas]
|
168
|
-
|
168
|
+
|
169
169
|
slice_width = slice[:slice_width]
|
170
170
|
slice_height = slice[:slice_height]
|
171
|
-
|
171
|
+
|
172
172
|
slice_length = is_horizontal ? slice_width : slice_height
|
173
173
|
slice_size = is_horizontal ? slice_height : slice_width
|
174
|
-
|
174
|
+
|
175
175
|
if slice[:repeat] != "no-repeat" or inset + slice_size + padding * 2 > size or not @options[:optimize_sprites]
|
176
176
|
pos += row_length
|
177
177
|
inset = 0
|
178
178
|
row_length = 0
|
179
179
|
end
|
180
|
-
|
180
|
+
|
181
181
|
|
182
182
|
# We have extras for manual tweaking of offsetx/y. We have to make sure there
|
183
183
|
# is padding for this (on either side)
|
@@ -197,28 +197,28 @@ module Chance
|
|
197
197
|
elsif slice[:max_offset_y] > 0 and not is_horizontal
|
198
198
|
pos += slice[:max_offset_y]
|
199
199
|
end
|
200
|
-
|
200
|
+
|
201
201
|
slice[:sprite_slice_x] = (is_horizontal ? pos : inset)
|
202
202
|
slice[:sprite_slice_y] = (is_horizontal ? inset : pos)
|
203
|
-
|
203
|
+
|
204
204
|
# add padding for x, only if it a) doesn't repeat or b) repeats vertically because it has horizontal layout
|
205
205
|
if slice[:repeat] == "no-repeat" or slice[:repeat] == "repeat-y"
|
206
206
|
slice[:sprite_slice_x] += padding
|
207
207
|
end
|
208
|
-
|
208
|
+
|
209
209
|
if slice[:repeat] == "no-repeat" or slice[:repeat] == "repeat-x"
|
210
210
|
slice[:sprite_slice_y] += padding
|
211
211
|
end
|
212
|
-
|
212
|
+
|
213
213
|
slice[:sprite_slice_width] = slice_width
|
214
214
|
slice[:sprite_slice_height] = slice_height
|
215
215
|
|
216
216
|
inset += slice_size + padding * 2
|
217
|
-
|
217
|
+
|
218
218
|
# We pad the row length ONLY if it is a repeat-x, repeat-y, or no-repeat image.
|
219
|
-
# If it is
|
219
|
+
# If it is "repeat", we do not pad it, because it should be processed raw.
|
220
220
|
row_length = [slice_length + (slice[:repeat] != "repeat" ? padding * 2 : 0), row_length].max
|
221
|
-
|
221
|
+
|
222
222
|
# In 2X, make sure we are aligned on a 2px grid.
|
223
223
|
# We correct this AFTER positioning because we always position on an even grid anyway;
|
224
224
|
# we just may leave that even grid if we have an odd-sized image. We do this after positioning
|
@@ -227,7 +227,7 @@ module Chance
|
|
227
227
|
row_length = (row_length.to_f / 2).ceil * 2
|
228
228
|
inset = (inset.to_f / 2).ceil * 2
|
229
229
|
end
|
230
|
-
|
230
|
+
|
231
231
|
end
|
232
232
|
pos += row_length
|
233
233
|
|
@@ -244,12 +244,12 @@ module Chance
|
|
244
244
|
end
|
245
245
|
|
246
246
|
|
247
|
-
# Generates the image for the specified sprite, putting it in the sprite's
|
247
|
+
# Generates the image for the specified sprite, putting it in the sprite's
|
248
248
|
# :image property.
|
249
249
|
def generate_sprite(sprite)
|
250
250
|
canvas = canvas_for_sprite(sprite)
|
251
251
|
sprite[:canvas] = canvas
|
252
|
-
|
252
|
+
|
253
253
|
# If we are padding sprites, we should paint the background something really
|
254
254
|
# obvious & obnoxious. Say, magenta. That's obnoxious. A nice light purple wouldn't
|
255
255
|
# be bad, but magenta... that will stick out like a sore thumb (I hope)
|
@@ -336,7 +336,9 @@ module Chance
|
|
336
336
|
if slice[:x2]
|
337
337
|
width = sprite[:width] / slice[:proportion]
|
338
338
|
height = sprite[:height] / slice[:proportion]
|
339
|
-
output += "; -webkit-background-size: #{width}px #{height}px"
|
339
|
+
output += "; -webkit-background-size: #{width}px #{height}px\n"
|
340
|
+
output += "; -moz-background-size: #{width}px #{height}px\n"
|
341
|
+
output += "; background-size: #{width}px #{height}px\n"
|
340
342
|
end
|
341
343
|
|
342
344
|
output
|
@@ -380,12 +382,12 @@ module Chance
|
|
380
382
|
generate_sprite(sprite) if not sprite[:has_generated]
|
381
383
|
|
382
384
|
ret = sprite[:canvas].to_blob
|
383
|
-
|
385
|
+
|
384
386
|
if Chance.clear_files_immediately
|
385
387
|
sprite[:canvas] = nil
|
386
388
|
sprite[:has_generated] = false
|
387
389
|
end
|
388
|
-
|
390
|
+
|
389
391
|
ret
|
390
392
|
end
|
391
393
|
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: sproutcore
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 1.9.
|
5
|
+
version: 1.9.2
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Strobe, Inc., Apple Inc. and contributors
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date:
|
13
|
+
date: 2013-04-11 00:00:00 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rack
|
@@ -31,7 +31,7 @@ dependencies:
|
|
31
31
|
requirements:
|
32
32
|
- - ~>
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version: 1.4
|
34
|
+
version: "1.4"
|
35
35
|
type: :runtime
|
36
36
|
version_requirements: *id002
|
37
37
|
- !ruby/object:Gem::Dependency
|
@@ -42,7 +42,7 @@ dependencies:
|
|
42
42
|
requirements:
|
43
43
|
- - ~>
|
44
44
|
- !ruby/object:Gem::Version
|
45
|
-
version: 0.9
|
45
|
+
version: "0.9"
|
46
46
|
type: :runtime
|
47
47
|
version_requirements: *id003
|
48
48
|
- !ruby/object:Gem::Dependency
|
@@ -64,7 +64,7 @@ dependencies:
|
|
64
64
|
requirements:
|
65
65
|
- - ~>
|
66
66
|
- !ruby/object:Gem::Version
|
67
|
-
version: 0.14
|
67
|
+
version: "0.14"
|
68
68
|
type: :runtime
|
69
69
|
version_requirements: *id005
|
70
70
|
- !ruby/object:Gem::Dependency
|
@@ -75,7 +75,7 @@ dependencies:
|
|
75
75
|
requirements:
|
76
76
|
- - ~>
|
77
77
|
- !ruby/object:Gem::Version
|
78
|
-
version: 3.1
|
78
|
+
version: "3.1"
|
79
79
|
type: :runtime
|
80
80
|
version_requirements: *id006
|
81
81
|
- !ruby/object:Gem::Dependency
|
@@ -86,7 +86,7 @@ dependencies:
|
|
86
86
|
requirements:
|
87
87
|
- - ~>
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: 3.1
|
89
|
+
version: "3.1"
|
90
90
|
type: :runtime
|
91
91
|
version_requirements: *id007
|
92
92
|
- !ruby/object:Gem::Dependency
|
@@ -97,7 +97,7 @@ dependencies:
|
|
97
97
|
requirements:
|
98
98
|
- - ~>
|
99
99
|
- !ruby/object:Gem::Version
|
100
|
-
version: 0.11
|
100
|
+
version: "0.11"
|
101
101
|
type: :runtime
|
102
102
|
version_requirements: *id008
|
103
103
|
- !ruby/object:Gem::Dependency
|
@@ -108,7 +108,7 @@ dependencies:
|
|
108
108
|
requirements:
|
109
109
|
- - ~>
|
110
110
|
- !ruby/object:Gem::Version
|
111
|
-
version: 1.2
|
111
|
+
version: "1.2"
|
112
112
|
type: :runtime
|
113
113
|
version_requirements: *id009
|
114
114
|
- !ruby/object:Gem::Dependency
|
@@ -128,9 +128,9 @@ dependencies:
|
|
128
128
|
requirement: &id011 !ruby/object:Gem::Requirement
|
129
129
|
none: false
|
130
130
|
requirements:
|
131
|
-
- -
|
131
|
+
- - ~>
|
132
132
|
- !ruby/object:Gem::Version
|
133
|
-
version: 1.0
|
133
|
+
version: "1.0"
|
134
134
|
type: :runtime
|
135
135
|
version_requirements: *id011
|
136
136
|
- !ruby/object:Gem::Dependency
|
@@ -152,7 +152,7 @@ dependencies:
|
|
152
152
|
requirements:
|
153
153
|
- - ~>
|
154
154
|
- !ruby/object:Gem::Version
|
155
|
-
version: 1.2
|
155
|
+
version: "1.2"
|
156
156
|
type: :runtime
|
157
157
|
version_requirements: *id013
|
158
158
|
- !ruby/object:Gem::Dependency
|
@@ -163,7 +163,7 @@ dependencies:
|
|
163
163
|
requirements:
|
164
164
|
- - ~>
|
165
165
|
- !ruby/object:Gem::Version
|
166
|
-
version: 0.6
|
166
|
+
version: "0.6"
|
167
167
|
type: :development
|
168
168
|
version_requirements: *id014
|
169
169
|
- !ruby/object:Gem::Dependency
|
@@ -174,7 +174,7 @@ dependencies:
|
|
174
174
|
requirements:
|
175
175
|
- - ~>
|
176
176
|
- !ruby/object:Gem::Version
|
177
|
-
version: 2.5
|
177
|
+
version: "2.5"
|
178
178
|
type: :development
|
179
179
|
version_requirements: *id015
|
180
180
|
- !ruby/object:Gem::Dependency
|
@@ -196,7 +196,7 @@ dependencies:
|
|
196
196
|
requirements:
|
197
197
|
- - ~>
|
198
198
|
- !ruby/object:Gem::Version
|
199
|
-
version: 1.2
|
199
|
+
version: "1.2"
|
200
200
|
type: :development
|
201
201
|
version_requirements: *id017
|
202
202
|
- !ruby/object:Gem::Dependency
|
@@ -207,7 +207,7 @@ dependencies:
|
|
207
207
|
requirements:
|
208
208
|
- - ~>
|
209
209
|
- !ruby/object:Gem::Version
|
210
|
-
version: 4.2
|
210
|
+
version: "4.2"
|
211
211
|
type: :development
|
212
212
|
version_requirements: *id018
|
213
213
|
- !ruby/object:Gem::Dependency
|
@@ -218,7 +218,7 @@ dependencies:
|
|
218
218
|
requirements:
|
219
219
|
- - ~>
|
220
220
|
- !ruby/object:Gem::Version
|
221
|
-
version: 1.0
|
221
|
+
version: "1.0"
|
222
222
|
type: :development
|
223
223
|
version_requirements: *id019
|
224
224
|
description: SproutCore is a platform for building native look-and-feel applications on the web. This Ruby library includes a copy of the SproutCore JavaScript framework as well as a Ruby-based build system called Abbot.
|
@@ -272,6 +272,7 @@ files:
|
|
272
272
|
- lib/gen/app/templates/apps/@target_name@/main.js
|
273
273
|
- lib/gen/app/templates/apps/@target_name@/resources/_theme.css
|
274
274
|
- lib/gen/app/templates/apps/@target_name@/resources/loading.rhtml
|
275
|
+
- lib/gen/app/templates/apps/@target_name@/resources/main_page.css
|
275
276
|
- lib/gen/app/templates/apps/@target_name@/resources/main_page.js
|
276
277
|
- lib/gen/app/templates/apps/@target_name@/theme.js
|
277
278
|
- lib/gen/controller/Buildfile
|
@@ -286,6 +287,7 @@ files:
|
|
286
287
|
- lib/gen/design/Buildfile
|
287
288
|
- lib/gen/design/README
|
288
289
|
- lib/gen/design/USAGE
|
290
|
+
- lib/gen/design/templates/resources/@filename@.css
|
289
291
|
- lib/gen/design/templates/resources/@filename@.js
|
290
292
|
- lib/gen/framework/Buildfile
|
291
293
|
- lib/gen/framework/README
|
@@ -316,10 +318,11 @@ files:
|
|
316
318
|
- lib/gen/project/USAGE
|
317
319
|
- lib/gen/project/templates/@filename@/Buildfile
|
318
320
|
- lib/gen/project/templates/@filename@/README
|
319
|
-
- lib/gen/
|
320
|
-
- lib/gen/
|
321
|
-
- lib/gen/
|
322
|
-
- lib/gen/
|
321
|
+
- lib/gen/state/Buildfile
|
322
|
+
- lib/gen/state/README
|
323
|
+
- lib/gen/state/USAGE
|
324
|
+
- lib/gen/state/templates/states/@filename@_state.js
|
325
|
+
- lib/gen/state/templates/tests/states/@filename@_test.js
|
323
326
|
- lib/gen/statechart_app/Buildfile
|
324
327
|
- lib/gen/statechart_app/README
|
325
328
|
- lib/gen/statechart_app/USAGE
|
@@ -328,6 +331,7 @@ files:
|
|
328
331
|
- lib/gen/statechart_app/templates/apps/@target_name@/main.js
|
329
332
|
- lib/gen/statechart_app/templates/apps/@target_name@/resources/_theme.css
|
330
333
|
- lib/gen/statechart_app/templates/apps/@target_name@/resources/loading.rhtml
|
334
|
+
- lib/gen/statechart_app/templates/apps/@target_name@/resources/main_page.css
|
331
335
|
- lib/gen/statechart_app/templates/apps/@target_name@/resources/main_page.js
|
332
336
|
- lib/gen/statechart_app/templates/apps/@target_name@/statechart.js
|
333
337
|
- lib/gen/statechart_app/templates/apps/@target_name@/states/ready_state.js
|
@@ -713,6 +717,7 @@ files:
|
|
713
717
|
- spec/lib/buildfile_commands/task_spec.rb
|
714
718
|
- spec/lib/helpers/minifier.rb
|
715
719
|
- spec/lib/helpers/packing_optimizer/optimize_spec.rb
|
720
|
+
- spec/lib/models/generator/snake_case_spec.rb
|
716
721
|
- spec/lib/models/hash_struct/deep_clone_spec.rb
|
717
722
|
- spec/lib/models/hash_struct/has_options_spec.rb
|
718
723
|
- spec/lib/models/hash_struct/hash_spec.rb
|
@@ -1189,6 +1194,8 @@ files:
|
|
1189
1194
|
- lib/frameworks/sproutcore/frameworks/debug/core.js
|
1190
1195
|
- lib/frameworks/sproutcore/frameworks/desktop/core.js
|
1191
1196
|
- lib/frameworks/sproutcore/frameworks/desktop/debug/drag.js
|
1197
|
+
- lib/frameworks/sproutcore/frameworks/desktop/debug/resources/a_sample_image.jpg
|
1198
|
+
- lib/frameworks/sproutcore/frameworks/desktop/debug/resources/iframe.html
|
1192
1199
|
- lib/frameworks/sproutcore/frameworks/desktop/mixins/border.js
|
1193
1200
|
- lib/frameworks/sproutcore/frameworks/desktop/mixins/collection_fast_path.js
|
1194
1201
|
- lib/frameworks/sproutcore/frameworks/desktop/mixins/collection_group.js
|
@@ -1231,9 +1238,6 @@ files:
|
|
1231
1238
|
- lib/frameworks/sproutcore/frameworks/desktop/resources/alert.css
|
1232
1239
|
- lib/frameworks/sproutcore/frameworks/desktop/resources/button_view.css
|
1233
1240
|
- lib/frameworks/sproutcore/frameworks/desktop/resources/checkbox_view.css
|
1234
|
-
- lib/frameworks/sproutcore/frameworks/desktop/resources/debug/a_sample_image.jpg
|
1235
|
-
- lib/frameworks/sproutcore/frameworks/desktop/resources/debug/apple-logo1.jpeg
|
1236
|
-
- lib/frameworks/sproutcore/frameworks/desktop/resources/debug/iframe.html
|
1237
1241
|
- lib/frameworks/sproutcore/frameworks/desktop/resources/disclosure.css
|
1238
1242
|
- lib/frameworks/sproutcore/frameworks/desktop/resources/drag.css
|
1239
1243
|
- lib/frameworks/sproutcore/frameworks/desktop/resources/icons.css
|
@@ -1728,7 +1732,7 @@ files:
|
|
1728
1732
|
- lib/frameworks/sproutcore/frameworks/foundation/mixins/control.js
|
1729
1733
|
- lib/frameworks/sproutcore/frameworks/foundation/mixins/editable.js
|
1730
1734
|
- lib/frameworks/sproutcore/frameworks/foundation/mixins/flowed_layout.js
|
1731
|
-
- lib/frameworks/sproutcore/frameworks/foundation/mixins/
|
1735
|
+
- lib/frameworks/sproutcore/frameworks/foundation/mixins/gesturable.js
|
1732
1736
|
- lib/frameworks/sproutcore/frameworks/foundation/mixins/inline_editable.js
|
1733
1737
|
- lib/frameworks/sproutcore/frameworks/foundation/mixins/inline_editor.js
|
1734
1738
|
- lib/frameworks/sproutcore/frameworks/foundation/mixins/inline_editor_delegate.js
|
@@ -2415,7 +2419,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
2415
2419
|
requirements: []
|
2416
2420
|
|
2417
2421
|
rubyforge_project: sproutcore
|
2418
|
-
rubygems_version: 1.8.
|
2422
|
+
rubygems_version: 1.8.25
|
2419
2423
|
signing_key:
|
2420
2424
|
specification_version: 3
|
2421
2425
|
summary: SproutCore is a platform for building native look-and-feel applications on the web
|