sproutcore 1.9.1 → 1.9.2
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/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
|