jsb3 1.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -6,7 +6,7 @@ Gem::Specification.new do |gem|
6
6
  gem.email = ["ryan@wahvee.com"]
7
7
  gem.description = %q{Parses a Sencha JsBuilder configuration file.}
8
8
  gem.summary = %q{http://extjs.com/products/jsbuilder/}
9
- gem.homepage = ""
9
+ gem.homepage = "https://github.com/RLovelett/jsb3"
10
10
 
11
11
  gem.files = `git ls-files`.split($\)
12
12
  gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
@@ -1,125 +1,9 @@
1
1
  require 'yajl'
2
2
  require "jsb3/version"
3
+ require "jsb3/resources"
4
+ require "jsb3/packages"
3
5
 
4
6
  module Jsb3
5
- class Packages
6
- include Enumerable
7
- attr_accessor :elements
8
-
9
- def initialize(raw_package_array, resources)
10
- @elements = []
11
- raw_package_array.each do |raw_package|
12
- @elements.push(Package.new(raw_package, resources))
13
- end
14
- end
15
-
16
- def each(&block)
17
- @elements.each do |element|
18
- block.call(element)
19
- end
20
- end
21
-
22
- def ids
23
- @elements.map do |pkg|
24
- pkg.id
25
- end
26
- end
27
-
28
- def names
29
- @elements.map do |pkg|
30
- pkg.name
31
- end
32
- end
33
- end
34
-
35
- class Package
36
- include Enumerable
37
- attr_reader :id, :name, :target, :files
38
-
39
- def initialize(raw_package_hash, resources)
40
- @id = raw_package_hash['id']
41
- @name = raw_package_hash['name']
42
- @target = raw_package_hash['target']
43
- @files = raw_package_hash['files'].map do |raw_file|
44
- File.new raw_file, resources
45
- end
46
- end
47
-
48
- def to_s
49
- "#{@name} has #{@files.count} files."
50
- end
51
- end
52
-
53
- class File
54
- def initialize(raw_file_hash, resources)
55
- path = raw_file_hash['path']
56
- path = resources.apply(path)
57
- @path = path
58
- @name = raw_file_hash['name']
59
- end
60
-
61
- def dirname
62
- ::File.dirname(to_path)
63
- end
64
-
65
- alias :path :dirname
66
-
67
- def basename
68
- ::File.basename(to_path)
69
- end
70
-
71
- alias :name :basename
72
-
73
- def to_s
74
- "#{dirname}/#{basename}"
75
- end
76
-
77
- def exists?
78
- ::File.exists?(to_s)
79
- end
80
-
81
- def absolute_path
82
- ::File.absolute_path(to_s)
83
- end
84
-
85
- private
86
- def to_path
87
- "#{@path}/#{@name}"
88
- end
89
- end
90
-
91
- class Resources
92
- include Enumerable
93
-
94
- def initialize(raw_resources_array = Array.new)
95
- @resources = raw_resources_array.map do |raw_resource|
96
- Resource.new raw_resource
97
- end
98
- end
99
-
100
- def each(&block)
101
- @resources.each do |resource|
102
- block.call(resource)
103
- end
104
- end
105
-
106
- def apply(str)
107
- resource = @resources.find do |resource|
108
- str.to_s.include? resource.src
109
- end
110
- return str.sub(resource.src, resource.dest) unless resource.nil?
111
- return str
112
- end
113
- end
114
-
115
- class Resource
116
- attr_reader :src, :dest
117
- def initialize(raw_resource_hash)
118
- @src = raw_resource_hash['src']
119
- @dest = raw_resource_hash['dest']
120
- end
121
- end
122
-
123
7
  class Jsb3
124
8
  attr_reader :packages, :name, :license, :resources
125
9
 
@@ -143,5 +27,9 @@ module Jsb3
143
27
 
144
28
  def respond_to?(method_sym, include_private = false)
145
29
  end
30
+
31
+ def to_s
32
+ name
33
+ end
146
34
  end
147
35
  end
@@ -0,0 +1,39 @@
1
+ module Jsb3
2
+ class File
3
+ def initialize(raw_file_hash, resources)
4
+ path = raw_file_hash['path']
5
+ path = resources.apply(path)
6
+ @path = path
7
+ @name = raw_file_hash['name']
8
+ end
9
+
10
+ def dirname
11
+ ::File.dirname(to_path)
12
+ end
13
+
14
+ alias :path :dirname
15
+
16
+ def basename
17
+ ::File.basename(to_path)
18
+ end
19
+
20
+ alias :name :basename
21
+
22
+ def to_s
23
+ "#{dirname}/#{basename}"
24
+ end
25
+
26
+ def exists?
27
+ ::File.exists?(to_s)
28
+ end
29
+
30
+ def absolute_path
31
+ ::File.absolute_path(to_s)
32
+ end
33
+
34
+ private
35
+ def to_path
36
+ "#{@path}/#{@name}"
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,21 @@
1
+ require 'jsb3/file'
2
+
3
+ module Jsb3
4
+ class Package
5
+ include Enumerable
6
+ attr_reader :id, :name, :target, :files
7
+
8
+ def initialize(raw_package_hash, resources)
9
+ @id = raw_package_hash['id']
10
+ @name = raw_package_hash['name']
11
+ @target = raw_package_hash['target']
12
+ @files = raw_package_hash['files'].map do |raw_file|
13
+ File.new raw_file, resources
14
+ end
15
+ end
16
+
17
+ def to_s
18
+ "#{@name} has #{@files.count} files."
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,33 @@
1
+ require 'jsb3/package'
2
+
3
+ module Jsb3
4
+ class Packages
5
+ include Enumerable
6
+ attr_accessor :elements
7
+
8
+ def initialize(raw_package_array, resources)
9
+ @elements = []
10
+ raw_package_array.each do |raw_package|
11
+ @elements.push(Package.new(raw_package, resources))
12
+ end
13
+ end
14
+
15
+ def each(&block)
16
+ @elements.each do |element|
17
+ block.call(element)
18
+ end
19
+ end
20
+
21
+ def ids
22
+ @elements.map do |pkg|
23
+ pkg.id
24
+ end
25
+ end
26
+
27
+ def names
28
+ @elements.map do |pkg|
29
+ pkg.name
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,14 @@
1
+ module Jsb3
2
+ class Resource
3
+ attr_reader :src
4
+ def initialize(raw_resource_hash)
5
+ @src = raw_resource_hash['src']
6
+ @dest = raw_resource_hash['dest']
7
+ end
8
+
9
+ def dest
10
+ # Append the trailing slash if it is not found
11
+ @dest + '/' if @dest[-1] != '/'
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,28 @@
1
+ require 'jsb3/resource'
2
+
3
+ module Jsb3
4
+ class Resources
5
+ include Enumerable
6
+
7
+ def initialize(raw_resources_array = Array.new)
8
+ @resources = raw_resources_array.map do |raw_resource|
9
+ Resource.new raw_resource
10
+ end
11
+ end
12
+
13
+ def each(&block)
14
+ @resources.each do |resource|
15
+ block.call(resource)
16
+ end
17
+ end
18
+
19
+ def apply(str)
20
+ resource = @resources.find do |resource|
21
+ regex = Regexp.new "^#{resource.src}"
22
+ str.to_s.match(regex)
23
+ end
24
+ return str.sub(resource.src, resource.dest) unless resource.nil?
25
+ return str
26
+ end
27
+ end
28
+ end
@@ -1,3 +1,3 @@
1
1
  module Jsb3
2
- VERSION = "1.0.0"
2
+ VERSION = "1.0.1"
3
3
  end
@@ -9,12 +9,10 @@ describe Jsb3::Resources do
9
9
  context "path correction" do
10
10
  it { jsb3.resources.apply("test").should == "test" }
11
11
  it { jsb3.resources.apply("../override/this/path/").should == "spec/sample_files/" }
12
- it { jsb3.resources.apply("test/../override/this/path/").should == "test/spec/sample_files/" }
13
- it { jsb3.resources.apply("test../override/this/path/").should == "testspec/sample_files/" }
12
+ it { jsb3.resources.apply("test/../override/this/path/").should == "test/../override/this/path/" }
13
+ it { jsb3.resources.apply("test../override/this/path/").should == "test../override/this/path/" }
14
14
 
15
- it { jsb3.resources.apply("test/../override/this/path/test").should == "test/spec/sample_files/test" }
16
- it { jsb3.resources.apply("test../override/this/path/test").should == "testspec/sample_files/test" }
17
- it { jsb3.resources.apply("test/../override/this/path//test").should == "test/spec/sample_files//test" }
18
- it { jsb3.resources.apply("test../override/this/path//test").should == "testspec/sample_files//test" }
15
+ it { jsb3.resources.apply("../override/this/path/test").should == "spec/sample_files/test" }
16
+ it { jsb3.resources.apply("../override/this/path//test").should == "spec/sample_files//test" }
19
17
  end
20
18
  end
@@ -36,7 +36,7 @@
36
36
  "resources": [
37
37
  {
38
38
  "src": "../override/this/path/",
39
- "dest": "spec/sample_files/"
39
+ "dest": "spec/sample_files"
40
40
  }
41
41
  ]
42
42
  }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jsb3
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -76,6 +76,11 @@ files:
76
76
  - Rakefile
77
77
  - jsb3.gemspec
78
78
  - lib/jsb3.rb
79
+ - lib/jsb3/file.rb
80
+ - lib/jsb3/package.rb
81
+ - lib/jsb3/packages.rb
82
+ - lib/jsb3/resource.rb
83
+ - lib/jsb3/resources.rb
79
84
  - lib/jsb3/version.rb
80
85
  - spec/jsb3/file_spec.rb
81
86
  - spec/jsb3/jsb3_spec.rb
@@ -88,7 +93,7 @@ files:
88
93
  - spec/sample_files/sample.js
89
94
  - spec/sample_files/sdk.jsb3
90
95
  - spec/spec_helper.rb
91
- homepage: ''
96
+ homepage: https://github.com/RLovelett/jsb3
92
97
  licenses: []
93
98
  post_install_message:
94
99
  rdoc_options: []