cocoaseeds 0.0.12 → 0.1.0
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 +4 -4
- data/README.md +23 -0
- data/lib/cocoaseeds/core.rb +43 -1
- data/lib/cocoaseeds/version.rb +1 -1
- metadata +2 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 6d9cfde5f682efaad416bc63b110348fc5ab3b29
         | 
| 4 | 
            +
              data.tar.gz: 0d0d7d528cf901e936c88e5632ccdcdd264fdc7f
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 95d3dde27844f52b607a3ab7dbc22823f35bce5fcc31f9d3acdc693b47efae38734f71d2a870f55d3a1d0a2db7cacecf0ccd9a7fcfecde75521a77f1d72ea894
         | 
| 7 | 
            +
              data.tar.gz: 169a2941a8aef9a71e947349bd6156af40ec3cb578506e0b7bcd0c3ed375df16706b7239e420358e5c858dfee559a5e58ee8dd8c733e5337db0f1ed5a6a47c9f
         | 
    
        data/README.md
    CHANGED
    
    | @@ -70,6 +70,29 @@ Then all the source files will be automatically added to your Xcode project with | |
| 70 70 | 
             
            
         | 
| 71 71 |  | 
| 72 72 |  | 
| 73 | 
            +
            Resolving Filename Conflicts
         | 
| 74 | 
            +
            ----------------------------
         | 
| 75 | 
            +
             | 
| 76 | 
            +
            Since CocoaSeeds uses including source files directly than linking dynamic frameworks, it is important to make sure that all source file names are different. CocoaSeeds provides a way to do this:
         | 
| 77 | 
            +
             | 
| 78 | 
            +
            **Seedfile**
         | 
| 79 | 
            +
             | 
| 80 | 
            +
            <pre>
         | 
| 81 | 
            +
            <b>swift_seedname_prefix!</b>  # add this line
         | 
| 82 | 
            +
             | 
| 83 | 
            +
            github "thoughtbot/Argo", "v1.0.3", :files => "Argo/*/*.swift"
         | 
| 84 | 
            +
            github "thoughtbot/Runes", "v2.0.0", :files => "Source/*.swift"
         | 
| 85 | 
            +
            </pre>
         | 
| 86 | 
            +
             | 
| 87 | 
            +
            Then all of source files installed via CocoasSeeds will have file names with seed name as prefix.
         | 
| 88 | 
            +
             | 
| 89 | 
            +
            | Before (filename) | After (seedname_filename) |
         | 
| 90 | 
            +
            |---|---|
         | 
| 91 | 
            +
            | `Seeds/Alamofire/Alamofire.swift` | `Seeds/Alamofire/Alamofire_Alamofire.swift` |
         | 
| 92 | 
            +
            | `Seeds/Argo/Operators/Operators.swift` | `Seeds/Argo/Operators/Argo_Operators.swift` |
         | 
| 93 | 
            +
            | `Seeds/Runes/Operators.swift` | `Seeds/Runes/Runes_Operators.swift` |
         | 
| 94 | 
            +
             | 
| 95 | 
            +
             | 
| 73 96 | 
             
            FAQ
         | 
| 74 97 | 
             
            ---
         | 
| 75 98 |  | 
    
        data/lib/cocoaseeds/core.rb
    CHANGED
    
    | @@ -70,6 +70,12 @@ module Seeds | |
| 70 70 | 
             
                #
         | 
| 71 71 | 
             
                attr_reader :file_references
         | 
| 72 72 |  | 
| 73 | 
            +
                # @return [Boolean] whether append seed name as a prefix to swift files
         | 
| 74 | 
            +
                #
         | 
| 75 | 
            +
                # @!visibility private
         | 
| 76 | 
            +
                #
         | 
| 77 | 
            +
                attr_accessor :swift_seedname_prefix
         | 
| 78 | 
            +
             | 
| 73 79 | 
             
                # @param  [String] root_path
         | 
| 74 80 | 
             
                #         The path provided will be used for detecting Xcode project and
         | 
| 75 81 | 
             
                #         Seedfile.
         | 
| @@ -107,6 +113,7 @@ module Seeds | |
| 107 113 | 
             
                  @targets = {}
         | 
