spinebox 0.0.13 → 0.0.14

Sign up to get free protection for your applications and to get access to all the features.
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+ -f d
data/README.textile CHANGED
@@ -14,6 +14,12 @@ bc.. $ gem install spinebox
14
14
 
15
15
  h3. Usage
16
16
 
17
+ Create your javascript app or HTML files just as you're used to it.
18
+
19
+ In the HTML files you can use partials just like in rails:
20
+
21
+ bc.. render :partial => "navigation.html"
22
+
17
23
  h4. Create new project
18
24
 
19
25
  bc.. # Create new project an start developing
@@ -29,6 +29,7 @@ module Spinebox
29
29
 
30
30
  def self.compile_views
31
31
  Spinebox.views.each_logical_path do |logical_path|
32
+ next if logical_path.start_with?("_")
32
33
  asset = Spinebox.views[logical_path]
33
34
  asset.write_to(File.join("public", asset.logical_path))
34
35
  end
@@ -1,4 +1,6 @@
1
1
  module Spinebox
2
+ class RenderError < StandardError; end
3
+
2
4
  module ERBContext
3
5
 
4
6
  # Includes javascript tags in the erb. If concatenation is disabled it returns multiple tags,
@@ -21,6 +23,17 @@ module Spinebox
21
23
  end
22
24
  end
23
25
 
26
+ # Renders, e.g. a partial into another view
27
+ def render params = {}
28
+ raise RenderError, "Render without :partial called" if params[:partial].nil?
29
+ raise RenderError, "Partial needs a file extension" if params[:partial].split(".").size == 0
30
+
31
+ partial = Spinebox.views["_#{params[:partial]}"]
32
+ raise RenderError, "Partial not found" if partial.nil?
33
+
34
+ partial.to_s
35
+ end
36
+
24
37
  private
25
38
 
26
39
  # Access an asset from the assets
@@ -0,0 +1 @@
1
+ <p>This is a partial</p>
@@ -1,3 +1,3 @@
1
1
  module Spinebox
2
- VERSION = "0.0.13"
2
+ VERSION = "0.0.14"
3
3
  end
data/lib/spinebox.rb CHANGED
@@ -6,7 +6,7 @@ require 'eco'
6
6
  require 'sass'
7
7
  require "colorize"
8
8
  require "ostruct"
9
- require 'active_support/all'
9
+ require 'active_support/core_ext'
10
10
  require 'erb'
11
11
 
12
12
  require "spinebox/version"
@@ -24,6 +24,8 @@ describe Spinebox::Compiler do
24
24
  "public/assets/test.png",
25
25
  "public/index.html"
26
26
  ].each{ |file| File.exists?(file).should be_true }
27
+
28
+ File.exists?("public/_partial.html").should be_false
27
29
  end
28
30
 
29
31
  end
@@ -8,7 +8,6 @@ describe Spinebox::ERBContext do
8
8
  end
9
9
 
10
10
  context "javascript" do
11
-
12
11
  it "should offer asset tags concatenated" do
13
12
  Spinebox.config.concatenate = true
14
13
  javascript_include_tag("application").split("\n").should have(1).tag
@@ -18,11 +17,9 @@ describe Spinebox::ERBContext do
18
17
  Spinebox.config.concatenate = false
19
18
  javascript_include_tag("application").split("\n").should have_at_least(5).tags
20
19
  end
21
-
22
20
  end
23
21
 
24
22
  context "css" do
25
-
26
23
  it "should offer asset tags concatenated" do
27
24
  Spinebox.config.concatenate = true
28
25
  stylesheet_link_tag("application").split("\n").should have(1).tag
@@ -32,7 +29,24 @@ describe Spinebox::ERBContext do
32
29
  Spinebox.config.concatenate = false
33
30
  stylesheet_link_tag("application").split("\n").should have_at_least(1).tag
34
31
  end
32
+ end
33
+
34
+ context "render", :render do
35
+ it "returns a rendered partial" do
36
+ render(:partial => "partial.html").should == "<p>This is a partial</p>"
37
+ end
35
38
 
39
+ it "raises an error on missing params" do
40
+ proc{ render }.should raise_error
41
+ end
42
+
43
+ it "raises an error on missing partial extensions" do
44
+ proc{ render(:partial => "partial") }.should raise_error
45
+ end
46
+
47
+ it "raises an error on unexistant partial" do
48
+ proc{ render(:partial => "notthere.html") }.should raise_error
49
+ end
36
50
  end
37
51
 
