jsb3 1.0.0 → 1.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.
@@ -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: []