| 108 114 | 
             
                  @source_files = {}
         | 
| 109 115 | 
             
                  @file_references = []
         | 
| 116 | 
            +
                  @swift_seedname_prefix = false
         | 
| 110 117 | 
             
                end
         | 
| 111 118 |  | 
| 112 119 | 
             
                # Read Xcode project, Seedfile and lockfile. An exception will be raised if
         | 
| @@ -166,6 +173,15 @@ module Seeds | |
| 166 173 | 
             
                def execute_seedfile
         | 
| 167 174 | 
             
                  @current_target_name = nil
         | 
| 168 175 |  | 
| 176 | 
            +
                  # Sets `@swift_seedname_prefix` as `true`.
         | 
| 177 | 
            +
                  #
         | 
| 178 | 
            +
                  # @!scope method
         | 
| 179 | 
            +
                  # @!visibility private
         | 
| 180 | 
            +
                  #
         | 
| 181 | 
            +
                  def swift_seedname_prefix!()
         | 
| 182 | 
            +
                    @swift_seedname_prefix = true
         | 
| 183 | 
            +
                  end
         | 
| 184 | 
            +
             | 
| 169 185 | 
             
                  # Sets `@current_target_name` and executes code block.
         | 
| 170 186 | 
             
                  #
         | 
| 171 187 | 
             
                  # @param [String] names The name of target.
         | 
| @@ -271,12 +287,38 @@ module Seeds | |
| 271 287 | 
             
                    if seed.files
         | 
| 272 288 | 
             
                      self.source_files[name] = []
         | 
| 273 289 | 
             
                      seed.files.each do |file|
         | 
| 274 | 
            -
                         | 
| 290 | 
            +
                        paths = Dir.glob(File.join(dirname, file))
         | 
| 291 | 
            +
                        paths.each do |path|
         | 
| 292 | 
            +
                          path = self.path_with_prefix(seed.name, path)
         | 
| 293 | 
            +
                          self.source_files[name].push(path)
         | 
| 294 | 
            +
                        end
         | 
| 275 295 | 
             
                      end
         | 
| 276 296 | 
             
                    end
         | 
| 277 297 | 
             
                  end
         | 
| 278 298 | 
             
                end
         | 
| 279 299 |  | 
| 300 | 
            +
                # Append seed name as a prefix to file name and returns the path.
         | 
| 301 | 
            +
                #
         | 
| 302 | 
            +
                # @!visibility private
         | 
| 303 | 
            +
                #
         | 
| 304 | 
            +
                def path_with_prefix(seedname, path)
         | 
| 305 | 
            +
                  if @swift_seedname_prefix
         | 
| 306 | 
            +
                    components = path.split("/")
         | 
| 307 | 
            +
                    prefix = seedname + "_"  # Alamofire_
         | 
| 308 | 
            +
                    filename = components[-1]  # Alamofire.swift
         | 
| 309 | 
            +
                    extension = File.extname(filename)  # .swift
         | 
| 310 | 
            +
             | 
| 311 | 
            +
                    # only swift files can have prefix in filename
         | 
| 312 | 
            +
                    if extension == '.swift' and not filename.start_with? prefix
         | 
| 313 | 
            +
                      filename = prefix + filename  # Alamofire_Alamofire.swift
         | 
| 314 | 
            +
                      newpath = components[0...-1].join('/') + '/' + filename
         | 
| 315 | 
            +
                      File.rename(path, newpath)  # rename real files
         | 
| 316 | 
            +
                      path = newpath
         | 
| 317 | 
            +
                    end
         | 
| 318 | 
            +
                  end
         | 
| 319 | 
            +
                  path
         | 
| 320 | 
            +
                end
         | 
| 321 | 
            +
             | 
| 280 322 | 
             
                # Adds source files to the group 'Seeds' and save its reference to
         | 
| 281 323 | 
             
                # {#file_references} and removes disused sources files,
         | 
| 282 324 | 
             
                #
         | 
    
        data/lib/cocoaseeds/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: cocoaseeds
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.0 | 
| 4 | 
            +
              version: 0.1.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Suyeol Jeon
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2015-07- | 
| 11 | 
            +
            date: 2015-07-06 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: xcodeproj
         |