bob-rails 0.0.1

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.
@@ -0,0 +1,61 @@
1
+ require 'pathname'
2
+ require 'sprockets'
3
+ require 'sprockets/engines'
4
+ require 'bob/compiler'
5
+ require 'json'
6
+
7
+ module Bob
8
+ module Rails
9
+ class Compiler < Tilt::Template
10
+ def self.default_mime_type
11
+ 'application/javascript'
12
+ end
13
+
14
+ def prepare; end
15
+
16
+ def evaluate(scope, locals, &block)
17
+ pathname = Pathname.new(scope.logical_path)
18
+ compiled = ::Bob::Compiler::Template.new(pathname.basename.to_s, data)
19
+
20
+ script = ''
21
+
22
+ unless compiled.errors.empty?
23
+ script << error("#{compiled.errors.length} error(s) while compiling #{pathname.to_s}...")
24
+
25
+ compiled.errors.each do |error|
26
+ script << error(" Line #{error.line}: #{error.message}")
27
+ end
28
+ end
29
+
30
+ unless compiled.warnings.empty?
31
+ script << warn("#{compiled.warnings.length} warnings(s) while compiling #{pathname.to_s}...")
32
+
33
+ compiled.warnings.each do |warning|
34
+ script << warn(" Line #{warning.line}: #{warning.message}")
35
+ end
36
+ end
37
+
38
+ if compiled.valid?
39
+ script << compiled.result
40
+ end
41
+
42
+ script
43
+ end
44
+
45
+ private
46
+ def error(str)
47
+ ::Rails.logger.error str
48
+ "Bob.logger.error(#{quote str});\n"
49
+ end
50
+
51
+ def warn(str)
52
+ ::Rails.logger.warn str
53
+ "Bob.logger.warn(#{quote str});\n"
54
+ end
55
+
56
+ def quote(str)
57
+ ::JSON.generate(str.to_s, quirks_mode: true)
58
+ end
59
+ end
60
+ end
61
+ end
@@ -0,0 +1,11 @@
1
+ require 'bob/rails/compiler'
2
+
3
+ module Bob
4
+ module Rails
5
+ class Engine < ::Rails::Engine
6
+ initializer "bob.rails.assets" do |app|
7
+ app.assets.register_engine ".bob", Bob::Rails::Compiler
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ import Ember from "ember";
2
+
3
+ export default Ember.Mixin.create({
4
+ queryParams: ["page"],
5
+ page: 1,
6
+
7
+ start: function() {
8
+ var page = this.get("page");
9
+ return (page - 1) * 30 + 1;
10
+ }.property("page")
11
+ });
@@ -0,0 +1,5 @@
1
+ module Bob
2
+ module Rails
3
+ VERSION = "0.0.1"
4
+ end
5
+ end
data/lib/bob/rails.rb ADDED
@@ -0,0 +1,2 @@
1
+ require "bob/rails/version"
2
+ require "bob/rails/engine"
metadata ADDED
@@ -0,0 +1,94 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: bob-rails
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Godfrey Chan
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-01-13 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rails
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: sprockets
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '2.2'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '2.2'
41
+ - !ruby/object:Gem::Dependency
42
+ name: bob-compiler
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '='
46
+ - !ruby/object:Gem::Version
47
+ version: 0.0.1
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '='
53
+ - !ruby/object:Gem::Version
54
+ version: 0.0.1
55
+ description:
56
+ email:
57
+ - godfrey@brewhouse.io
58
+ executables: []
59
+ extensions: []
60
+ extra_rdoc_files: []
61
+ files:
62
+ - LICENSE
63
+ - README.md
64
+ - Rakefile
65
+ - app/assets/javascripts/bob.js
66
+ - lib/bob/rails.rb
67
+ - lib/bob/rails/compiler.rb
68
+ - lib/bob/rails/engine.rb
69
+ - lib/bob/rails/paged.js
70
+ - lib/bob/rails/version.rb
71
+ homepage: https://github.com/BrewhouseTeam/bob-rails
72
+ licenses: []
73
+ metadata: {}
74
+ post_install_message:
75
+ rdoc_options: []
76
+ require_paths:
77
+ - lib
78
+ required_ruby_version: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ required_rubygems_version: !ruby/object:Gem::Requirement
84
+ requirements:
85
+ - - ">="
86
+ - !ruby/object:Gem::Version
87
+ version: '0'
88
+ requirements: []
89
+ rubyforge_project:
90
+ rubygems_version: 2.4.5
91
+ signing_key:
92
+ specification_version: 4
93
+ summary: Bob-flavoured in the Rails asset pipeline.
94
+ test_files: []