mold 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -4,7 +4,7 @@ source "http://rubygems.org"
4
4
  # Include everything needed to run rake, tests, features, etc.
5
5
  group :development do
6
6
  gem "shoulda", ">= 0"
7
- gem "bundler", "~> 1.0.0"
8
- gem "jeweler", "~> 1.6.4"
9
- gem "rcov", ">= 0"
7
+ gem "bundler"
8
+ gem "jeweler"
9
+ gem "rake"
10
10
  end
@@ -2,19 +2,26 @@ GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
4
  git (1.2.5)
5
- jeweler (1.6.4)
5
+ jeweler (1.8.3)
6
6
  bundler (~> 1.0)
7
7
  git (>= 1.2.5)
8
8
  rake
9
- rake (0.9.2)
10
- rcov (0.9.9)
11
- shoulda (2.11.3)
9
+ rdoc
10
+ json (1.7.3)
11
+ rake (0.9.2.2)
12
+ rdoc (3.12)
13
+ json (~> 1.4)
14
+ shoulda (3.0.1)
15
+ shoulda-context (~> 1.0.0)
16
+ shoulda-matchers (~> 1.0.0)
17
+ shoulda-context (1.0.0)
18
+ shoulda-matchers (1.0.0)
12
19
 
13
20
  PLATFORMS
14
21
  ruby
15
22
 
16
23
  DEPENDENCIES
17
- bundler (~> 1.0.0)
18
- jeweler (~> 1.6.4)
19
- rcov
24
+ bundler
25
+ jeweler
26
+ rake
20
27
  shoulda
data/README.md CHANGED
@@ -1,72 +1,81 @@
1
1
  ## Overview ##
2
2
 
3
- Mold is a view template handler for Rails that renders Ruby objects to JSON.
3
+ Mold is a view template handler for Rails 3+ that renders Ruby objects to JSON.
4
4
 
5
5
  ## Compatibility ##
6
6
 
7
- Mold is compatible with Rails 2.x and Rails 3.x.
7
+ Mold is compatible with Rails Rails 3.x.
8
8
 
9
9
  ## Installation ##
10
10
 
11
11
  Install Mold as a gem:
12
12
 
13
- gem install mold
14
-
15
- or add to your Gemfile:
13
+ ```ruby
14
+ gem install mold
15
+ ```
16
16
 
17
- gem 'mold'
17
+ or add to your Gemfile:
18
+ ```ruby
19
+ gem 'mold'
20
+ ```
18
21
 
19
22
  ## Usage ##
20
23
 
21
24
  It's pretty straight-forward to create a Mold JSON template, just create the structure as you would in a Hash:
22
25
 
