2cdn 0.1.0 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 09ac99c8274bc84b337a0173b978dae1c9411ad2
4
- data.tar.gz: 11c6be3ed49a84aa294fc3c0e1639771cbe6a983
3
+ metadata.gz: 181f5f37ebe5dd3e2191fb65be61fe2c4681544c
4
+ data.tar.gz: e88879fcd701f816e42679c63a498aaf9eae18b0
5
5
  SHA512:
6
- metadata.gz: fdcd7202e3056ee8df1904dc16c9d6014f6e8dc630046ae709cca06355c76fa7fca0836b00de77e1dcef81043b60428580f4e75b5848dfcf0697558f2aa74eb5
7
- data.tar.gz: 7716c16ed81d8c0c8e875a3241a311a31ea4e80fac60e2600971506cc91fded2c4bd0c6789f76167d148832d3c027b5890be73a8fbb797b720e1613dfbcbcecf
6
+ metadata.gz: b0e5dee85525736021cd9028d0fed7270a7714c824f8e3a9ad51667ac5e736f72665b0943d5573989db3e012df2c050b5e6dacd63afff3837fa81d6ce485b1d4
7
+ data.tar.gz: 3a1f44836455e5fad807c49839918d594b635df26385d70758b7224327384c338e51de14094950179f1f011a4981c7eb7322c900230feb7bb606c697a9adf6d3
data/.gitignore CHANGED
@@ -7,3 +7,5 @@
7
7
  /pkg/
8
8
  /spec/reports/
9
9
  /tmp/
