2cdn 0.1.0 → 0.1.2

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.
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>