23
- # app/controllers/users_controller.rb
24
- class Users < ActionController:Base
25
- def show
26
- @user = User.first
27
- end
28
- end
29
-
30
- # app/views/users/show.json.mold
31
- {
32
- :user => {
33
- :id => @user.id,
34
- :name => @user.name
35
- }
26
+ ```ruby
27
+ # app/controllers/users_controller.rb
28
+ class Users < ActionController:Base
29
+ def show
30
+ @user = User.first
31
+ end
32
+ end
33
+
34
+ # app/views/users/show.mold
35
+ {
36
+ :user => {
37
+ :id => @user.id,
38
+ :name => @user.name
36
39
  }
40
+ }
41
+ ```
37
42
 
38
43
  You can also create and use view partials in Mold:
39
44
 
40
- # app/controllers/users_controller.rb
41
- class Users < ActionController:Base
42
- def index
43
- @users = User.all
44
- end
45
- end
46
-
47
- # app/views/users/_user.json.mold
48
- {
49
- :user => {
50
- :id => user.id,
51
- :name => user.name
52
- }
53
- }
54
-
55
- # app/views/users/index.json.mold
56
- {
57
- :users => @users.map{ |user| render(:partial => 'user', :object => user) }
45
+ ```ruby
46
+ # app/controllers/users_controller.rb
47
+ class Users < ActionController:Base
48
+ def index
49
+ @users = User.all
50
+ end
51
+ end
52
+
53
+ # app/views/users/_user.json.mold
54
+ {
55
+ :user => {
56
+ :id => user.id,
57
+ :name => user.name
58
58
  }
59
-
59
+ }
60
+
61
+ # app/views/users/index.json.mold
62
+ {
63
+ :users => @users.map{ |user| render(:partial => 'user', :object => user) }
64
+ }
65
+ ```
66
+
60
67
  Writing code in a Mold view also works:
61
68
 
62
- # app/views/users/show.json.mold
63
- time = Time.now
64
-
65
- {
66
- :user => {
67
- :time => time
68
- }
69
+ ```ruby
70
+ # app/views/users/show.json.mold
71
+ time = Time.now
72
+
73
+ {
74
+ :user => {
75
+ :time => time
69
76
  }
77
+ }
78
+ ```
70
79
 
71
80
  ## Inspiration ##
72
81
 
data/Rakefile CHANGED
@@ -24,8 +24,8 @@ Jeweler::Tasks.new do |gem|
24
24
  gem.email = "tjackiw@gmail.com"
25
25
  gem.homepage = "http://github.com/tjackiw/mold"
26
26
  gem.license = "MIT"
27
- gem.summary = %Q{ Mold is a view template handler for Rails that renders Ruby objects to JSON. }
28
- gem.description = %Q{ Mold is a view template handler for Rails that renders Ruby objects to JSON. }
27
+ gem.summary = %Q{ Mold is a view template handler for Rails 3+ that renders Ruby objects to JSON. }
28
+ gem.description = %Q{ Mold is a view template handler for Rails 3+ that renders Ruby objects to JSON. }
29
29
 
30
30
  gem.files = `git ls-files`.split("\n")
31
31
  gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
@@ -40,14 +40,6 @@ Rake::TestTask.new(:test) do |test|
40
40
  test.verbose = true
41
41
  end
42
42
 
43
- require 'rcov/rcovtask'
44
- Rcov::RcovTask.new do |test|
45
- test.libs << 'test'
46
- test.pattern = 'test/**/test_*.rb'
47
- test.verbose = true
48
- test.rcov_opts << '--exclude "gems/*"'
49
- end
50
-
51
43
  task :default => :test
52
44
 
53
45
  require 'rdoc/task'
@@ -1,45 +1,27 @@
1
- # Rails 2.X Template
2
- if defined?(Rails) && Rails.version =~ /^2/
3
- module Mold
4
- class Handler < ActionView::TemplateHandler
5
- include ActionView::TemplateHandlers::Compilable
6
-
7
- def compile(template)
8
- source = if File.basename(template.filename).starts_with?('_')
9
- 'code.call'
10
- else
11
- 'ActiveSupport::JSON.encode(code.call)'
12
- end
13
- %{
14
- controller.response.content_type = Mime::JSON
15
- code = lambda{#{ template.source }}
16
- self.output_buffer = (#{ src })
17
- }
18
- end
19
- end
20
- end
21
- ActionView::Template.register_template_handler(:mold, Mold::Handler)
22
- end
23
-
24
- # Rails 3.X Template
25
1
  if defined?(Rails) && Rails.version =~ /^3/
26
- module Mold
27
- class Handler < ActionView::Template::Handler
28
-
29
- self.default_format = Mime::JSON
2
+
3
+ require('yajl/json_gem') if defined?(Yajl)
30
4
 
31
- def self.call(template)
32
- source = if File.basename(template.identifier).starts_with?('_')
33
- 'code.call'
34
- else
35
- 'ActiveSupport::JSON.encode(code.call)'
5
+ class ActionView::Template
6
+ module Handlers
7
+ class Mold
8
+ default_format = Mime::JSON
9
+
10
+ def call(template)
11
+ source = if File.basename(template.identifier).starts_with?('_')
12
+ 'code.call'
13
+ else
14
+ defined?(Yajl) ? 'JSON.generate(code.call)' : 'ActiveSupport::JSON.encode(code.call)'
15
+ end
16
+ %{
17
+ code = lambda{#{ template.source }}
18
+ self.output_buffer = (#{ source })
19
+ }
36
20
  end
37
- %{
38
- code = lambda{#{ template.source }}
39
- self.output_buffer = (#{ source })
40
- }
21
+
41
22
  end
42
23
  end
24
+ register_template_handler(:mold, Handlers::Mold.new)
43
25
  end
44
- ActionView::Template.register_template_handler(:mold, Mold::Handler)
26
+
45
27
  end
@@ -1,5 +1,5 @@
1
1
  module Mold
2
2
 
3
- VERSION = "1.0.0"
3
+ VERSION = "1.1.0"
4
4
 
5
5
  end
@@ -0,0 +1,59 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = "mold"
8
+ s.version = "1.1.0"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Thiago Jackiw"]
12
+ s.date = "2012-06-06"
13
+ s.description = " Mold is a view template handler for Rails 3+ that renders Ruby objects to JSON. "
14
+ s.email = "tjackiw@gmail.com"
15
+ s.extra_rdoc_files = [
16
+ "LICENSE.txt",
17
+ "README.md"
18
+ ]
19
+ s.files = [
20
+ ".document",
21
+ ".gitignore",
22
+ "Gemfile",
23
+ "Gemfile.lock",
24
+ "LICENSE.txt",
25
+ "README.md",
26
+ "Rakefile",
27
+ "lib/mold.rb",
28
+ "lib/mold/handler.rb",
29
+ "lib/mold/version.rb",
30
+ "mold.gemspec"
31
+ ]
32
+ s.homepage = "http://github.com/tjackiw/mold"
33
+ s.licenses = ["MIT"]
34
+ s.require_paths = ["lib"]
35
+ s.rubygems_version = "1.8.24"
36
+ s.summary = "Mold is a view template handler for Rails 3+ that renders Ruby objects to JSON."
37
+
38
+ if s.respond_to? :specification_version then
39
+ s.specification_version = 3
40
+
41
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
42
+ s.add_development_dependency(%q<shoulda>, [">= 0"])
43
+ s.add_development_dependency(%q<bundler>, [">= 0"])
44
+ s.add_development_dependency(%q<jeweler>, [">= 0"])
45
+ s.add_development_dependency(%q<rake>, [">= 0"])
46
+ else
47
+ s.add_dependency(%q<shoulda>, [">= 0"])
48
+ s.add_dependency(%q<bundler>, [">= 0"])
49
+ s.add_dependency(%q<jeweler>, [">= 0"])
50
+ s.add_dependency(%q<rake>, [">= 0"])
51
+ end
52
+ else
53
+ s.add_dependency(%q<shoulda>, [">= 0"])
54
+ s.add_dependency(%q<bundler>, [">= 0"])
55
+ s.add_dependency(%q<jeweler>, [">= 0"])
56
+ s.add_dependency(%q<rake>, [">= 0"])
57
+ end
58
+ end
59
+
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mold
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-08-05 00:00:00.000000000Z
12
+ date: 2012-06-06 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: shoulda
16
- requirement: &70268907557060 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,32 +21,47 @@ dependencies:
21
21
  version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *70268907557060
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
25
30
  - !ruby/object:Gem::Dependency
26
31
  name: bundler
27
- requirement: &70268907554540 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
28
33
  none: false
29
34
  requirements:
30
- - - ~>
35
+ - - ! '>='
31
36
  - !ruby/object:Gem::Version
32
- version: 1.0.0
37
+ version: '0'
33
38
  type: :development
34
39
  prerelease: false
35
- version_requirements: *70268907554540
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
36
46
  - !ruby/object:Gem::Dependency
37
47
  name: jeweler
38
- requirement: &70268907552020 !ruby/object:Gem::Requirement
48
+ requirement: !ruby/object:Gem::Requirement
39
49
  none: false
40
50
  requirements:
41
- - - ~>
51
+ - - ! '>='
42
52
  - !ruby/object:Gem::Version
43
- version: 1.6.4
53
+ version: '0'
44
54
  type: :development
45
55
  prerelease: false
46
- version_requirements: *70268907552020
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
47
62
  - !ruby/object:Gem::Dependency
48
- name: rcov
49
- requirement: &70268907548560 !ruby/object:Gem::Requirement
63
+ name: rake
64
+ requirement: !ruby/object:Gem::Requirement
50
65
  none: false
51
66
  requirements:
52
67
  - - ! '>='
@@ -54,8 +69,13 @@ dependencies:
54
69
  version: '0'
55
70
  type: :development
56
71
  prerelease: false
57
- version_requirements: *70268907548560
58
- description: ! ' Mold is a view template handler for Rails that renders Ruby objects
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ description: ! ' Mold is a view template handler for Rails 3+ that renders Ruby objects
59
79
  to JSON. '
60
80
  email: tjackiw@gmail.com
61
81
  executables: []
@@ -74,6 +94,7 @@ files:
74
94
  - lib/mold.rb
75
95
  - lib/mold/handler.rb
76
96
  - lib/mold/version.rb
97
+ - mold.gemspec
77
98
  homepage: http://github.com/tjackiw/mold
78
99
  licenses:
79
100
  - MIT
@@ -89,7 +110,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
89
110
  version: '0'
90
111
  segments:
91
112
  - 0
92
- hash: -1770751982089159590
113
+ hash: -1180247979504646527
93
114
  required_rubygems_version: !ruby/object:Gem::Requirement
94
115
  none: false
95
116
  requirements:
@@ -98,8 +119,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
98
119
  version: '0'
99
120
  requirements: []
100
121
  rubyforge_project:
101
- rubygems_version: 1.8.6
122
+ rubygems_version: 1.8.24
102
123
  signing_key:
103
124
  specification_version: 3
104
- summary: Mold is a view template handler for Rails that renders Ruby objects to JSON.
125
+ summary: Mold is a view template handler for Rails 3+ that renders Ruby objects to
126
+ JSON.
105
127
  test_files: []