10
+ /.idea/
11
+ config/*.yml/
data/Gemfile CHANGED
@@ -1,4 +1,5 @@
1
- source 'https://rubygems.org'
1
+ #source 'https://rubygems.org'
2
+ source 'https://ruby.taobao.org'
2
3
 
3
4
  # Specify your gem's dependencies in AutoAliCDN.gemspec
4
5
  gemspec
data/auto_ali_cdn.gemspec CHANGED
@@ -32,4 +32,6 @@ Gem::Specification.new do |spec|
32
32
  spec.add_development_dependency "bundler", "~> 1.13"
33
33
  spec.add_development_dependency "rake", "~> 10.0"
34
34
  spec.add_development_dependency "rspec", "~> 3.0"
35
+ spec.add_runtime_dependency "aliyun-sdk", "~> 0.5"
36
+ spec.add_runtime_dependency "rainbow", "~> 2.1"
35
37
  end
data/bin/2cdn CHANGED
@@ -12,10 +12,20 @@ Options:
12
12
 
13
13
  Basic usage:
14
14
  2cdn help # Show help
15
+ 2cdn setup # Init oss file paths
15
16
  2cdn upload # Upload resources to Aliyun Oss
17
+ 2cdn debug # Change resources path to local path
16
18
  EOB
17
19
  end
18
20
 
21
+ def app_path
22
+ @app_path ||= `pwd`.gsub("\n", '')
23
+ end
24
+
25
+ def config_file
26
+ app_path+'/config/2cdn.yml'
27
+ end
28
+
19
29
 
20
30
  if ARGV.empty? || ARGV[0] =~ /^(-h)|(--help)|(help)$/
21
31
  help
@@ -27,6 +37,38 @@ if ARGV[0] =~ /^(-v)|(--version)$/
27
37
  exit
28
38
  end
29
39
 
40
+ if ARGV[0] =~ /^setup$/
41
+ (system "mkdir #{app_path}/config") unless File.directory?("#{app_path}/config")
42
+ (system "mkdir #{app_path}/images") unless File.directory?("#{app_path}/images")
43
+ (system "mkdir #{app_path}/javascripts") unless File.directory?("#{app_path}/javascripts")
44
+ (system "mkdir #{app_path}/css") unless File.directory?("#{app_path}/css")
45
+ system "touch #{config_file}"
46
+ if File.read(config_file).length<=0
47
+ File.open(config_file, 'w') do |f|
48
+ f.puts <<-EOB
49
+ access_key_id: YOUR_ACCESS_ID
50
+ access_key_secret: YOUR_ACCESS_KEY
51
+ endpoint: YOUR_OSS_SERVICE_ADDRESS
52
+ domain_name: http://cdn.your.server.name
53
+ bucket: YOUR_BUCKET_NAME
54
+ site_resource_path: /sites/your.server.name
55
+ EOB
56
+ end
57
+ puts "config/2cdn.yml init ok.\nPlease fillup the keys.\n#{`cat #{config_file}`}"
58
+ end
59
+ AutoAliCDN::Oss.oss_setup(config_file)
60
+ end
61
+
30
62
  if ARGV[0] =~ /^upload$/
31
- puts "current_path:#{`pwd`}"
63
+
64
+ unless File.exist?(config_file)
65
+ puts "#{config_file} does not exist\nPlease run `2cdn init` first."
66
+ exit
67
+ end
68
+
69
+ AutoAliCDN::Oss.oss_upload(config_file, app_path)
70
+ end
71
+
72
+ if ARGV[0] =~ /^debug$/
73
+ AutoAliCDN::Oss.oss_debug(config_file, app_path)
32
74
  end
data/config/.keep ADDED
File without changes
@@ -0,0 +1,6 @@
1
+ access_key_id: key
2
+ access_key_secret: secret
3
+ endpoint: http://oss-cn-hangzhou.aliyuncs.com
4
+ domain_name: http://cdn.your.server.name
5
+ bucket: public
6
+ site_resource_path: sites/your.server.name
@@ -0,0 +1,54 @@
1
+ module AutoAliCDN
2
+ module Config
3
+
4
+
5
+ def self.access_key_id=(val)
6
+ @@access_key_id = val
7
+ end
8
+
9
+ def self.access_key_id
10
+ @@access_key_id
11
+ end
12
+
13
+ def self.access_key_secret=(val)
14
+ @@access_key_secret = val
15
+ end
16
+
17
+ def self.access_key_secret
18
+ @@access_key_secret
19
+ end
20
+
21
+ def self.endpoint=(val)
22
+ @@endpoint = val
23
+ end
24
+
25
+ def self.endpoint
26
+ @@endpoint
27
+ end
28
+
29
+ def self.bucket=(val)
30
+ @@bucket = val
31
+ end
32
+
33
+ def self.bucket
34
+ @@bucket
35
+ end
36
+
37
+ def self.site_resource_path=(val)
38
+ @@site_resource_path = val
39
+ end
40
+
41
+ def self.site_resource_path
42
+ @@site_resource_path
43
+ end
44
+
45
+ def self.domain_name=(val)
46
+ @@domain_name= val
47
+ end
48
+
49
+ def self.domain_name
50
+ @@domain_name
51
+ end
52
+
53
+ end
54
+ end
@@ -0,0 +1,130 @@
1
+ module AutoAliCDN
2
+ class Oss
3
+
4
+ def self.oss_config(config_path)
5
+ config = YAML.load_file(config_path)
6
+ AutoAliCDN::Config.access_key_id = config['access_key_id']
7
+ AutoAliCDN::Config.access_key_secret = config['access_key_secret']
8
+ AutoAliCDN::Config.endpoint = config['endpoint']
9
+ AutoAliCDN::Config.bucket = config['bucket']
10
+ AutoAliCDN::Config.site_resource_path = config['site_resource_path']
11
+ AutoAliCDN::Config.domain_name = config['domain_name']
12
+ return AutoAliCDN::Config
13
+ end
14
+
15
+ def self.bucket(oss_config)
16
+ client = Aliyun::OSS::Client.new(
17
+ :endpoint => oss_config.endpoint,
18
+ :access_key_id => oss_config.access_key_id,
19
+ :access_key_secret => oss_config.access_key_secret)
20
+ client.get_bucket(oss_config.bucket)
21
+ end
22
+
23
+ #setup dir on oss
24
+ def self.oss_setup(config_path)
25
+ config = oss_config(config_path)
26
+
27
+ puts "config:#{config}"
28
+
29
+ bucket = bucket(config)
30
+
31
+ puts bucket.name
32
+ bucket.put_object(config.site_resource_path+"/.start.txt") { |stream| stream << '2cdn setup ok' }
33
+ bucket.put_object(config.site_resource_path+"/images/.start.png") { |stream| stream << '2cdn setup ok' }
34
+ bucket.put_object(config.site_resource_path+"/javascripts/.start.js") { |stream| stream << "console.log('start from here')" }
35
+ bucket.put_object(config.site_resource_path+"/css/.start.css") { |stream| stream << "body{padding:0;}" }
36
+ end
37
+
38
+ #upload local files to server
39
+ def self.oss_upload(config_path, app_path)
40
+ config = oss_config(config_path)
41
+
42
+ images_path = app_path+'/images'
43
+ javascripts_path = app_path+'/javascripts'
44
+ css_path = app_path+'/css'
45
+
46
+ bucket = bucket(config)
47
+
48
+ replace_res_path = ->(local_path, remote_path) do
49
+ Dir.foreach(app_path) do |f|
50
+ if f =~ /\.(html)|(htm)$/
51
+ remote_prefix = remote_path.gsub(/-\w{32}\.(gif|png|jpg|jpeg|css|js)$/, '')
52
+
53
+ file_content = File.read("#{app_path}/#{f}").gsub(local_path, remote_path)
54
+
55
+ file_content = file_content.gsub(Regexp.new(remote_prefix+'-\w{32}\.(gif|png|jpg|jpeg|css|js)'), remote_path)
56
+
57
+ File.open("#{app_path}/#{f}", "w") do |f2|
58
+ f2.puts file_content
59
+ end
60
+ end
61
+ end
62
+ end
63
+
64
+ #upload image javascripts css etc.
65
+ upload_c = ->(res_path) do
66
+ Dir.foreach(res_path) do |name|
67
+ next if name =~ /^(\.)|(\.\.)$/
68
+ file_path = res_path+"/#{name}"
69
+ file_md5 = Digest::MD5.hexdigest(File.read(file_path))
70
+ res_type = res_path.gsub(/^.*\//, '')
71
+ object_key = config.site_resource_path+"/#{res_type}/#{name.gsub(/\./, "-#{file_md5}.")}"
72
+ if bucket.object_exists?(object_key)
73
+ puts "#{name} --> #{object_key}".color(:dimgray)
74
+ replace_res_path.call(res_type+'/'+name, config.domain_name+'/'+object_key)
75
+ else
76
+ bucket.put_object(object_key, :file => file_path)
77
+ puts "#{name} --> #{object_key}".color(:green)
78
+ replace_res_path.call(res_type+'/'+name, config.domain_name+'/'+object_key)
79
+ end
80
+ end
81
+ end
82
+
83
+ upload_c.call(images_path)
84
+ upload_c.call(javascripts_path)
85
+ upload_c.call(css_path)
86
+ end
87
+
88
+ def self.oss_debug(config_path, app_path)
89
+ config = oss_config(config_path)
90
+
91
+ images_path = app_path+'/images'
92
+ javascripts_path = app_path+'/javascripts'
93
+ css_path = app_path+'/css'
94
+
95
+ bucket = bucket(config)
96
+
97
+ replace_res_path = ->(remote_path, local_path) do
98
+ Dir.foreach(app_path) do |f|
99
+ if f =~ /\.(html)|(htm)$/
100
+
101
+ file_content = File.read("#{app_path}/#{f}").gsub(remote_path, local_path)
102
+
103
+ File.open("#{app_path}/#{f}", "w") do |f2|
104
+ f2.puts file_content
105
+ end
106
+ end
107
+ end
108
+ end
109
+
110
+ debug_c = ->(res_path) do
111
+ Dir.foreach(res_path) do |name|
112
+ next if name =~ /^(\.)|(\.\.)$/
113
+ file_path = res_path+"/#{name}"
114
+ file_md5 = Digest::MD5.hexdigest(File.read(file_path))
115
+ res_type = res_path.gsub(/^.*\//, '')
116
+ object_key = config.site_resource_path+"/#{res_type}/#{name.gsub(/\./, "-#{file_md5}.")}"
117
+ if bucket.object_exists?(object_key)
118
+ replace_res_path.call(config.domain_name+'/'+object_key, res_type+'/'+name)
119
+ puts "#{object_key.color(:red)} --> #{"#{res_type}/#{name}".color(:cyan)}"
120
+ end
121
+ end
122
+ end
123
+
124
+ debug_c.call(images_path)
125
+ debug_c.call(javascripts_path)
126
+ debug_c.call(css_path)
127
+ end
128
+
129
+ end
130
+ end
@@ -1,3 +1,3 @@
1
1
  module AutoAliCDN
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.2"
3
3
  end
data/lib/auto_ali_cdn.rb CHANGED
@@ -1,12 +1,12 @@
1
1
  require "auto-ali-cdn/version"
2
+ require 'rainbow'
3
+ require 'rainbow/ext/string'
4
+ require 'digest'
5
+ require 'auto-ali-cdn/oss'
6
+ require 'auto-ali-cdn/config'
7
+ require 'yaml'
8
+ require 'aliyun/oss'
2
9
 
3
10
  module AutoAliCDN
4
- # Your code goes here...
5
- module_function
6
-
7
- def test_c
8
- puts 'test_cddd'
9
- end
10
-
11
11
 
12
12
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: 2cdn
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - liuxi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-11-19 00:00:00.000000000 Z
11
+ date: 2016-11-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -52,6 +52,34 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '3.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: aliyun-sdk
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '0.5'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '0.5'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rainbow
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '2.1'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '2.1'
55
83
  description: "自动将本地代码上传到阿里云服务器"
56
84
  email:
57
85
  - 15201280641@qq.com
@@ -61,11 +89,6 @@ extensions: []
61
89
  extra_rdoc_files: []
62
90
  files:
63
91
  - ".gitignore"
64
- - ".idea/AutoAliCDN.iml"
65
- - ".idea/misc.xml"
66
- - ".idea/modules.xml"
67
- - ".idea/vcs.xml"
68
- - ".idea/workspace.xml"
69
92
  - ".rspec"
70
93
  - ".travis.yml"
71
94
  - CODE_OF_CONDUCT.md
@@ -78,6 +101,10 @@ files:
78
101
  - bin/2cdn
79
102
  - bin/console
80
103
  - bin/setup
104
+ - config/.keep
105
+ - config/2cdn.yml.example
106
+ - lib/auto-ali-cdn/config.rb
107
+ - lib/auto-ali-cdn/oss.rb
81
108
  - lib/auto-ali-cdn/version.rb
82
109
  - lib/auto_ali_cdn.rb
83
110
  homepage: https://github.com/mumaoxi/AutoAliCDN
data/.idea/AutoAliCDN.iml DELETED
@@ -1,8 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <module type="RUBY_MODULE" version="4">
3
- <component name="NewModuleRootManager">
4
- <content url="file://$MODULE_DIR$" />
5
- <orderEntry type="jdk" jdkName="RVM: ruby-2.1.5 [global]" jdkType="RUBY_SDK" />
6
- <orderEntry type="sourceFolder" forTests="false" />
7
- </component>
8
- </module>
data/.idea/misc.xml DELETED
@@ -1,14 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="ProjectLevelVcsManager" settingsEditedManually="false">
4
- <OptionsSetting value="true" id="Add" />
5
- <OptionsSetting value="true" id="Remove" />
6
- <OptionsSetting value="true" id="Checkout" />
7
- <OptionsSetting value="true" id="Update" />
8
- <OptionsSetting value="true" id="Status" />
9
- <OptionsSetting value="true" id="Edit" />
10
- <ConfirmationsSetting value="0" id="Add" />
11
- <ConfirmationsSetting value="0" id="Remove" />
12
- </component>
13
- <component name="ProjectRootManager" version="2" project-jdk-name="RVM: ruby-1.9.3-p551 [global]" project-jdk-type="RUBY_SDK" />
14
- </project>
data/.idea/modules.xml DELETED
@@ -1,8 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="ProjectModuleManager">
4
- <modules>
5
- <module fileurl="file://$PROJECT_DIR$/.idea/AutoAliCDN.iml" filepath="$PROJECT_DIR$/.idea/AutoAliCDN.iml" />
6
- </modules>
7
- </component>
8
- </project>
data/.idea/vcs.xml DELETED
@@ -1,6 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="VcsDirectoryMappings">
4
- <mapping directory="$PROJECT_DIR$" vcs="Git" />
5
- </component>
6
- </project>
data/.idea/workspace.xml DELETED
@@ -1,490 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="ChangeListManager">
4
- <list default="true" id="d36b541e-976b-424c-9004-6c5dd6e4c4e8" name="Default" comment="">
5
- <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/AutoAliCDN.iml" />
6
- <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/misc.xml" />
7
- <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/modules.xml" />
8
- <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/vcs.xml" />
9
- <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
10
- <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.rspec" />
11
- <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.travis.yml" />
12
- <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/CODE_OF_CONDUCT.md" />
13
- <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/Gemfile" />
14
- <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/LICENSE.txt" />
15
- <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/Rakefile" />
16
- <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/auto_ali_cdn.gemspec" />
17
- <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/bin/2cdn" />
18
- <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/bin/console" />
19
- <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/bin/setup" />
20
- <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/lib/auto-ali-cdn/version.rb" />
21
- <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/lib/auto_ali_cdn.rb" />
22
- <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/spec/auto_ali_cdn_spec.rb" />
23
- <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/spec/spec_helper.rb" />
24
- <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.gitignore" afterPath="$PROJECT_DIR$/.gitignore" />
25
- <change type="MODIFICATION" beforePath="$PROJECT_DIR$/README.md" afterPath="$PROJECT_DIR$/README.md" />
26
- </list>
27
- <ignored path="AutoAliCDN.iws" />
28
- <ignored path=".idea/workspace.xml" />
29
- <ignored path=".idea/dataSources.local.xml" />
30
- <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
31
- <option name="TRACKING_ENABLED" value="true" />
32
- <option name="SHOW_DIALOG" value="false" />
33
- <option name="HIGHLIGHT_CONFLICTS" value="true" />
34
- <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
35
- <option name="LAST_RESOLUTION" value="IGNORE" />
36
- </component>
37
- <component name="CreatePatchCommitExecutor">
38
- <option name="PATCH_PATH" value="" />
39
- </component>
40
- <component name="ExecutionTargetManager" SELECTED_TARGET="default_target" />
41
- <component name="FavoritesManager">
42
- <favorites_list name="AutoAliCDN" />
43
- </component>
44
- <component name="FileEditorManager">
45
- <leaf>
46
- <file leaf-file-name="2cdn" pinned="false" current-in-tab="false">
47
- <entry file="file://$PROJECT_DIR$/bin/2cdn">
48
- <provider selected="true" editor-type-id="text-editor">
49
- <state relative-caret-position="540">
50
- <caret line="30" column="27" selection-start-line="30" selection-start-column="27" selection-end-line="30" selection-end-column="27" />
51
- <folding />
52
- </state>
53
- </provider>
54
- </entry>
55
- </file>
56
- <file leaf-file-name="auto_ali_cdn.gemspec" pinned="false" current-in-tab="true">
57
- <entry file="file://$PROJECT_DIR$/auto_ali_cdn.gemspec">
58
- <provider selected="true" editor-type-id="text-editor">
59
- <state relative-caret-position="108">
60
- <caret line="6" column="28" selection-start-line="6" selection-start-column="28" selection-end-line="6" selection-end-column="28" />
61
- <folding />
62
- </state>
63
- </provider>
64
- </entry>
65
- </file>
66
- <file leaf-file-name="version.rb" pinned="false" current-in-tab="false">
67
- <entry file="file://$PROJECT_DIR$/lib/auto-ali-cdn/version.rb">
68
- <provider selected="true" editor-type-id="text-editor">
69
- <state relative-caret-position="18">
70
- <caret line="1" column="2" selection-start-line="1" selection-start-column="2" selection-end-line="1" selection-end-column="2" />
71
- <folding />
72
- </state>
73
- </provider>
74
- </entry>
75
- </file>
76
- <file leaf-file-name="auto_ali_cdn.rb" pinned="false" current-in-tab="false">
77
- <entry file="file://$PROJECT_DIR$/lib/auto_ali_cdn.rb">
78
- <provider selected="true" editor-type-id="text-editor">
79
- <state relative-caret-position="180">
80
- <caret line="10" column="0" selection-start-line="10" selection-start-column="0" selection-end-line="10" selection-end-column="0" />
81
- <folding />
82
- </state>
83
- </provider>
84
- </entry>
85
- </file>
86
- </leaf>
87
- </component>
88
- <component name="FileTemplateManagerImpl">
89
- <option name="RECENT_TEMPLATES">
90
- <list>
91
- <option value="Ruby Class Template" />
92
- </list>
93
- </option>
94
- </component>
95
- <component name="Git.Settings">
96
- <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
97
- </component>
98
- <component name="IdeDocumentHistory">
99
- <option name="CHANGED_PATHS">
100
- <list>
101
- <option value="$PROJECT_DIR$/auto_ali_cdn.rb" />
102
- <option value="$PROJECT_DIR$/AutoAliCDN.gemspec" />
103
- <option value="$PROJECT_DIR$/lib/auto-ali-cdn.rb" />
104
- <option value="$PROJECT_DIR$/bin/auto_ali_cdn" />
105
- <option value="$PROJECT_DIR$/lib/auto_ali_cdn.rb" />
106
- <option value="$PROJECT_DIR$/bin/auto-ali-cdn" />
107
- <option value="$PROJECT_DIR$/bin/2cdn" />
108
- <option value="$PROJECT_DIR$/auto_ali_cdn.gemspec" />
109
- </list>
110
- </option>
111
- </component>
112
- <component name="JsBuildToolGruntFileManager" detection-done="true" sorting="DEFINITION_ORDER" />
113
- <component name="JsBuildToolPackageJson" detection-done="true" sorting="DEFINITION_ORDER" />
114
- <component name="JsGulpfileManager">
115
- <detection-done>true</detection-done>
116
- <sorting>DEFINITION_ORDER</sorting>
117
- </component>
118
- <component name="ProjectFrameBounds">
119
- <option name="x" value="4" />
120
- <option name="y" value="23" />
121
- <option name="width" value="1916" />
122
- <option name="height" value="1057" />
123
- </component>
124
- <component name="ProjectLevelVcsManager" settingsEditedManually="false">
125
- <OptionsSetting value="true" id="Add" />
126
- <OptionsSetting value="true" id="Remove" />
127
- <OptionsSetting value="true" id="Checkout" />
128
- <OptionsSetting value="true" id="Update" />
129
- <OptionsSetting value="true" id="Status" />
130
- <OptionsSetting value="true" id="Edit" />
131
- <ConfirmationsSetting value="2" id="Add" />
132
- <ConfirmationsSetting value="0" id="Remove" />
133
- </component>
134
- <component name="ProjectView">
135
- <navigator currentView="ProjectPane" proportions="" version="1">
136
- <flattenPackages />
137
- <showMembers />
138
- <showModules />
139
- <showLibraryContents />
140
- <hideEmptyPackages />
141
- <abbreviatePackageNames />
142
- <autoscrollToSource />
143
- <autoscrollFromSource />
144
- <sortByType />
145
- <manualOrder />
146
- <foldersAlwaysOnTop value="true" />
147
- </navigator>
148
- <panes>
149
- <pane id="Scope">
150
- <subPane subId="Project Files">
151
- <PATH>
152
- <PATH_ELEMENT USER_OBJECT="Root">
153
- <option name="myItemId" value="" />
154
- <option name="myItemType" value="" />
155
- </PATH_ELEMENT>
156
- </PATH>
157
- </subPane>
158
- </pane>
159
- <pane id="Scratches" />
160
- <pane id="ProjectPane">
161
- <subPane>
162
- <PATH>
163
- <PATH_ELEMENT>
164
- <option name="myItemId" value="AutoAliCDN" />
165
- <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
166
- </PATH_ELEMENT>
167
- </PATH>
168
- <PATH>
169
- <PATH_ELEMENT>
170
- <option name="myItemId" value="AutoAliCDN" />
171
- <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
172
- </PATH_ELEMENT>
173
- <PATH_ELEMENT>
174
- <option name="myItemId" value="AutoAliCDN" />
175
- <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
176
- </PATH_ELEMENT>
177
- </PATH>
178
- <PATH>
179
- <PATH_ELEMENT>
180
- <option name="myItemId" value="AutoAliCDN" />
181
- <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
182
- </PATH_ELEMENT>
183
- <PATH_ELEMENT>
184
- <option name="myItemId" value="AutoAliCDN" />
185
- <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
186
- </PATH_ELEMENT>
187
- <PATH_ELEMENT>
188
- <option name="myItemId" value="lib" />
189
- <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
190
- </PATH_ELEMENT>
191
- </PATH>
192
- <PATH>
193
- <PATH_ELEMENT>
194
- <option name="myItemId" value="AutoAliCDN" />
195
- <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
196
- </PATH_ELEMENT>
197
- <PATH_ELEMENT>
198
- <option name="myItemId" value="AutoAliCDN" />
199
- <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
200
- </PATH_ELEMENT>
201
- <PATH_ELEMENT>
202
- <option name="myItemId" value="lib" />
203
- <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
204
- </PATH_ELEMENT>
205
- <PATH_ELEMENT>
206
- <option name="myItemId" value="auto-ali-cdn" />
207
- <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
208
- </PATH_ELEMENT>
209
- </PATH>
210
- <PATH>
211
- <PATH_ELEMENT>
212
- <option name="myItemId" value="AutoAliCDN" />
213
- <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
214
- </PATH_ELEMENT>
215
- <PATH_ELEMENT>
216
- <option name="myItemId" value="AutoAliCDN" />
217
- <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
218
- </PATH_ELEMENT>
219
- <PATH_ELEMENT>
220
- <option name="myItemId" value="bin" />
221
- <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
222
- </PATH_ELEMENT>
223
- </PATH>
224
- </subPane>
225
- </pane>
226
- </panes>
227
- </component>
228
- <component name="PropertiesComponent">
229
- <property name="last_opened_file_path" value="$PROJECT_DIR$" />
230
- <property name="WebServerToolWindowFactoryState" value="false" />
231
- <property name="settings.editor.selected.configurable" value="org.jetbrains.plugins.ruby.settings.RubyActiveModuleSdkConfigurable" />
232
- <property name="settings.editor.splitter.proportion" value="0.2" />
233
- <property name="js-jscs-nodeInterpreter" value="/usr/local/bin/node" />
234
- </component>
235
- <component name="RunManager">
236
- <configuration default="true" type="CucumberRunConfigurationType" factoryName="Cucumber">
237
- <predefined_log_file id="RUBY_CUCUMBER" enabled="true" />
238
- <module name="" />
239
- <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
240
- <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="WORK DIR" VALUE="" />
241
- <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="SHOULD_USE_SDK" VALUE="false" />
242
- <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="ALTERN_SDK_NAME" VALUE="" />
243
- <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="myPassParentEnvs" VALUE="true" />
244
- <envs />
245
- <EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="false" />
246
- <EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
247
- <EXTENSION ID="RubyCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" track_test_folders="true" runner="rcov">
248
- <COVERAGE_PATTERN ENABLED="true">
249
- <PATTERN REGEXPS="/.rvm/" INCLUDED="false" />
250
- </COVERAGE_PATTERN>
251
- </EXTENSION>
252
- <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="TEST_FILE_MASK" VALUE="**/*.feature" />
253
- <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="TEST_TEST_TYPE" VALUE="TEST_SCRIPT" />
254
- <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="TESTS_FOLDER_PATH" VALUE="" />
255
- <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="" />
256
- <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="TEST_TAGS_FILTER" VALUE="" />
257
- <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="TEST_NAME_FILTER" VALUE="" />
258
- <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="CUCUMBER_ARGS" VALUE="--color -r features" />
259
- <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="RUNNER_VERSION" VALUE="" />
260
- <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="FULL_BACKTRACE" VALUE="false" />
261
- <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="VERBOSE_OPTION" VALUE="false" />
262
- <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="DRB" VALUE="false" />
263
- <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="ZEUS" VALUE="false" />
264
- <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="SPRING" VALUE="false" />
265
- <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="CUCUMBER_RUNNER_PATH" VALUE="" />
266
- <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="USE_CUSTOM_RUNNER" VALUE="false" />
267
- <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="SETTINGS_VERSION" VALUE="2" />
268
- <method />
269
- </configuration>
270
- <configuration default="true" type="JavascriptDebugType" factoryName="JavaScript Debug">
271
- <method />
272
- </configuration>
273
- <configuration default="true" type="RSpecRunConfigurationType" factoryName="RSpec">
274
- <predefined_log_file id="RUBY_RSPEC" enabled="true" />
275
- <module name="" />
276
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
277
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="WORK DIR" VALUE="" />
278
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SHOULD_USE_SDK" VALUE="false" />
279
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="ALTERN_SDK_NAME" VALUE="" />
280
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="myPassParentEnvs" VALUE="true" />
281
- <envs />
282
- <EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="false" />
283
- <EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
284
- <EXTENSION ID="RubyCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" track_test_folders="true" runner="rcov">
285
- <COVERAGE_PATTERN ENABLED="true">
286
- <PATTERN REGEXPS="/.rvm/" INCLUDED="false" />
287
- </COVERAGE_PATTERN>
288
- </EXTENSION>
289
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TESTS_FOLDER_PATH" VALUE="" />
290
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="" />
291
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_RUNNER_PATH" VALUE="" />
292
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_FILE_MASK" VALUE="**/*_spec.rb" />
293
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_EXAMPLE_NAME" VALUE="" />
294
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_TEST_TYPE" VALUE="TEST_SCRIPT" />
295
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_ARGS" VALUE="" />
296
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUNNER_VERSION" VALUE="" />
297
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="USE_CUSTOM_SPEC_RUNNER" VALUE="false" />
298
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="DRB" VALUE="false" />
299
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="ZEUS" VALUE="false" />
300
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPRING" VALUE="false" />
301
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="FULL_BACKTRACE" VALUE="false" />
302
- <method />
303
- </configuration>
304
- <configuration default="true" type="RubyRunConfigurationType" factoryName="Ruby">
305
- <module name="" />
306
- <RUBY_RUN_CONFIG NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
307
- <RUBY_RUN_CONFIG NAME="WORK DIR" VALUE="" />
308
- <RUBY_RUN_CONFIG NAME="SHOULD_USE_SDK" VALUE="false" />
309
- <RUBY_RUN_CONFIG NAME="ALTERN_SDK_NAME" VALUE="" />
310
- <RUBY_RUN_CONFIG NAME="myPassParentEnvs" VALUE="true" />
311
- <envs />
312
- <EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="false" />
313
- <EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
314
- <EXTENSION ID="RubyCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" track_test_folders="true" runner="rcov">
315
- <COVERAGE_PATTERN ENABLED="true">
316
- <PATTERN REGEXPS="/.rvm/" INCLUDED="false" />
317
- </COVERAGE_PATTERN>
318
- </EXTENSION>
319
- <RUBY_RUN_CONFIG NAME="SCRIPT_PATH" VALUE="" />
320
- <RUBY_RUN_CONFIG NAME="SCRIPT_ARGS" VALUE="" />
321
- <method />
322
- </configuration>
323
- <configuration default="true" type="TestUnitRunConfigurationType" factoryName="Test::Unit/Shoulda/Minitest">
324
- <predefined_log_file id="RUBY_TESTUNIT" enabled="true" />
325
- <module name="" />
326
- <RTEST_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
327
- <RTEST_RUN_CONFIG_SETTINGS_ID NAME="WORK DIR" VALUE="" />
328
- <RTEST_RUN_CONFIG_SETTINGS_ID NAME="SHOULD_USE_SDK" VALUE="false" />
329
- <RTEST_RUN_CONFIG_SETTINGS_ID NAME="ALTERN_SDK_NAME" VALUE="" />
330
- <RTEST_RUN_CONFIG_SETTINGS_ID NAME="myPassParentEnvs" VALUE="true" />
331
- <envs />
332
- <EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="false" />
333
- <EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
334
- <EXTENSION ID="RubyCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" track_test_folders="true" runner="rcov">
335
- <COVERAGE_PATTERN ENABLED="true">
336
- <PATTERN REGEXPS="/.rvm/" INCLUDED="false" />
337
- </COVERAGE_PATTERN>
338
- </EXTENSION>
339
- <RTEST_RUN_CONFIG_SETTINGS_ID NAME="TESTS_FOLDER_PATH" VALUE="" />
340
- <RTEST_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="" />
341
- <RTEST_RUN_CONFIG_SETTINGS_ID NAME="TEST_FILE_MASK" VALUE="" />
342
- <RTEST_RUN_CONFIG_SETTINGS_ID NAME="TEST_METHOD_NAME" VALUE="" />
343
- <RTEST_RUN_CONFIG_SETTINGS_ID NAME="TEST_TEST_TYPE" VALUE="TEST_SCRIPT" />
344
- <RTEST_RUN_CONFIG_SETTINGS_ID NAME="DRB" VALUE="false" />
345
- <RTEST_RUN_CONFIG_SETTINGS_ID NAME="ZEUS" VALUE="false" />
346
- <RTEST_RUN_CONFIG_SETTINGS_ID NAME="SPRING" VALUE="false" />
347
- <RTEST_RUN_CONFIG_SETTINGS_ID NAME="RUNNER_OPTIONS" VALUE="" />
348
- <method />
349
- </configuration>
350
- <configuration default="true" type="js.build_tools.gulp" factoryName="Gulp.js">
351
- <method />
352
- </configuration>
353
- <configuration default="true" type="js.build_tools.npm" factoryName="npm">
354
- <command value="run-script" />
355
- <scripts />
356
- <node-interpreter value="project" />
357
- <envs />
358
- <method />
359
- </configuration>
360
- </component>
361
- <component name="ShelveChangesManager" show_recycled="false">
362
- <option name="remove_strategy" value="false" />
363
- </component>
364
- <component name="TaskManager">
365
- <task active="true" id="Default" summary="Default task">
366
- <changelist id="d36b541e-976b-424c-9004-6c5dd6e4c4e8" name="Default" comment="" />
367
- <created>1479542923884</created>
368
- <option name="number" value="Default" />
369
- <option name="presentableId" value="Default" />
370
- <updated>1479542923884</updated>
371
- <workItem from="1479542926311" duration="3407000" />
372
- </task>
373
- <servers />
374
- </component>
375
- <component name="TimeTrackingManager">
376
- <option name="totallyTimeSpent" value="3407000" />
377
- </component>
378
- <component name="ToolWindowManager">
379
- <frame x="4" y="23" width="1916" height="1057" extended-state="6" />
380
- <editor active="true" />
381
- <layout>
382
- <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.21237993" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
383
- <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
384
- <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
385
- <window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
386
- <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3290735" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
387
- <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
388
- <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
389
- <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
390
- <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
391
- <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
392
- <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
393
- <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
394
- <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
395
- <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
396
- <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="SLIDING" type="SLIDING" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
397
- <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
398
- <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
399
- </layout>
400
- </component>
401
- <component name="Vcs.Log.UiProperties">
402
- <option name="RECENTLY_FILTERED_USER_GROUPS">
403
- <collection />
404
- </option>
405
- <option name="RECENTLY_FILTERED_BRANCH_GROUPS">
406
- <collection />
407
- </option>
408
- </component>
409
- <component name="VcsContentAnnotationSettings">
410
- <option name="myLimit" value="2678400000" />
411
- </component>
412
- <component name="XDebuggerManager">
413
- <breakpoint-manager />
414
- <watches-manager />
415
- </component>
416
- <component name="editorHistoryManager">
417
- <entry file="file://$PROJECT_DIR$/spec/auto_ali_cdn_spec.rb">
418
- <provider selected="true" editor-type-id="text-editor">
419
- <state relative-caret-position="162">
420
- <caret line="9" column="4" selection-start-line="9" selection-start-column="4" selection-end-line="9" selection-end-column="4" />
421
- <folding />
422
- </state>
423
- </provider>
424
- </entry>
425
- <entry file="file://$PROJECT_DIR$/spec/spec_helper.rb">
426
- <provider selected="true" editor-type-id="text-editor">
427
- <state relative-caret-position="0">
428
- <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
429
- <folding />
430
- </state>
431
- </provider>
432
- </entry>
433
- <entry file="file://$PROJECT_DIR$/auto_ali_cdn.rb">
434
- <provider selected="true" editor-type-id="text-editor">
435
- <state relative-caret-position="36">
436
- <caret line="2" column="11" selection-start-line="2" selection-start-column="11" selection-end-line="2" selection-end-column="11" />
437
- <folding />
438
- </state>
439
- </provider>
440
- </entry>
441
- <entry file="file://$PROJECT_DIR$/bin/setup">
442
- <provider selected="true" editor-type-id="text-editor">
443
- <state relative-caret-position="0">
444
- <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
445
- <folding />
446
- </state>
447
- </provider>
448
- </entry>
449
- <entry file="file://$PROJECT_DIR$/bin/console">
450
- <provider selected="true" editor-type-id="text-editor">
451
- <state relative-caret-position="54">
452
- <caret line="3" column="21" selection-start-line="3" selection-start-column="21" selection-end-line="3" selection-end-column="21" />
453
- <folding />
454
- </state>
455
- </provider>
456
- </entry>
457
- <entry file="file://$PROJECT_DIR$/lib/auto_ali_cdn.rb">
458
- <provider selected="true" editor-type-id="text-editor">
459
- <state relative-caret-position="180">
460
- <caret line="10" column="0" selection-start-line="10" selection-start-column="0" selection-end-line="10" selection-end-column="0" />
461
- <folding />
462
- </state>
463
- </provider>
464
- </entry>
465
- <entry file="file://$PROJECT_DIR$/lib/auto-ali-cdn/version.rb">
466
- <provider selected="true" editor-type-id="text-editor">
467
- <state relative-caret-position="18">
468
- <caret line="1" column="2" selection-start-line="1" selection-start-column="2" selection-end-line="1" selection-end-column="2" />
469
- <folding />
470
- </state>
471
- </provider>
472
- </entry>
473
- <entry file="file://$PROJECT_DIR$/bin/2cdn">
474
- <provider selected="true" editor-type-id="text-editor">
475
- <state relative-caret-position="540">
476
- <caret line="30" column="27" selection-start-line="30" selection-start-column="27" selection-end-line="30" selection-end-column="27" />
477
- <folding />
478
- </state>
479
- </provider>
480
- </entry>
481
- <entry file="file://$PROJECT_DIR$/auto_ali_cdn.gemspec">
482
- <provider selected="true" editor-type-id="text-editor">
483
- <state relative-caret-position="108">
484
- <caret line="6" column="28" selection-start-line="6" selection-start-column="28" selection-end-line="6" selection-end-column="28" />
485
- <folding />
486
- </state>
487
- </provider>
488
- </entry>
489
- </component>
490
- </project>