themepile-abstractio 1.0.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.
Files changed (84) hide show
  1. checksums.yaml +15 -0
  2. data/.gitignore +28 -0
  3. data/.rbenv-version +1 -0
  4. data/CONTRIBUTING.md +53 -0
  5. data/Gemfile +4 -0
  6. data/LICENSE +22 -0
  7. data/README.md +136 -0
  8. data/Rakefile +2 -0
  9. data/abstractio.gemspec +18 -0
  10. data/js/foundation/foundation.alerts.js +50 -0
  11. data/js/foundation/foundation.clearing.js +516 -0
  12. data/js/foundation/foundation.cookie.js +74 -0
  13. data/js/foundation/foundation.dropdown.js +159 -0
  14. data/js/foundation/foundation.forms.js +516 -0
  15. data/js/foundation/foundation.joyride.js +842 -0
  16. data/js/foundation/foundation.js +403 -0
  17. data/js/foundation/foundation.magellan.js +130 -0
  18. data/js/foundation/foundation.orbit.js +373 -0
  19. data/js/foundation/foundation.placeholder.js +159 -0
  20. data/js/foundation/foundation.reveal.js +276 -0
  21. data/js/foundation/foundation.section.js +409 -0
  22. data/js/foundation/foundation.tooltips.js +206 -0
  23. data/js/foundation/foundation.topbar.js +252 -0
  24. data/js/foundation/index.js +16 -0
  25. data/js/vendor/custom.modernizr.js +4 -0
  26. data/js/vendor/jquery.js +9597 -0
  27. data/js/vendor/zepto.js +1884 -0
  28. data/lib/abstractio.rb +17 -0
  29. data/lib/abstractio/engine.rb +20 -0
  30. data/lib/abstractio/generators/USAGE +15 -0
  31. data/lib/abstractio/generators/install_generator.rb +54 -0
  32. data/lib/abstractio/generators/templates/application.html.erb +46 -0
  33. data/lib/abstractio/generators/templates/application.html.haml +31 -0
  34. data/lib/abstractio/generators/templates/application.html.slim +28 -0
  35. data/lib/abstractio/version.rb +3 -0
  36. data/lib/themepile-abstractio.rb +17 -0
  37. data/scss/abstractio.scss +46 -0
  38. data/scss/abstractio/_variables.scss +1224 -0
  39. data/scss/abstractio/components/_alert-boxes.scss +107 -0
  40. data/scss/abstractio/components/_block-grid.scss +68 -0
  41. data/scss/abstractio/components/_breadcrumbs.scss +125 -0
  42. data/scss/abstractio/components/_button-groups.scss +89 -0
  43. data/scss/abstractio/components/_buttons.scss +227 -0
  44. data/scss/abstractio/components/_clearing.scss +224 -0
  45. data/scss/abstractio/components/_custom-forms.scss +263 -0
  46. data/scss/abstractio/components/_dropdown-buttons.scss +115 -0
  47. data/scss/abstractio/components/_dropdown.scss +150 -0
  48. data/scss/abstractio/components/_flex-video.scss +46 -0
  49. data/scss/abstractio/components/_forms.scss +362 -0
  50. data/scss/abstractio/components/_global.scss +280 -0
  51. data/scss/abstractio/components/_grid.scss +186 -0
  52. data/scss/abstractio/components/_inline-lists.scss +53 -0
  53. data/scss/abstractio/components/_joyride.scss +215 -0
  54. data/scss/abstractio/components/_keystrokes.scss +57 -0
  55. data/scss/abstractio/components/_labels.scss +85 -0
  56. data/scss/abstractio/components/_magellan.scss +23 -0
  57. data/scss/abstractio/components/_orbit.scss +213 -0
  58. data/scss/abstractio/components/_pagination.scss +100 -0
  59. data/scss/abstractio/components/_panels.scss +77 -0
  60. data/scss/abstractio/components/_pricing-tables.scss +131 -0
  61. data/scss/abstractio/components/_progress-bars.scss +71 -0
  62. data/scss/abstractio/components/_reveal.scss +132 -0
  63. data/scss/abstractio/components/_section.scss +318 -0
  64. data/scss/abstractio/components/_side-nav.scss +69 -0
  65. data/scss/abstractio/components/_split-buttons.scss +167 -0
  66. data/scss/abstractio/components/_sub-nav.scss +68 -0
  67. data/scss/abstractio/components/_switch.scss +251 -0
  68. data/scss/abstractio/components/_tables.scss +84 -0
  69. data/scss/abstractio/components/_thumbs.scss +48 -0
  70. data/scss/abstractio/components/_tooltips.scss +117 -0
  71. data/scss/abstractio/components/_top-bar.scss +495 -0
  72. data/scss/abstractio/components/_type.scss +426 -0
  73. data/scss/abstractio/components/_visibility.scss +322 -0
  74. data/scss/normalize.scss +402 -0
  75. data/templates/project/.gitignore +44 -0
  76. data/templates/project/MIT-LICENSE.txt +20 -0
  77. data/templates/project/config.rb +26 -0
  78. data/templates/project/humans.txt +8 -0
  79. data/templates/project/index.html +124 -0
  80. data/templates/project/manifest.rb +45 -0
  81. data/templates/project/robots.txt +4 -0
  82. data/templates/project/scss/app.scss +48 -0
  83. data/templates/upgrade/manifest.rb +34 -0
  84. metadata +153 -0