38
52
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spinebox
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.13
4
+ version: 0.0.14
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,11 +10,11 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-08-13 00:00:00.000000000 Z
13
+ date: 2012-11-28 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: sprockets
17
- requirement: &70150538119000 !ruby/object:Gem::Requirement
17
+ requirement: &70228460900940 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ! '>='
@@ -22,10 +22,10 @@ dependencies:
22
22
  version: 2.1.2
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *70150538119000
25
+ version_requirements: *70228460900940
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: rack
28
- requirement: &70150538118500 !ruby/object:Gem::Requirement
28
+ requirement: &70228460900440 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ! '>='
@@ -33,10 +33,10 @@ dependencies:
33
33
  version: 1.4.1
34
34
  type: :runtime
35
35
  prerelease: false
36
- version_requirements: *70150538118500
36
+ version_requirements: *70228460900440
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: coffee-script
39
- requirement: &70150538118040 !ruby/object:Gem::Requirement
39
+ requirement: &70228460899980 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - ! '>='
@@ -44,10 +44,10 @@ dependencies:
44
44
  version: 1.2.0
45
45
  type: :runtime
46
46
  prerelease: false
47
- version_requirements: *70150538118040
47
+ version_requirements: *70228460899980
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: eco
50
- requirement: &70150538117580 !ruby/object:Gem::Requirement
50
+ requirement: &70228460899520 !ruby/object:Gem::Requirement
51
51
  none: false
52
52
  requirements:
53
53
  - - ! '>='
@@ -55,10 +55,10 @@ dependencies:
55
55
  version: 1.0.0
56
56
  type: :runtime
57
57
  prerelease: false
58
- version_requirements: *70150538117580
58
+ version_requirements: *70228460899520
59
59
  - !ruby/object:Gem::Dependency
60
60
  name: sass
61
- requirement: &70150538117120 !ruby/object:Gem::Requirement
61
+ requirement: &70228460899020 !ruby/object:Gem::Requirement
62
62
  none: false
63
63
  requirements:
64
64
  - - ! '>='
@@ -66,10 +66,10 @@ dependencies:
66
66
  version: 3.1.15
67
67
  type: :runtime
68
68
  prerelease: false
69
- version_requirements: *70150538117120
69
+ version_requirements: *70228460899020
70
70
  - !ruby/object:Gem::Dependency
71
71
  name: colorize
72
- requirement: &70150538116660 !ruby/object:Gem::Requirement
72
+ requirement: &70228460898540 !ruby/object:Gem::Requirement
73
73
  none: false
74
74
  requirements:
75
75
  - - ! '>='
@@ -77,10 +77,10 @@ dependencies:
77
77
  version: 0.5.8
78
78
  type: :runtime
79
79
  prerelease: false
80
- version_requirements: *70150538116660
80
+ version_requirements: *70228460898540
81
81
  - !ruby/object:Gem::Dependency
82
82
  name: activesupport
83
- requirement: &70150538116200 !ruby/object:Gem::Requirement
83
+ requirement: &70228460897940 !ruby/object:Gem::Requirement
84
84
  none: false
85
85
  requirements:
86
86
  - - ! '>='
@@ -88,10 +88,10 @@ dependencies:
88
88
  version: 3.2.2
89
89
  type: :runtime
90
90
  prerelease: false
91
- version_requirements: *70150538116200
91
+ version_requirements: *70228460897940
92
92
  - !ruby/object:Gem::Dependency
93
93
  name: thin
94
- requirement: &70150538115740 !ruby/object:Gem::Requirement
94
+ requirement: &70228460920140 !ruby/object:Gem::Requirement
95
95
  none: false
96
96
  requirements:
97
97
  - - ! '>='
@@ -99,7 +99,7 @@ dependencies:
99
99
  version: 1.3.1
100
100
  type: :runtime
101
101
  prerelease: false
102
- version_requirements: *70150538115740
102
+ version_requirements: *70228460920140
103
103
  description: A ready to use spine.js rack skeleton builder with development server,
104
104
  routes, config and precompile support
105
105
  email:
@@ -111,6 +111,7 @@ extensions: []
111
111
  extra_rdoc_files: []
112
112
  files:
113
113
  - .gitignore
114
+ - .rspec
114
115
  - Gemfile
115
116
  - LICENSE
116
117
  - README.textile
@@ -148,6 +149,7 @@ files:
148
149
  - lib/spinebox/templates/app/app/assets/javascripts/lib/spine/route.coffee
149
150
  - lib/spinebox/templates/app/app/assets/javascripts/lib/spine/spine.coffee
150
151
  - lib/spinebox/templates/app/app/assets/stylesheets/application.css.scss
152
+ - lib/spinebox/templates/app/app/views/_partial.html.erb
151
153
  - lib/spinebox/templates/app/app/views/index.html.erb
152
154
  - lib/spinebox/templates/app/config.ru
153
155
  - lib/spinebox/templates/app/config/config.rb