kelredd-sinatra-helpers 0.1.8 → 0.1.9

Sign up to get free protection for your applications and to get access to all the features.
data/README.rdoc CHANGED
@@ -10,8 +10,6 @@ I've written a generator for new Sinatra apps. Please note: I've written this g
10
10
 
11
11
  * Most, if not all, of the helpers in this gem
12
12
  * Gem configuration (via gemsconfig: http://github.com/kelredd/gemsconfig)
13
- * Sprockets (via sprockets-sinatra: http://github.com/kelredd/sprockets-sinatra)
14
- * Less (coming)
15
13
  * Capistrano deployment scheme
16
14
  * Source control with Git
17
15
  * Erb (with generators from useful: http://github.com/kelredd/useful/tree/master/lib/useful/erb_helpers/)
@@ -19,8 +17,9 @@ I've written a generator for new Sinatra apps. Please note: I've written this g
19
17
  * Default layout that I like
20
18
  * Rack::Cache using my configuration (see admin/production.ru)
21
19
  * Rack::Flash
22
- * Unit testing with Test::Unit (coming)
23
- * BDD using Cucumber (coming)
20
+ * Rack::Less (http://github.com/kelredd/rack-less)
21
+ * Rack::Sprockets (http://github.com/kelredd/rack-sprockets)
22
+ * Unit testing with Test::Unit
24
23
 
25
24
  If you don't like/want to use something that this generates, don't use the generator, or back out some generated code manually. Ok, enough about that. On to usage:
26
25
 
@@ -36,17 +35,13 @@ Have environment tests like development? and production? available in your app c
36
35
  Helpful view template helpers for partial rendering and html generation. See
37
36
  http://github.com/kelredd/useful/tree/master/lib/useful/erb_helpers/ for more info.
38
37
 
39
- === Sprockets
40
-
41
- Coming.
42
-
43
38
  === ActiveRecord
44
39
 
45
40
  Coming.
46
41
 
47
42
  == Installation
48
43
 
49
- sudo gem install kelredd-sinatra-helpers --source http://gemcutter.org
44
+ gem install kelredd-sinatra-helpers
50
45
 
51
46
  == Usage
52
47
 
@@ -54,7 +49,7 @@ Coming.
54
49
 
55
50
  == License
56
51
 
57
- Copyright (c) 2009 Kelly Redding
52
+ Copyright (c) 2010 Kelly Redding (mailto:kelly@kelredd.com)
58
53
 
59
54
  Permission is hereby granted, free of charge, to any person
60
55
  obtaining a copy of this software and associated documentation
data/Rakefile CHANGED
@@ -17,7 +17,12 @@ spec = Gem::Specification.new do |s|
17
17
  s.files = %w(README.rdoc Rakefile) + Dir.glob("{bin,lib}/**/*")
18
18
  s.executables = ['sinatra']
19
19
 
20
- s.add_dependency('kelredd-useful', '>= 0.2.6')
20
+ s.add_dependency('kelredd-useful', ['>= 0.2.6'])
21
+
22
+ s.add_development_dependency("shoulda", [">= 2.10.2"])
23
+ s.add_development_dependency("sinatra", [">= 0.9.4"])
24
+ s.add_development_dependency("rack-test", [">= 0.5.3"])
25
+ s.add_development_dependency("webrat", [">= 0.6.0"])
21
26
  end
22
27
 
23
28
  Rake::GemPackageTask.new(spec) do |pkg|
@@ -47,7 +52,6 @@ rescue LoadError
47
52
  task :default => :test
48
53
  end
49
54
 
50
-
51
55
  desc 'Generate the gemspec to serve this gem'
52
56
  task :gemspec do
53
57
  file = File.dirname(__FILE__) + "/#{spec.name}.gemspec"
@@ -15,12 +15,17 @@ load_app 'models'
15
15
  use Rack::Session::Cookie, :key => '_sess'
16
16
  use Rack::Flash
17
17
 
18
- # setup the LESS helper
19
- Sinatra::Application.register SinatraHelpers::Less
20
- require 'sinatra_helpers/less/erb'
21
- Sinatra::Application.helpers SinatraHelpers::Less::Erb
18
+ use Rack::Less
19
+ Rack::Less.configure do |config|
20
+ config.combinations = {
21
+ 'web' => ['reset', 'app']
22
+ }
23
+ config.compress = config.cache = production?
24
+ end
22
25
 
23
- # setup the Sprockets helper
24
- Sinatra::Application.register SinatraHelpers::Sprockets
25
- require 'sinatra_helpers/sprockets/erb'
26
- Sinatra::Application.helpers SinatraHelpers::Sprockets::Erb
26
+ use Rack::Sprockets
27
+ Rack::Sprockets.configure do |config|
28
+ if config.cache = production?
29
+ config.compress = :whitespace
30
+ end
31
+ end
@@ -4,12 +4,7 @@ use Rack::Cache,
4
4
  :metastore => "file:#{root_path('cache-rack', 'meta')}",
5
5
  :entitystore => "file:#{root_path('cache-rack', 'body')}"
6
6
 
7
-
8
7
  FileUtils.mkdir_p 'log' unless File.exists?('log')
9
8
  log = File.new("log/#{RACK_ENV.downcase}.log", "a+")
10
9
  $stdout.reopen(log)
11
10
  $stderr.reopen(log)
12
-
13
- SinatraHelpers::Less.configure do |config|
14
- config.compress = true
15
- end
@@ -8,11 +8,10 @@ Gemsconfig::init do |config|
8
8
 
9
9
  config.gem 'rack-flash', :lib => 'rack-flash'
10
10
  config.gem 'rack-cache', :lib => false
11
+ config.gem 'rack-less', :lib => 'rack/less'
12
+ config.gem 'rack-sprockets', :lib => 'rack/sprockets'
11
13
 
12
14
  config.gem 'kelredd-useful', :lib => 'useful/ruby_extensions'
13
-
14
15
  config.gem 'kelredd-sinatra-helpers', :lib => 'sinatra_helpers'
15
- config.gem 'kelredd-sinatra-helpers', :lib => 'sinatra_helpers/less'
16
- config.gem 'kelredd-sinatra-helpers', :lib => 'sinatra_helpers/sprockets'
17
16
 
18
17
  end if defined?(Gemsconfig)
@@ -1 +1,2 @@
1
1
  /log/*.log
2
+ .DS_Store
@@ -11,9 +11,9 @@
11
11
  <meta name="robots" content="noindex,nofollow" />
12
12
  <% end %>
13
13
  <link rel="icon" type="image/png" href="/favicon.png"></link>
14
- <%= less_link_tag 'reset', 'app', :media => "all", :concat => 'web' %>
14
+ <%= spreadsheet_link_tag Rack::Less.combinations('web'), :media => "all" %>
15
15
  <% unless @noscript %>
16
- <%= sprockets_include_tag 'app.js' %>
16
+ <%= javascript_include_tag 'app.js' %>
17
17
  <% end %>
18
18
  </head>
19
19
  <body class="body">
@@ -9,9 +9,7 @@ module SinatraHelpers::Generator
9
9
  'gitignore.erb' => '.gitignore',
10
10
 
11
11
  :admin => {
12
- 'production.ru.erb' => 'production.ru',
13
- :vhosts => {},
14
- :logrotate => {}
12
+ 'production.ru.erb' => 'production.ru'
15
13
  },
16
14
 
17
15
  :app => {
@@ -3,7 +3,7 @@ module SinatraHelpers
3
3
 
4
4
  MAJOR = 0
5
5
  MINOR = 1
6
- TINY = 8
6
+ TINY = 9
7
7
 
8
8
  def self.to_s # :nodoc:
9
9
  [MAJOR, MINOR, TINY].join('.')
@@ -3,11 +3,6 @@ require 'sinatra_helpers/erb'
3
3
 
4
4
  module SinatraHelpers
5
5
 
6
- HTTP_STATUS = {
7
- :not_found => 404,
8
- :ok => 200
9
- }
10
-
11
6
  class << self
12
7
 
13
8
  def page_cache?(app)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kelredd-sinatra-helpers
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.8
4
+ version: 0.1.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kelly Redding
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2010-02-08 00:00:00 -06:00
12
+ date: 2010-02-14 00:00:00 -06:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -22,6 +22,46 @@ dependencies:
22
22
  - !ruby/object:Gem::Version
23
23
  version: 0.2.6
24
24
  version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: shoulda
27
+ type: :development
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 2.10.2
34
+ version:
35
+ - !ruby/object:Gem::Dependency
36
+ name: sinatra
37
+ type: :development
38
+ version_requirement:
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: 0.9.4
44
+ version:
45
+ - !ruby/object:Gem::Dependency
46
+ name: rack-test
47
+ type: :development
48
+ version_requirement:
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: 0.5.3
54
+ version:
55
+ - !ruby/object:Gem::Dependency
56
+ name: webrat
57
+ type: :development
58
+ version_requirement:
59
+ version_requirements: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ version: 0.6.0
64
+ version:
25
65
  description:
26
66
  email: kelly@kelredd.com
27
67
  executables:
@@ -64,12 +104,6 @@ files:
64
104
  - lib/sinatra_helpers/generator/file_templates/test_helper.rb.erb
65
105
  - lib/sinatra_helpers/generator/template.rb
66
106
  - lib/sinatra_helpers/generator.rb
67
- - lib/sinatra_helpers/less/config.rb
68
- - lib/sinatra_helpers/less/erb.rb
69
- - lib/sinatra_helpers/less.rb
70
- - lib/sinatra_helpers/sprockets/config.rb
71
- - lib/sinatra_helpers/sprockets/erb.rb
72
- - lib/sinatra_helpers/sprockets.rb
73
107
  - lib/sinatra_helpers/version.rb
74
108
  - lib/sinatra_helpers.rb
75
109
  has_rdoc: true
@@ -1,22 +0,0 @@
1
- module SinatraHelpers; end
2
- module SinatraHelpers::Less
3
-
4
- class Config
5
- ATTRIBUTES = [:hosted_root, :src_root, :concat, :compress]
6
- DEFAULTS = {
7
- :hosted_root => '/stylesheets',
8
- :src_root => 'app/stylesheets',
9
- :concat => {},
10
- :compress => false
11
- }
12
-
13
- attr_accessor *ATTRIBUTES
14
-
15
- def initialize(args={})
16
- ATTRIBUTES.each do |a|
17
- instance_variable_set("@#{a}", args[a] || DEFAULTS[a])
18
- end
19
- end
20
- end
21
-
22
- end
@@ -1,32 +0,0 @@
1
- require "sinatra_helpers/erb"
2
- require 'useful/ruby_extensions/object' unless ::Object.new.respond_to?('blank?')
3
-
4
- module SinatraHelpers; end
5
- module SinatraHelpers::Less
6
-
7
- module Erb
8
-
9
- def less_link_tag(*args)
10
- the_args = args.flatten
11
- srcs, options = if the_args.last && the_args.last.kind_of?(::Hash)
12
- [the_args[0..-2], the_args.last]
13
- else
14
- [the_args, {}]
15
- end
16
-
17
- options[:environment] ||= SinatraHelpers::Less.app.environment.to_s
18
-
19
- concat = options.delete(:concat)
20
- if concat && !(concat.to_s).blank?
21
- SinatraHelpers::Less.config do |config|
22
- config.concat[concat.to_s] = srcs
23
- end
24
- srcs = concat.to_s if SinatraHelpers.page_cache?(SinatraHelpers::Less.app)
25
- end
26
-
27
- stylesheet_link_tag srcs, options
28
- end
29
-
30
- end
31
-
32
- end
@@ -1,91 +0,0 @@
1
- begin
2
- require 'less'
3
- rescue LoadError => err
4
- err.message << "\n**** Install less (gem install less) to use the sinatra less helpers ****\n"
5
- raise err
6
- end
7
-
8
- require 'sinatra_helpers/less/config'
9
-
10
- module SinatraHelpers; end
11
- module SinatraHelpers::Less
12
-
13
- CONTENT_TYPE = "text/css"
14
-
15
- class << self
16
- attr_reader :app
17
-
18
- def config
19
- if instance_variable_get("@config").nil?
20
- instance_variable_set("@config", SinatraHelpers::Less::Config.new)
21
- end
22
- yield instance_variable_get("@config") if block_given?
23
- instance_variable_get("@config")
24
- end
25
-
26
- def [](config_attribute)
27
- config.send(config_attribute)
28
- end
29
-
30
- def registered(app)
31
- instance_variable_set("@app", app)
32
-
33
- app.get "/less-sinatra-helper-test" do
34
- if SinatraHelpers::Less.config
35
- "The LESS sinatra helper is configured and ready :)"
36
- else
37
- "The LESS sinatra helper is NOT configured and ready :("
38
- end
39
- end
40
-
41
- app.get "#{SinatraHelpers::Less[:hosted_root]}/*.css" do
42
- file_name = params['splat'].first.to_s
43
- less_path = File.join([
44
- app.root, SinatraHelpers::Less[:src_root], "#{file_name}.less"
45
- ])
46
- css_path = File.join([
47
- app.root, SinatraHelpers::Less[:src_root], "#{file_name}.css"
48
- ])
49
-
50
- content_type CONTENT_TYPE
51
-
52
- if File.exists?(less_path)
53
- SinatraHelpers::Less.compile(file_name, [less_path])
54
- elsif File.exists?(css_path)
55
- SinatraHelpers::Less.compile(file_name, [css_path])
56
- elsif SinatraHelpers::Less[:concat].include?(file_name)
57
- less_paths = SinatraHelpers::Less[:concat][file_name].collect do |concat_name|
58
- File.join(app.root, SinatraHelpers::Less[:src_root], "#{concat_name}.less")
59
- end.select do |less_path|
60
- File.exists?(less_path)
61
- end
62
- SinatraHelpers::Less.compile(file_name, less_paths)
63
- else
64
- halt SinatraHelpers::HTTP_STATUS[:not_found]
65
- end
66
- end
67
- end
68
-
69
- def compile(css_name, file_paths)
70
- compiled_less = file_paths.collect do |file_path|
71
- Less::Engine.new(File.new(file_path)).to_css
72
- end.join("\n")
73
- compiled_less.delete!("\n") if use_compression?
74
- if SinatraHelpers.page_cache?(SinatraHelpers::Less.app)
75
- pub_path = File.join(SinatraHelpers::Less.app.public, SinatraHelpers::Less[:hosted_root])
76
- FileUtils.mkdir_p(pub_path)
77
- hosted = File.join(pub_path, "#{css_name}.css")
78
- File.open(hosted, "w") do |file|
79
- file.write(compiled_less)
80
- end
81
- end
82
- compiled_less
83
- end
84
-
85
- def use_compression?
86
- SinatraHelpers::Less[:compress]
87
- end
88
-
89
- end
90
-
91
- end
@@ -1,22 +0,0 @@
1
- module SinatraHelpers; end
2
- module SinatraHelpers::Sprockets
3
-
4
- class Config
5
- ATTRIBUTES = [:hosted_root, :src_root, :load_path, :expand_paths]
6
- DEFAULTS = {
7
- :hosted_root => '/javascripts',
8
- :src_root => 'app/javascripts',
9
- :load_path => ['app/javascripts/**', 'vendor/javascripts', 'vendor/sprockets'],
10
- :expand_paths => true
11
- }
12
-
13
- attr_accessor *ATTRIBUTES
14
-
15
- def initialize(args={})
16
- ATTRIBUTES.each do |a|
17
- instance_variable_set("@#{a}", args[a] || DEFAULTS[a])
18
- end
19
- end
20
- end
21
-
22
- end
@@ -1,24 +0,0 @@
1
- require "sinatra_helpers/erb"
2
- require 'useful/ruby_extensions/object' unless ::Object.new.respond_to?('blank?')
3
-
4
- module SinatraHelpers; end
5
- module SinatraHelpers::Sprockets
6
-
7
- module Erb
8
-
9
- def sprockets_include_tag(*args)
10
- the_args = args.flatten
11
- srcs, options = if the_args.last && the_args.last.kind_of?(::Hash)
12
- [the_args[0..-2], the_args.last]
13
- else
14
- [the_args, {}]
15
- end
16
-
17
- options[:environment] ||= SinatraHelpers::Sprockets.app.environment.to_s
18
-
19
- javascript_include_tag srcs, options
20
- end
21
-
22
- end
23
-
24
- end
@@ -1,88 +0,0 @@
1
- begin
2
- require 'sprockets'
3
- rescue LoadError => err
4
- err.message << "\n**** Install sprockets (gem install sprockets) to use the sinatra sprockets helpers ****\n"
5
- raise err
6
- end
7
-
8
- require 'sinatra_helpers/sprockets/config'
9
-
10
- module SinatraHelpers; end
11
- module SinatraHelpers::Sprockets
12
-
13
- CONTENT_TYPE = "text/javascript; charset=utf-8"
14
-
15
- class << self
16
- attr_reader :app
17
-
18
- def config
19
- if instance_variable_get("@config").nil?
20
- instance_variable_set("@config", SinatraHelpers::Sprockets::Config.new)
21
- end
22
- yield instance_variable_get("@config") if block_given?
23
- instance_variable_get("@config")
24
- end
25
-
26
- def secretary
27
- if instance_variable_get("@secretary").nil?
28
- instance_variable_set("@secretary", {
29
- :root => app.root,
30
- :load_path => config.load_path,
31
- :expand_paths => config.expand_paths
32
- })
33
- end
34
- yield instance_variable_get("@secretary") if block_given?
35
- instance_variable_get("@secretary")
36
- end
37
-
38
- def [](config_attribute)
39
- config.send(config_attribute)
40
- end
41
-
42
- def registered(app)
43
- instance_variable_set("@app", app)
44
-
45
- app.get "/sprockets-sinatra-helper-test" do
46
- if SinatraHelpers::Sprockets.config
47
- "The sprockets sinatra helper is configured and ready :)"
48
- else
49
- "The sprockets sinatra helper is NOT configured and ready :("
50
- end
51
- end
52
-
53
- app.get "#{SinatraHelpers::Sprockets[:hosted_root]}/*.js" do
54
- src_name = params['splat'].first.to_s
55
- src_file_path = File.join([
56
- SinatraHelpers::Sprockets[:src_root], "#{src_name}.js"
57
- ])
58
- src_path = File.join(app.root, src_file_path)
59
-
60
- content_type CONTENT_TYPE
61
-
62
- if File.exists?(src_path)
63
- SinatraHelpers::Sprockets.compile(src_file_path)
64
- else
65
- halt SinatraHelpers::HTTP_STATUS[:not_found]
66
- end
67
- end
68
- end
69
-
70
- def compile(src_file_name)
71
- secretary_params = SinatraHelpers::Sprockets.secretary do |params|
72
- params[:source_files] = [src_file_name]
73
- end
74
- compiled_src = Sprockets::Secretary.new(secretary_params).concatenation.to_s
75
- if SinatraHelpers.page_cache?(SinatraHelpers::Sprockets.app)
76
- pub_path = File.join(SinatraHelpers::Sprockets.app.public, SinatraHelpers::Sprockets[:hosted_root])
77
- FileUtils.mkdir_p(pub_path)
78
- hosted = File.join(pub_path, File.basename(src_file_name))
79
- File.open(hosted, "w") do |file|
80
- file.write(compiled_src)
81
- end
82
- end
83
- compiled_src
84
- end
85
-
86
- end
87
-
88
- end