@@ -0,0 +1,26 @@
1
+ require 'zurb-foundation'
2
+ # Require any additional compass plugins here.
3
+
4
+
5
+ # Set this to the root of your project when deployed:
6
+ http_path = "/"
7
+ css_dir = "stylesheets"
8
+ sass_dir = "sass"
9
+ images_dir = "images"
10
+ javascripts_dir = "javascripts"
11
+
12
+ # You can select your preferred output style here (can be overridden via the command line):
13
+ # output_style = :expanded or :nested or :compact or :compressed
14
+
15
+ # To enable relative paths to assets via compass helper functions. Uncomment:
16
+ # relative_assets = true
17
+
18
+ # To disable debugging comments that display the original location of your selectors. Uncomment:
19
+ # line_comments = false
20
+
21
+
22
+ # If you prefer the indented syntax, you might want to regenerate this
23
+ # project again passing --syntax sass, or you can uncomment this:
24
+ # preferred_syntax = :sass
25
+ # and then run:
26
+ # sass-convert -R --from scss --to sass sass scss && rm -rf sass && mv scss sass
@@ -0,0 +1,8 @@
1
+ /* Foundation was made by ZURB, an interaction design and design strategy firm in Campbell, CA */
2
+ /* zurb.com */
3
+ /* humanstxt.org */
4
+
5
+ /* SITE */
6
+ Standards: HTML5, CSS3
7
+ Components: jQuery, Orbit, Reveal
8
+ Software: Coda, Textmate, Git
@@ -0,0 +1,124 @@
1
+ <% template = @template if defined?(@template) %>
2
+ <!DOCTYPE html>
3
+ <!--[if IE 8]> <html class="no-js lt-ie9" lang="en" <% if template[:options][:rtl] %>dir="rtl"<% end %>> <![endif]-->
4
+ <!--[if gt IE 8]><!--> <html class="no-js" lang="en" <% if template[:options][:rtl] %>dir="rtl"<% end %>> <!--<![endif]-->
5
+
6
+ <head>
7
+ <meta charset="utf-8" />
8
+ <meta name="viewport" content="width=device-width" />
9
+ <title>Foundation 4</title>
10
+
11
+ <% if template[:options][:customizer_used] %>
12
+ <link rel="stylesheet" href="<%= css_dir %>/foundation.css" />
13
+ <% else %>
14
+ <link rel="stylesheet" href="<%= css_dir %>/app.css" />
15
+ <% end %>
16
+
17
+ <script src="<%= javascripts_dir %>/vendor/custom.modernizr.js"></script>
18
+
19
+ </head>
20
+ <body>
21
+
22
+ <div class="row">
23
+ <div class="large-12 columns">
24
+ <h2>Welcome to Foundation</h2>
25
+ <p>This is version <%= template[:options][:version] %>.</p>
26
+ <hr />
27
+ </div>
28
+ </div>
29
+
30
+ <div class="row">
31
+ <div class="large-8 columns">
32
+ <h3>The Grid</h3>
33
+
34
+ <!-- Grid Example -->
35
+ <div class="row">
36
+ <div class="large-12 columns">
37
+ <div class="panel">
38
+ <p>This is a twelve column section in a row. Each of these includes a div.panel element so you can see where the columns are - it's not required at all for the grid.</p>
39
+ </div>
40
+ </div>
41
+ </div>
42
+ <div class="row">
43
+ <div class="large-6 columns">
44
+ <div class="panel">
45
+ <p>Six columns</p>
46
+ </div>
47
+ </div>
48
+ <div class="large-6 columns">
49
+ <div class="panel">
50
+ <p>Six columns</p>
51
+ </div>
52
+ </div>
53
+ </div>
54
+ <div class="row">
55
+ <div class="large-4 columns">
56
+ <div class="panel">
57
+ <p>Four columns</p>
58
+ </div>
59
+ </div>
60
+ <div class="large-4 columns">
61
+ <div class="panel">
62
+ <p>Four columns</p>
63
+ </div>
64
+ </div>
65
+ <div class="large-4 columns">
66
+ <div class="panel">
67
+ <p>Four columns</p>
68
+ </div>
69
+ </div>
70
+ </div>
71
+
72
+ <h3>Buttons</h3>
73
+
74
+ <div class="row">
75
+ <div class="large-6 columns">
76
+ <p><a href="#" class="small button">Small Button</a></p>
77
+ <p><a href="#" class="button">Medium Button</a></p>
78
+ <p><a href="#" class="large button">Large Button</a></p>
79
+ </div>
80
+ <div class="large-6 columns">
81
+ <p><a href="#" class="small alert button">Small Alert Button</a></p>
82
+ <p><a href="#" class="success button">Medium Success Button</a></p>
83
+ <p><a href="#" class="large secondary button">Large Secondary Button</a></p>
84
+ </div>
85
+ </div>
86
+ </div>
87
+
88
+ <div class="large-4 columns">
89
+ <h4>Getting Started</h4>
90
+ <p>We're stoked you want to try Foundation! To get going, this file (index.html) includes some basic styles you can modify, play around with, or totally destroy to get going.</p>
91
+
92
+ <h4>Other Resources</h4>
93
+ <p>Once you've exhausted the fun in this document, you should check out:</p>
94
+ <ul class="disc">
95
+ <li><a href="http://foundation.zurb.com/docs">Foundation Documentation</a><br />Everything you need to know about using the framework.</li>
96
+ <li><a href="http://github.com/zurb/foundation">Foundation on Github</a><br />Latest code, issue reports, feature requests and more.</li>
97
+ <li><a href="http://twitter.com/foundationzurb">@foundationzurb</a><br />Ping us on Twitter if you have questions. If you build something with this we'd love to see it (and send you a totally boss sticker).</li>
98
+ </ul>
99
+ </div>
100
+ </div>
101
+
102
+ <script>
103
+ document.write('<script src=' +
104
+ ('__proto__' in {} ? '<%= javascripts_dir %>/vendor/zepto' : '<%= javascripts_dir %>/vendor/jquery') +
105
+ '.js><\/script>')
106
+ </script>
107
+ <% if template[:options][:customizer_used] %>
108
+ <script src="<%= javascripts_dir %>/foundation.min.js"></script>
109
+ <!--
110
+ <% template[:options][:javascripts].each do |f| %>
111
+ <script src="<%= javascripts_dir %>/foundation/<%= f %>"></script>
112
+ <% end %>
113
+ -->
114
+ <% else %>
115
+ <script src="<%= javascripts_dir %>/foundation/foundation.js"></script>
116
+ <% template[:options][:javascripts].each do |f| %>
117
+ <script src="<%= javascripts_dir %>/<%= f %>"></script>
118
+ <% end %>
119
+ <% end %>
120
+ <script>
121
+ $(document).foundation();
122
+ </script>
123
+ </body>
124
+ </html>
@@ -0,0 +1,45 @@
1
+ description 'Foundation Compass Gem'
2
+
3
+ # Sass Files
4
+ stylesheet '../../scss/normalize.scss', :to => '_normalize.scss'
5
+ stylesheet '../../scss/foundation/_variables.scss', :to => '_settings.scss'
6
+ stylesheet 'scss/app.scss', :to => 'app.scss', :media => "screen, projector, print"
7
+
8
+ # Make sure you list all the project template files here in the manifest.
9
+ file 'humans.txt'
10
+ file 'robots.txt'
11
+ file 'MIT-LICENSE.txt'
12
+
13
+ def copy_js_from(relative_path, prefix_path, excludes=[])
14
+ absolute_path = File.join(File.dirname(__FILE__), relative_path, prefix_path)
15
+ js_files = Dir.glob("#{absolute_path}/*.js")
16
+ js_files.reject! {|f| excludes.include? File.basename(f)}
17
+ js_files.each do |js|
18
+ javascript "#{relative_path}/#{prefix_path}/#{File.basename(js)}",
19
+ :to => "#{prefix_path}/#{File.basename(js)}"
20
+ end
21
+ return js_files.map {|f| "#{prefix_path}/#{File.basename(f)}"}
22
+ end
23
+
24
+ javascripts = copy_js_from("../../js", "foundation", ["foundation.js", "index.js"])
25
+ vendor_javascripts = copy_js_from("../../js", "vendor")
26
+
27
+ javascript "../../js/foundation/foundation.js", :to => "foundation/foundation.js"
28
+
29
+ html 'index.html', :erb => true, :javascripts => javascripts, :version => Foundation::VERSION
30
+
31
+ help %Q{
32
+
33
+ If you need help, email us at foundation@zurb.com or visit foundation.zurb.com"
34
+
35
+ }
36
+
37
+ welcome_message %Q{
38
+
39
+ w00t! You're using ZURB Foundation, now go forth and rock 'n roll!
40
+
41
+ }
42
+
43
+ # file 'config.rb'
44
+
45
+ # no_configuration_file!
@@ -0,0 +1,4 @@
1
+ # www.robotstxt.org/
2
+ # www.google.com/support/webmasters/bin/answer.py?hl=en&answer=156449
3
+
4
+ User-agent: *
@@ -0,0 +1,48 @@
1
+ // Global Foundation Settings
2
+ @import "settings";
3
+
4
+ // Comment out this import if you don't want to use normalize
5
+ @import "normalize";
6
+
7
+ // Comment out this import if you are customizing you imports below
8
+ @import "foundation";
9
+
10
+ // Import specific parts of Foundation by commenting the import "foundation"
11
+ // and uncommenting what you want below. You must uncomment the following if customizing
12
+
13
+ // @import "foundation/components/global"; // *always required
14
+ // @import "foundation/components/grid";
15
+ // @import "foundation/components/visibility";
16
+ // @import "foundation/components/block-grid";
17
+ // @import "foundation/components/type";
18
+ // @import "foundation/components/buttons";
19
+ // @import "foundation/components/forms"; // *requires components/buttons
20
+ // @import "foundation/components/custom-forms"; // *requires components/buttons, components/forms
21
+ // @import "foundation/components/button-groups"; // *requires components/buttons
22
+ // @import "foundation/components/dropdown-buttons"; // *requires components/buttons
23
+ // @import "foundation/components/split-buttons"; // *requires components/buttons
24
+ // @import "foundation/components/flex-video";
25
+ // @import "foundation/components/section";
26
+ // @import "foundation/components/top-bar"; // *requires components/grid
27
+ // @import "foundation/components/orbit";
28
+ // @import "foundation/components/reveal";
29
+ // @import "foundation/components/joyride";
30
+ // @import "foundation/components/clearing";
31
+ // @import "foundation/components/alert-boxes";
32
+ // @import "foundation/components/breadcrumbs";
33
+ // @import "foundation/components/keystrokes";
34
+ // @import "foundation/components/labels";
35
+ // @import "foundation/components/inline-lists";
36
+ // @import "foundation/components/pagination";
37
+ // @import "foundation/components/panels";
38
+ // @import "foundation/components/pricing-tables";
39
+ // @import "foundation/components/progress-bars";
40
+ // @import "foundation/components/side-nav";
41
+ // @import "foundation/components/sub-nav";
42
+ // @import "foundation/components/switch";
43
+ // @import "foundation/components/magellan";
44
+ // @import "foundation/components/tables";
45
+ // @import "foundation/components/thumbs";
46
+ // @import "foundation/components/tooltips";
47
+ // @import "foundation/components/dropdown";
48
+
@@ -0,0 +1,34 @@
1
+ description 'Foundation Compass Gem'
2
+
3
+ stylesheet '../project/scss/_settings.scss', :to => '_settings.scss'
4
+ stylesheet '../project/scss/app.scss', :to => 'app.scss'
5
+ stylesheet '../../scss/normalize.scss', :to => 'normalize.scss', :media => "screen, projector, print"
6
+
7
+ def copy_js_from(relative_path, prefix_path, excludes=[])
8
+ absolute_path = File.join(File.dirname(__FILE__), relative_path, prefix_path)
9
+ js_files = Dir.glob("#{absolute_path}/*.js")
10
+ js_files.reject! {|f| excludes.include? File.basename(f)}
11
+ js_files.each do |js|
12
+ javascript "#{relative_path}/#{prefix_path}/#{File.basename(js)}",
13
+ :to => "#{prefix_path}/#{File.basename(js)}"
14
+ end
15
+ end
16
+
17
+ javascripts = copy_js_from("../../js", "foundation", ["index.js"])
18
+ copy_js_from("../../js", "vendor")
19
+
20
+ html '../project/index.html', :erb => true, :javascripts => javascripts, :version => Foundation::VERSION, :to => 'upgrade.html'
21
+
22
+ help %Q{
23
+
24
+ If you need help, email us at foundation@zurb.com or visit foundation.zurb.com"
25
+
26
+ }
27
+
28
+ welcome_message %Q{
29
+
30
+ bundle exec compass install -r zurb-foundation foundation/upgrade
31
+
32
+ Your project assets have been upgraded, w00t! It's possible there have been additional customizable settings added to Foundation so you should check out http://foundation.zurb.com/docs/gem-install.php#settings.
33
+
34
+ }
metadata ADDED
@@ -0,0 +1,153 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: themepile-abstractio
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.2
5
+ platform: ruby
6
+ authors:
7
+ - ThemePile
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-05-15 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: sass
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ! '>='
18
+ - !ruby/object:Gem::Version
19
+ version: 3.2.0
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ! '>='
25
+ - !ruby/object:Gem::Version
26
+ version: 3.2.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ! '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ description: Powerful, scalable, Sass-based, BEM, OOCSS framework
42
+ email:
43
+ - shaggysmile@gmail.com
44
+ executables: []
45
+ extensions: []
46
+ extra_rdoc_files: []
47
+ files:
48
+ - .gitignore
49
+ - .rbenv-version
50
+ - CONTRIBUTING.md
51
+ - Gemfile
52
+ - LICENSE
53
+ - README.md
54
+ - Rakefile
55
+ - abstractio.gemspec
56
+ - js/foundation/foundation.alerts.js
57
+ - js/foundation/foundation.clearing.js
58
+ - js/foundation/foundation.cookie.js
59
+ - js/foundation/foundation.dropdown.js
60
+ - js/foundation/foundation.forms.js
61
+ - js/foundation/foundation.joyride.js
62
+ - js/foundation/foundation.js
63
+ - js/foundation/foundation.magellan.js
64
+ - js/foundation/foundation.orbit.js
65
+ - js/foundation/foundation.placeholder.js
66
+ - js/foundation/foundation.reveal.js
67
+ - js/foundation/foundation.section.js
68
+ - js/foundation/foundation.tooltips.js
69
+ - js/foundation/foundation.topbar.js
70
+ - js/foundation/index.js
71
+ - js/vendor/custom.modernizr.js
72
+ - js/vendor/jquery.js
73
+ - js/vendor/zepto.js
74
+ - lib/abstractio.rb
75
+ - lib/abstractio/engine.rb
76
+ - lib/abstractio/generators/USAGE
77
+ - lib/abstractio/generators/install_generator.rb
78
+ - lib/abstractio/generators/templates/application.html.erb
79
+ - lib/abstractio/generators/templates/application.html.haml
80
+ - lib/abstractio/generators/templates/application.html.slim
81
+ - lib/abstractio/version.rb
82
+ - lib/themepile-abstractio.rb
83
+ - scss/abstractio.scss
84
+ - scss/abstractio/_variables.scss
85
+ - scss/abstractio/components/_alert-boxes.scss
86
+ - scss/abstractio/components/_block-grid.scss
87
+ - scss/abstractio/components/_breadcrumbs.scss
88
+ - scss/abstractio/components/_button-groups.scss
89
+ - scss/abstractio/components/_buttons.scss
90
+ - scss/abstractio/components/_clearing.scss
91
+ - scss/abstractio/components/_custom-forms.scss
92
+ - scss/abstractio/components/_dropdown-buttons.scss
93
+ - scss/abstractio/components/_dropdown.scss
94
+ - scss/abstractio/components/_flex-video.scss
95
+ - scss/abstractio/components/_forms.scss
96
+ - scss/abstractio/components/_global.scss
97
+ - scss/abstractio/components/_grid.scss
98
+ - scss/abstractio/components/_inline-lists.scss
99
+ - scss/abstractio/components/_joyride.scss
100
+ - scss/abstractio/components/_keystrokes.scss
101
+ - scss/abstractio/components/_labels.scss
102
+ - scss/abstractio/components/_magellan.scss
103
+ - scss/abstractio/components/_orbit.scss
104
+ - scss/abstractio/components/_pagination.scss
105
+ - scss/abstractio/components/_panels.scss
106
+ - scss/abstractio/components/_pricing-tables.scss
107
+ - scss/abstractio/components/_progress-bars.scss
108
+ - scss/abstractio/components/_reveal.scss
109
+ - scss/abstractio/components/_section.scss
110
+ - scss/abstractio/components/_side-nav.scss
111
+ - scss/abstractio/components/_split-buttons.scss
112
+ - scss/abstractio/components/_sub-nav.scss
113
+ - scss/abstractio/components/_switch.scss
114
+ - scss/abstractio/components/_tables.scss
115
+ - scss/abstractio/components/_thumbs.scss
116
+ - scss/abstractio/components/_tooltips.scss
117
+ - scss/abstractio/components/_top-bar.scss
118
+ - scss/abstractio/components/_type.scss
119
+ - scss/abstractio/components/_visibility.scss
120
+ - scss/normalize.scss
121
+ - templates/project/.gitignore
122
+ - templates/project/MIT-LICENSE.txt
123
+ - templates/project/config.rb
124
+ - templates/project/humans.txt
125
+ - templates/project/index.html
126
+ - templates/project/manifest.rb
127
+ - templates/project/robots.txt
128
+ - templates/project/scss/app.scss
129
+ - templates/upgrade/manifest.rb
130
+ homepage: http://abstractio.themepile.co.uk
131
+ licenses: []
132
+ metadata: {}
133
+ post_install_message:
134
+ rdoc_options: []
135
+ require_paths:
136
+ - lib
137
+ required_ruby_version: !ruby/object:Gem::Requirement
138
+ requirements:
139
+ - - ! '>='
140
+ - !ruby/object:Gem::Version
141
+ version: '0'
142
+ required_rubygems_version: !ruby/object:Gem::Requirement
143
+ requirements:
144
+ - - ! '>='
145
+ - !ruby/object:Gem::Version
146
+ version: '0'
147
+ requirements: []
148
+ rubyforge_project:
149
+ rubygems_version: 2.0.3
150
+ signing_key:
151
+ specification_version: 4
152
+ summary: Powerful, scalable, Sass-based, BEM, OOCSS framework
153
+ test_files: []